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>
Showing the changes to include/uapi (3 of 220 files). Show all
Unified · Split
| @@ -50,6 +50,7 @@ typedef unsigned int drm_handle_t; · 49 unmodified lines | ||
| 50 | 50 | |
| 51 | 51 | #else /* One of the BSDs */ |
| 52 | 52 | |
| 53 | +#include <stdint.h> | |
| 53 | 54 | #include <sys/ioccom.h> |
| 54 | 55 | #include <sys/types.h> |
| 55 | 56 | typedef int8_t __s8; |
| @@ -630,6 +630,29 @@ struct drm_color_lut { · 629 unmodified lines | ||
| 630 | 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 | 656 | #define DRM_MODE_PAGE_FLIP_EVENT 0x01 |
| 634 | 657 | #define DRM_MODE_PAGE_FLIP_ASYNC 0x02 |
| 635 | 658 | #define DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE 0x4 |
| @@ -37,6 +37,7 @@ extern "C" { · 36 unmodified lines | ||
| 37 | 37 | #define DRM_V3D_GET_PARAM 0x04 |
| 38 | 38 | #define DRM_V3D_GET_BO_OFFSET 0x05 |
| 39 | 39 | #define DRM_V3D_SUBMIT_TFU 0x06 |
| 40 | +#define DRM_V3D_SUBMIT_CSD 0x07 | |
| 40 | 41 | |
| 41 | 42 | #define DRM_IOCTL_V3D_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CL, struct drm_v3d_submit_cl) |
| 42 | 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" { · 2 unmodified lines | ||
| 45 | 46 | #define DRM_IOCTL_V3D_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_GET_PARAM, struct drm_v3d_get_param) |
| 46 | 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 | 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 | 52 | * struct drm_v3d_submit_cl - ioctl argument for submitting commands to the 3D |
| @@ -190,6 +192,7 @@ enum drm_v3d_param { · 139 unmodified lines | ||
| 190 | 192 | DRM_V3D_PARAM_V3D_CORE0_IDENT1, |
| 191 | 193 | DRM_V3D_PARAM_V3D_CORE0_IDENT2, |
| 192 | 194 | DRM_V3D_PARAM_SUPPORTS_TFU, |
| 195 | + DRM_V3D_PARAM_SUPPORTS_CSD, | |
| 193 | 196 | }; |
| 194 | 197 | |
| 195 | 198 | struct drm_v3d_get_param { |
| @@ -230,6 +233,31 @@ struct drm_v3d_submit_tfu { · 34 unmodified lines | ||
| 230 | 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 | 261 | #if defined(__cplusplus) |
| 234 | 262 | } |
| 235 | 263 | #endif |