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_ */ |