History

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>

Dave Airlie committed 7 years ago

Commit 88cd7a22 parents cd6c84d 909fa33220 files · +5943 −4593Browse files

Showing the changes to include/uapi (3 of 220 files). Show all

Unified · Split

3 files
  1. include/uapi/drm/drm.h +1 −0
  2. include/uapi/drm/drm_mode.h +23 −0
  3. include/uapi/drm/v3d_drm.h +28 −0
include/uapi/drm/drm.h+1−0
@@ -50,6 +50,7 @@ typedef unsigned int drm_handle_t; · 49 unmodified lines
5050
5151 #else /* One of the BSDs */
5252
53+#include <stdint.h>
5354 #include <sys/ioccom.h>
5455 #include <sys/types.h>
5556 typedef int8_t __s8;
include/uapi/drm/drm_mode.h+23−0
@@ -630,6 +630,29 @@ struct drm_color_lut { · 629 unmodified lines
630630 __u16 reserved;
631631 };
632632
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+
633656 #define DRM_MODE_PAGE_FLIP_EVENT 0x01
634657 #define DRM_MODE_PAGE_FLIP_ASYNC 0x02
635658 #define DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE 0x4
include/uapi/drm/v3d_drm.h+28−0
@@ -37,6 +37,7 @@ extern "C" { · 36 unmodified lines
3737 #define DRM_V3D_GET_PARAM 0x04
3838 #define DRM_V3D_GET_BO_OFFSET 0x05
3939 #define DRM_V3D_SUBMIT_TFU 0x06
40+#define DRM_V3D_SUBMIT_CSD 0x07
4041
4142 #define DRM_IOCTL_V3D_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CL, struct drm_v3d_submit_cl)
4243 #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
4546 #define DRM_IOCTL_V3D_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_GET_PARAM, struct drm_v3d_get_param)
4647 #define DRM_IOCTL_V3D_GET_BO_OFFSET DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_GET_BO_OFFSET, struct drm_v3d_get_bo_offset)
4748 #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)
4850
4951 /**
5052 * struct drm_v3d_submit_cl - ioctl argument for submitting commands to the 3D
@@ -190,6 +192,7 @@ enum drm_v3d_param { · 139 unmodified lines
190192 DRM_V3D_PARAM_V3D_CORE0_IDENT1,
191193 DRM_V3D_PARAM_V3D_CORE0_IDENT2,
192194 DRM_V3D_PARAM_SUPPORTS_TFU,
195+ DRM_V3D_PARAM_SUPPORTS_CSD,
193196 };
194197
195198 struct drm_v3d_get_param {
@@ -230,6 +233,31 @@ struct drm_v3d_submit_tfu { · 34 unmodified lines
230233 __u32 out_sync;
231234 };
232235
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+
233261 #if defined(__cplusplus)
234262 }
235263 #endif