diff options
| author | Dave Airlie <airlied@redhat.com> | 2019-05-27 18:25:46 -0400 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2019-05-27 18:59:11 -0400 |
| commit | 88cd7a2c1b29f61a2a3fab76216a43f3b779e0cd (patch) | |
| tree | b8a4311c8f7edfc92c1055b6a5a86b1a5552878e /include/uapi | |
| parent | cd6c84d8f0cdc911df435bb075ba22ce3c605b07 (diff) | |
| parent | 909fa3321d348ef69366aad9e84e1dd9ee0bd060 (diff) | |
Merge tag 'drm-misc-next-2019-05-24' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
drm-misc-next for v5.3, try #2:
UAPI Changes:
- Add HDR source metadata property.
- Make drm.h compile on GNU/kFreeBSD by including stdint.h
- Clarify how the userspace reviewer has to review new kernel UAPI.
- Clarify that for using new UAPI, merging to drm-next or drm-misc-next should be enough.
Cross-subsystem Changes:
- video/hdmi: Add unpack function for DRM infoframes.
- Device tree bindings:
* Updating a property for Mali Midgard GPUs
* Updating a property for STM32 DSI panel
* Adding support for FriendlyELEC HD702E 800x1280 panel
* Adding support for Evervision VGG804821 800x480 5.0" WVGA TFT panel
* Adding support for the EDT ET035012DM6 3.5" 320x240 QVGA 24-bit RGB TFT.
* Adding support for Three Five displays TFC S9700RTWV43TR-01B 800x480 panel
with resistive touch found on TI's AM335X-EVM.
* Adding support for EDT ETM0430G0DH6 480x272 panel.
- Add OSD101T2587-53TS driver with DT bindings.
- Add Samsung S6E63M0 panel driver with DT bindings.
- Add VXT VL050-8048NT-C01 800x480 panel with DT bindings.
- Dma-buf:
- Make mmap callback actually optional.
- Documentation updates.
- Fix debugfs refcount inbalance.
- Remove unused sync_dump function.
- Fix device tree bindings in drm-misc-next after a botched merge.
Core Changes:
- Add support for HDR infoframes and related EDID parsing.
- Remove prime sg_table caching, now done inside dma-buf.
- Add shiny new drm_gem_vram helpers for simple VRAM drivers;
with some fixes to the new API on top.
- Small fix to job cleanup without timeout handler.
- Documentation fixes to drm_fourcc.
- Replace lookups of drm_format with struct drm_format_info;
remove functions that become obsolete by this conversion.
- Remove double include in bridge/panel.c and some drivers.
- Remove drmP.h include from drm/edid and drm/dp.
- Fix null pointer deref in drm_fb_helper_hotplug_event().
- Remove most members from drm_fb_helper_crtc, only mode_set is kept.
- Remove race of fb helpers with userspace; only restore mode
when userspace is not master.
- Move legacy setup from drm_file.c to drm_legacy_misc.c
- Rework scheduler job destruction.
- drm/bus was removed, remove from TODO.
- Add __drm_atomic_helper_crtc_reset() to subclass crtc_state,
and convert some drivers to use it (conversion is not complete yet).
- Bump vblank timeout wait to 100 ms for atomic.
- Docbook fix for drm_hdmi_infoframe_set_hdr_metadata.
Driver Changes:
- sun4i: Use DRM_GEM_CMA_VMAP_DRIVER_OPS instead of definining manually.
- v3d: Small cleanups, adding support for compute shaders,
reservation/synchronization fixes and job management refactoring,
fixes MMU and debugfs.
- lima: Fix null pointer in irq handler on startup, set default timeout for scheduled jobs.
- stm/ltdc: Assorted fixes and adding FB modifier support.
- amdgpu: Avoid hw reset if guilty job was already signaled.
- virtio: Add seqno to fences, add trace events, use correct flags for fence allocation.
- Convert AST, bochs, mgag200, vboxvideo, hisilicon to the new drm_gem_vram API.
- sun6i_mipi_dsi: Support DSI GENERIC_SHORT_WRITE_2 transfers.
- bochs: Small fix to use PTR_RET_OR_ZERO and driver unload.
- gma500: header fixes
- cirrus: Remove unused files.
- mediatek: Fix compiler warning after merging the HDR series.
- vc4: Rework binner bo handling.
Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/052875a5-27ba-3832-60c2-193d950afdff@linux.intel.com
Diffstat (limited to 'include/uapi')
| -rw-r--r-- | include/uapi/drm/drm.h | 1 | ||||
| -rw-r--r-- | include/uapi/drm/drm_mode.h | 23 | ||||
| -rw-r--r-- | include/uapi/drm/v3d_drm.h | 28 |
3 files changed, 52 insertions, 0 deletions
diff --git a/include/uapi/drm/drm.h b/include/uapi/drm/drm.h index 661d73f9a919..8a5b2f8f8eb9 100644 --- a/include/uapi/drm/drm.h +++ b/include/uapi/drm/drm.h | |||
| @@ -50,6 +50,7 @@ typedef unsigned int drm_handle_t; | |||
| 50 | 50 | ||
| 51 | #else /* One of the BSDs */ | 51 | #else /* One of the BSDs */ |
| 52 | 52 | ||
| 53 | #include <stdint.h> | ||
| 53 | #include <sys/ioccom.h> | 54 | #include <sys/ioccom.h> |
| 54 | #include <sys/types.h> | 55 | #include <sys/types.h> |
| 55 | typedef int8_t __s8; | 56 | typedef int8_t __s8; |
diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h index 83cd1636b9be..997a7e05c0c6 100644 --- a/include/uapi/drm/drm_mode.h +++ b/include/uapi/drm/drm_mode.h | |||
| @@ -630,6 +630,29 @@ struct drm_color_lut { | |||
| 630 | __u16 reserved; | 630 | __u16 reserved; |
| 631 | }; | 631 | }; |
| 632 | 632 | ||
| 633 | /* HDR Metadata Infoframe as per 861.G spec */ | ||
| 634 | struct hdr_metadata_infoframe { | ||
| 635 | __u8 eotf; | ||
| 636 | __u8 metadata_type; | ||
| 637 | struct { | ||
| 638 | __u16 x, y; | ||
| 639 | } display_primaries[3]; | ||
| 640 | struct { | ||
| 641 | __u16 x, y; | ||
| 642 | } white_point; | ||
| 643 | __u16 max_display_mastering_luminance; | ||
| 644 | __u16 min_display_mastering_luminance; | ||
| 645 | __u16 max_cll; | ||
| 646 | __u16 max_fall; | ||
| 647 | }; | ||
| 648 | |||
| 649 | struct hdr_output_metadata { | ||
| 650 | __u32 metadata_type; | ||
| 651 | union { | ||
| 652 | struct hdr_metadata_infoframe hdmi_metadata_type1; | ||
| 653 | }; | ||
| 654 | }; | ||
| 655 | |||
| 633 | #define DRM_MODE_PAGE_FLIP_EVENT 0x01 | 656 | #define DRM_MODE_PAGE_FLIP_EVENT 0x01 |
| 634 | #define DRM_MODE_PAGE_FLIP_ASYNC 0x02 | 657 | #define DRM_MODE_PAGE_FLIP_ASYNC 0x02 |
| 635 | #define DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE 0x4 | 658 | #define DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE 0x4 |
diff --git a/include/uapi/drm/v3d_drm.h b/include/uapi/drm/v3d_drm.h index ea70669d2138..58fbe48c91e9 100644 --- a/include/uapi/drm/v3d_drm.h +++ b/include/uapi/drm/v3d_drm.h | |||
| @@ -37,6 +37,7 @@ extern "C" { | |||
| 37 | #define DRM_V3D_GET_PARAM 0x04 | 37 | #define DRM_V3D_GET_PARAM 0x04 |
| 38 | #define DRM_V3D_GET_BO_OFFSET 0x05 | 38 | #define DRM_V3D_GET_BO_OFFSET 0x05 |
| 39 | #define DRM_V3D_SUBMIT_TFU 0x06 | 39 | #define DRM_V3D_SUBMIT_TFU 0x06 |
| 40 | #define DRM_V3D_SUBMIT_CSD 0x07 | ||
| 40 | 41 | ||
| 41 | #define DRM_IOCTL_V3D_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CL, struct drm_v3d_submit_cl) | 42 | #define DRM_IOCTL_V3D_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CL, struct drm_v3d_submit_cl) |
| 42 | #define DRM_IOCTL_V3D_WAIT_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_WAIT_BO, struct drm_v3d_wait_bo) | 43 | #define DRM_IOCTL_V3D_WAIT_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_WAIT_BO, struct drm_v3d_wait_bo) |
| @@ -45,6 +46,7 @@ extern "C" { | |||
| 45 | #define DRM_IOCTL_V3D_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_GET_PARAM, struct drm_v3d_get_param) | 46 | #define DRM_IOCTL_V3D_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_GET_PARAM, struct drm_v3d_get_param) |
| 46 | #define DRM_IOCTL_V3D_GET_BO_OFFSET DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_GET_BO_OFFSET, struct drm_v3d_get_bo_offset) | 47 | #define DRM_IOCTL_V3D_GET_BO_OFFSET DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_GET_BO_OFFSET, struct drm_v3d_get_bo_offset) |
| 47 | #define DRM_IOCTL_V3D_SUBMIT_TFU DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_TFU, struct drm_v3d_submit_tfu) | 48 | #define DRM_IOCTL_V3D_SUBMIT_TFU DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_TFU, struct drm_v3d_submit_tfu) |
| 49 | #define DRM_IOCTL_V3D_SUBMIT_CSD DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CSD, struct drm_v3d_submit_csd) | ||
| 48 | 50 | ||
| 49 | /** | 51 | /** |
| 50 | * struct drm_v3d_submit_cl - ioctl argument for submitting commands to the 3D | 52 | * struct drm_v3d_submit_cl - ioctl argument for submitting commands to the 3D |
| @@ -190,6 +192,7 @@ enum drm_v3d_param { | |||
| 190 | DRM_V3D_PARAM_V3D_CORE0_IDENT1, | 192 | DRM_V3D_PARAM_V3D_CORE0_IDENT1, |
| 191 | DRM_V3D_PARAM_V3D_CORE0_IDENT2, | 193 | DRM_V3D_PARAM_V3D_CORE0_IDENT2, |
| 192 | DRM_V3D_PARAM_SUPPORTS_TFU, | 194 | DRM_V3D_PARAM_SUPPORTS_TFU, |
| 195 | DRM_V3D_PARAM_SUPPORTS_CSD, | ||
| 193 | }; | 196 | }; |
| 194 | 197 | ||
| 195 | struct drm_v3d_get_param { | 198 | struct drm_v3d_get_param { |
| @@ -230,6 +233,31 @@ struct drm_v3d_submit_tfu { | |||
| 230 | __u32 out_sync; | 233 | __u32 out_sync; |
| 231 | }; | 234 | }; |
| 232 | 235 | ||
| 236 | /* Submits a compute shader for dispatch. This job will block on any | ||
| 237 | * previous compute shaders submitted on this fd, and any other | ||
| 238 | * synchronization must be performed with in_sync/out_sync. | ||
| 239 | */ | ||
| 240 | struct drm_v3d_submit_csd { | ||
| 241 | __u32 cfg[7]; | ||
| 242 | __u32 coef[4]; | ||
| 243 | |||
| 244 | /* Pointer to a u32 array of the BOs that are referenced by the job. | ||
| 245 | */ | ||
| 246 | __u64 bo_handles; | ||
| 247 | |||
| 248 | /* Number of BO handles passed in (size is that times 4). */ | ||
| 249 | __u32 bo_handle_count; | ||
| 250 | |||
| 251 | /* sync object to block on before running the CSD job. Each | ||
| 252 | * CSD job will execute in the order submitted to its FD. | ||
| 253 | * Synchronization against rendering/TFU jobs or CSD from | ||
| 254 | * other fds requires using sync objects. | ||
| 255 | */ | ||
| 256 | __u32 in_sync; | ||
| 257 | /* Sync object to signal when the CSD job is done. */ | ||
| 258 | __u32 out_sync; | ||
| 259 | }; | ||
| 260 | |||
| 233 | #if defined(__cplusplus) | 261 | #if defined(__cplusplus) |
| 234 | } | 262 | } |
| 235 | #endif | 263 | #endif |
