diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-16 18:48:00 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-16 18:48:00 -0500 |
| commit | 796e1c55717e9a6ff5c81b12289ffa1ffd919b6f (patch) | |
| tree | 27ce45cb1227156b72c641dbcbf2b399d23ba63d /include/uapi | |
| parent | 8c334ce8f0fec7122fc3059c52a697b669a01b41 (diff) | |
| parent | 45ee2dbc65cbf6910892c480e6f428be342fa733 (diff) | |
Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
Pull drm updates from Dave Airlie:
"This is the main drm pull, it has a shared branch with some alsa
crossover but everything should be acked by relevant people.
New drivers:
- ATMEL HLCDC driver
- designware HDMI core support (used in multiple SoCs).
core:
- lots more atomic modesetting work, properties and atomic ioctl
(hidden under option)
- bridge rework allows support for Samsung exynos chromebooks to
work finally.
- some more panels supported
i915:
- atomic plane update support
- DSI uses shared DSI infrastructure
- Skylake basic support is all merged now
- component framework used for i915/snd-hda interactions
- write-combine cpu memory mappings
- engine init code refactored
- full ppgtt enabled where execlists are enabled.
- cherryview rps/gpu turbo and pipe CRC support.
radeon:
- indirect draw support for evergreen/cayman
- SMC and manual fan control for SI/CI
- Displayport audio support
amdkfd:
- SDMA usermode queue support
- replace suballocator usage with more suitable one
- rework for allowing interfacing to more than radeon
nouveau:
- major renaming in prep for later splitting work
- merge arm platform driver into nouveau
- GK20A reclocking support
msm:
- conversion to atomic modesetting
- YUV support for mdp4/5
- eDP support
- hw cursor for mdp5
tegra:
- conversion to atomic modesetting
- better suspend/resume support for child devices
rcar-du:
- interlaced support
imx:
- move to using dw_hdmi shared support
- mode_fixup support
sti:
- DVO support
- HDMI infoframe support
exynos:
- refactoring and cleanup, removed lots of internal unnecessary
abstraction
- exynos7 DECON display controller support
Along with the usual bunch of fixes, cleanups etc"
* 'drm-next' of git://people.freedesktop.org/~airlied/linux: (724 commits)
drm/radeon: fix voltage setup on hawaii
drm/radeon/dp: Set EDP_CONFIGURATION_SET for bridge chips if necessary
drm/radeon: only enable kv/kb dpm interrupts once v3
drm/radeon: workaround for CP HW bug on CIK
drm/radeon: Don't try to enable write-combining without PAT
drm/radeon: use 0-255 rather than 0-100 for pwm fan range
drm/i915: Clamp efficient frequency to valid range
drm/i915: Really ignore long HPD pulses on eDP
drm/exynos: Add DECON driver
drm/i915: Correct the base value while updating LP_OUTPUT_HOLD in MIPI_PORT_CTRL
drm/i915: Insert a command barrier on BLT/BSD cache flushes
drm/i915: Drop vblank wait from intel_dp_link_down
drm/exynos: fix NULL pointer reference
drm/exynos: remove exynos_plane_dpms
drm/exynos: remove mode property of exynos crtc
drm/exynos: Remove exynos_plane_dpms() call with no effect
drm/i915: Squelch overzealous uncore reset WARN_ON
drm/i915: Take runtime pm reference on hangcheck_info
drm/i915: Correct the IOSF Dev_FN field for IOSF transfers
drm/exynos: fix DMA_ATTR_NO_KERNEL_MAPPING usage
...
Diffstat (limited to 'include/uapi')
| -rw-r--r-- | include/uapi/drm/drm.h | 8 | ||||
| -rw-r--r-- | include/uapi/drm/drm_fourcc.h | 3 | ||||
| -rw-r--r-- | include/uapi/drm/drm_mode.h | 38 | ||||
| -rw-r--r-- | include/uapi/drm/i915_drm.h | 30 |
4 files changed, 71 insertions, 8 deletions
diff --git a/include/uapi/drm/drm.h b/include/uapi/drm/drm.h index b0b855613641..01b2d6d0e355 100644 --- a/include/uapi/drm/drm.h +++ b/include/uapi/drm/drm.h | |||
| @@ -654,6 +654,13 @@ struct drm_get_cap { | |||
| 654 | */ | 654 | */ |
| 655 | #define DRM_CLIENT_CAP_UNIVERSAL_PLANES 2 | 655 | #define DRM_CLIENT_CAP_UNIVERSAL_PLANES 2 |
| 656 | 656 | ||
| 657 | /** | ||
| 658 | * DRM_CLIENT_CAP_ATOMIC | ||
| 659 | * | ||
| 660 | * If set to 1, the DRM core will expose atomic properties to userspace | ||
| 661 | */ | ||
| 662 | #define DRM_CLIENT_CAP_ATOMIC 3 | ||
| 663 | |||
| 657 | /** DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */ | 664 | /** DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */ |
| 658 | struct drm_set_client_cap { | 665 | struct drm_set_client_cap { |
| 659 | __u64 capability; | 666 | __u64 capability; |
| @@ -777,6 +784,7 @@ struct drm_prime_handle { | |||
| 777 | #define DRM_IOCTL_MODE_OBJ_GETPROPERTIES DRM_IOWR(0xB9, struct drm_mode_obj_get_properties) | 784 | #define DRM_IOCTL_MODE_OBJ_GETPROPERTIES DRM_IOWR(0xB9, struct drm_mode_obj_get_properties) |
| 778 | #define DRM_IOCTL_MODE_OBJ_SETPROPERTY DRM_IOWR(0xBA, struct drm_mode_obj_set_property) | 785 | #define DRM_IOCTL_MODE_OBJ_SETPROPERTY DRM_IOWR(0xBA, struct drm_mode_obj_set_property) |
| 779 | #define DRM_IOCTL_MODE_CURSOR2 DRM_IOWR(0xBB, struct drm_mode_cursor2) | 786 | #define DRM_IOCTL_MODE_CURSOR2 DRM_IOWR(0xBB, struct drm_mode_cursor2) |
| 787 | #define DRM_IOCTL_MODE_ATOMIC DRM_IOWR(0xBC, struct drm_mode_atomic) | ||
| 780 | 788 | ||
| 781 | /** | 789 | /** |
| 782 | * Device specific ioctls should only be in their respective headers | 790 | * Device specific ioctls should only be in their respective headers |
diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h index 646ae5f39f42..a284f11a8ef5 100644 --- a/include/uapi/drm/drm_fourcc.h +++ b/include/uapi/drm/drm_fourcc.h | |||
| @@ -109,9 +109,6 @@ | |||
| 109 | #define DRM_FORMAT_NV24 fourcc_code('N', 'V', '2', '4') /* non-subsampled Cr:Cb plane */ | 109 | #define DRM_FORMAT_NV24 fourcc_code('N', 'V', '2', '4') /* non-subsampled Cr:Cb plane */ |
| 110 | #define DRM_FORMAT_NV42 fourcc_code('N', 'V', '4', '2') /* non-subsampled Cb:Cr plane */ | 110 | #define DRM_FORMAT_NV42 fourcc_code('N', 'V', '4', '2') /* non-subsampled Cb:Cr plane */ |
| 111 | 111 | ||
| 112 | /* special NV12 tiled format */ | ||
| 113 | #define DRM_FORMAT_NV12MT fourcc_code('T', 'M', '1', '2') /* 2x2 subsampled Cr:Cb plane 64x32 macroblocks */ | ||
| 114 | |||
| 115 | /* | 112 | /* |
| 116 | * 3 plane YCbCr | 113 | * 3 plane YCbCr |
| 117 | * index 0: Y plane, [7:0] Y | 114 | * index 0: Y plane, [7:0] Y |
diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h index 86574b0005ff..ca788e01dab2 100644 --- a/include/uapi/drm/drm_mode.h +++ b/include/uapi/drm/drm_mode.h | |||
| @@ -272,6 +272,13 @@ struct drm_mode_get_connector { | |||
| 272 | #define DRM_MODE_PROP_OBJECT DRM_MODE_PROP_TYPE(1) | 272 | #define DRM_MODE_PROP_OBJECT DRM_MODE_PROP_TYPE(1) |
| 273 | #define DRM_MODE_PROP_SIGNED_RANGE DRM_MODE_PROP_TYPE(2) | 273 | #define DRM_MODE_PROP_SIGNED_RANGE DRM_MODE_PROP_TYPE(2) |
| 274 | 274 | ||
| 275 | /* the PROP_ATOMIC flag is used to hide properties from userspace that | ||
| 276 | * is not aware of atomic properties. This is mostly to work around | ||
| 277 | * older userspace (DDX drivers) that read/write each prop they find, | ||
| 278 | * witout being aware that this could be triggering a lengthy modeset. | ||
| 279 | */ | ||
| 280 | #define DRM_MODE_PROP_ATOMIC 0x80000000 | ||
| 281 | |||
| 275 | struct drm_mode_property_enum { | 282 | struct drm_mode_property_enum { |
| 276 | __u64 value; | 283 | __u64 value; |
| 277 | char name[DRM_PROP_NAME_LEN]; | 284 | char name[DRM_PROP_NAME_LEN]; |
| @@ -338,7 +345,7 @@ struct drm_mode_fb_cmd2 { | |||
| 338 | 345 | ||
| 339 | /* | 346 | /* |
| 340 | * In case of planar formats, this ioctl allows up to 4 | 347 | * In case of planar formats, this ioctl allows up to 4 |
| 341 | * buffer objects with offets and pitches per plane. | 348 | * buffer objects with offsets and pitches per plane. |
| 342 | * The pitch and offset order is dictated by the fourcc, | 349 | * The pitch and offset order is dictated by the fourcc, |
| 343 | * e.g. NV12 (http://fourcc.org/yuv.php#NV12) is described as: | 350 | * e.g. NV12 (http://fourcc.org/yuv.php#NV12) is described as: |
| 344 | * | 351 | * |
| @@ -346,9 +353,9 @@ struct drm_mode_fb_cmd2 { | |||
| 346 | * followed by an interleaved U/V plane containing | 353 | * followed by an interleaved U/V plane containing |
| 347 | * 8 bit 2x2 subsampled colour difference samples. | 354 | * 8 bit 2x2 subsampled colour difference samples. |
| 348 | * | 355 | * |
| 349 | * So it would consist of Y as offset[0] and UV as | 356 | * So it would consist of Y as offsets[0] and UV as |
| 350 | * offeset[1]. Note that offset[0] will generally | 357 | * offsets[1]. Note that offsets[0] will generally |
| 351 | * be 0. | 358 | * be 0 (but this is not required). |
| 352 | */ | 359 | */ |
| 353 | __u32 handles[4]; | 360 | __u32 handles[4]; |
| 354 | __u32 pitches[4]; /* pitch for each plane */ | 361 | __u32 pitches[4]; /* pitch for each plane */ |
| @@ -519,4 +526,27 @@ struct drm_mode_destroy_dumb { | |||
| 519 | uint32_t handle; | 526 | uint32_t handle; |
| 520 | }; | 527 | }; |
| 521 | 528 | ||
| 529 | /* page-flip flags are valid, plus: */ | ||
| 530 | #define DRM_MODE_ATOMIC_TEST_ONLY 0x0100 | ||
| 531 | #define DRM_MODE_ATOMIC_NONBLOCK 0x0200 | ||
| 532 | #define DRM_MODE_ATOMIC_ALLOW_MODESET 0x0400 | ||
| 533 | |||
| 534 | #define DRM_MODE_ATOMIC_FLAGS (\ | ||
| 535 | DRM_MODE_PAGE_FLIP_EVENT |\ | ||
| 536 | DRM_MODE_PAGE_FLIP_ASYNC |\ | ||
| 537 | DRM_MODE_ATOMIC_TEST_ONLY |\ | ||
| 538 | DRM_MODE_ATOMIC_NONBLOCK |\ | ||
| 539 | DRM_MODE_ATOMIC_ALLOW_MODESET) | ||
| 540 | |||
| 541 | struct drm_mode_atomic { | ||
| 542 | __u32 flags; | ||
| 543 | __u32 count_objs; | ||
| 544 | __u64 objs_ptr; | ||
| 545 | __u64 count_props_ptr; | ||
| 546 | __u64 props_ptr; | ||
| 547 | __u64 prop_values_ptr; | ||
| 548 | __u64 reserved; | ||
| 549 | __u64 user_data; | ||
| 550 | }; | ||
| 551 | |||
| 522 | #endif | 552 | #endif |
diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h index 250262265ee3..6eed16b92a24 100644 --- a/include/uapi/drm/i915_drm.h +++ b/include/uapi/drm/i915_drm.h | |||
| @@ -224,6 +224,8 @@ typedef struct _drm_i915_sarea { | |||
| 224 | #define DRM_I915_REG_READ 0x31 | 224 | #define DRM_I915_REG_READ 0x31 |
| 225 | #define DRM_I915_GET_RESET_STATS 0x32 | 225 | #define DRM_I915_GET_RESET_STATS 0x32 |
| 226 | #define DRM_I915_GEM_USERPTR 0x33 | 226 | #define DRM_I915_GEM_USERPTR 0x33 |
| 227 | #define DRM_I915_GEM_CONTEXT_GETPARAM 0x34 | ||
| 228 | #define DRM_I915_GEM_CONTEXT_SETPARAM 0x35 | ||
| 227 | 229 | ||
| 228 | #define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t) | 230 | #define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t) |
| 229 | #define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH) | 231 | #define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH) |
| @@ -275,6 +277,8 @@ typedef struct _drm_i915_sarea { | |||
| 275 | #define DRM_IOCTL_I915_REG_READ DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_REG_READ, struct drm_i915_reg_read) | 277 | #define DRM_IOCTL_I915_REG_READ DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_REG_READ, struct drm_i915_reg_read) |
| 276 | #define DRM_IOCTL_I915_GET_RESET_STATS DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GET_RESET_STATS, struct drm_i915_reset_stats) | 278 | #define DRM_IOCTL_I915_GET_RESET_STATS DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GET_RESET_STATS, struct drm_i915_reset_stats) |
| 277 | #define DRM_IOCTL_I915_GEM_USERPTR DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_USERPTR, struct drm_i915_gem_userptr) | 279 | #define DRM_IOCTL_I915_GEM_USERPTR DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_USERPTR, struct drm_i915_gem_userptr) |
| 280 | #define DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_GETPARAM, struct drm_i915_gem_context_param) | ||
| 281 | #define DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_SETPARAM, struct drm_i915_gem_context_param) | ||
| 278 | 282 | ||
| 279 | /* Allow drivers to submit batchbuffers directly to hardware, relying | 283 | /* Allow drivers to submit batchbuffers directly to hardware, relying |
| 280 | * on the security mechanisms provided by hardware. | 284 | * on the security mechanisms provided by hardware. |
| @@ -341,6 +345,8 @@ typedef struct drm_i915_irq_wait { | |||
| 341 | #define I915_PARAM_HAS_WT 27 | 345 | #define I915_PARAM_HAS_WT 27 |
| 342 | #define I915_PARAM_CMD_PARSER_VERSION 28 | 346 | #define I915_PARAM_CMD_PARSER_VERSION 28 |
| 343 | #define I915_PARAM_HAS_COHERENT_PHYS_GTT 29 | 347 | #define I915_PARAM_HAS_COHERENT_PHYS_GTT 29 |
| 348 | #define I915_PARAM_MMAP_VERSION 30 | ||
| 349 | #define I915_PARAM_HAS_BSD2 31 | ||
| 344 | 350 | ||
| 345 | typedef struct drm_i915_getparam { | 351 | typedef struct drm_i915_getparam { |
| 346 | int param; | 352 | int param; |
| @@ -488,6 +494,14 @@ struct drm_i915_gem_mmap { | |||
| 488 | * This is a fixed-size type for 32/64 compatibility. | 494 | * This is a fixed-size type for 32/64 compatibility. |
| 489 | */ | 495 | */ |
| 490 | __u64 addr_ptr; | 496 | __u64 addr_ptr; |
| 497 | |||
| 498 | /** | ||
| 499 | * Flags for extended behaviour. | ||
| 500 | * | ||
| 501 | * Added in version 2. | ||
| 502 | */ | ||
| 503 | __u64 flags; | ||
| 504 | #define I915_MMAP_WC 0x1 | ||
| 491 | }; | 505 | }; |
| 492 | 506 | ||
| 493 | struct drm_i915_gem_mmap_gtt { | 507 | struct drm_i915_gem_mmap_gtt { |
| @@ -737,7 +751,13 @@ struct drm_i915_gem_execbuffer2 { | |||
| 737 | */ | 751 | */ |
| 738 | #define I915_EXEC_HANDLE_LUT (1<<12) | 752 | #define I915_EXEC_HANDLE_LUT (1<<12) |
| 739 | 753 | ||
| 740 | #define __I915_EXEC_UNKNOWN_FLAGS -(I915_EXEC_HANDLE_LUT<<1) | 754 | /** Used for switching BSD rings on the platforms with two BSD rings */ |
| 755 | #define I915_EXEC_BSD_MASK (3<<13) | ||
| 756 | #define I915_EXEC_BSD_DEFAULT (0<<13) /* default ping-pong mode */ | ||
| 757 | #define I915_EXEC_BSD_RING1 (1<<13) | ||
| 758 | #define I915_EXEC_BSD_RING2 (2<<13) | ||
| 759 | |||
| 760 | #define __I915_EXEC_UNKNOWN_FLAGS -(1<<15) | ||
| 741 | 761 | ||
| 742 | #define I915_EXEC_CONTEXT_ID_MASK (0xffffffff) | 762 | #define I915_EXEC_CONTEXT_ID_MASK (0xffffffff) |
| 743 | #define i915_execbuffer2_set_context_id(eb2, context) \ | 763 | #define i915_execbuffer2_set_context_id(eb2, context) \ |
| @@ -1073,4 +1093,12 @@ struct drm_i915_gem_userptr { | |||
| 1073 | __u32 handle; | 1093 | __u32 handle; |
| 1074 | }; | 1094 | }; |
| 1075 | 1095 | ||
| 1096 | struct drm_i915_gem_context_param { | ||
| 1097 | __u32 ctx_id; | ||
| 1098 | __u32 size; | ||
| 1099 | __u64 param; | ||
| 1100 | #define I915_CONTEXT_PARAM_BAN_PERIOD 0x1 | ||
| 1101 | __u64 value; | ||
| 1102 | }; | ||
| 1103 | |||
| 1076 | #endif /* _UAPI_I915_DRM_H_ */ | 1104 | #endif /* _UAPI_I915_DRM_H_ */ |
