History

Merge tag 'drm-misc-next-2022-10-20' of git://anongit.freedesktop.org/drm/drm-misc into drm-next

drm-misc-next for 6.2: UAPI Changes: - Documentation for page-flip flags Cross-subsystem Changes: - dma-buf: Add unlocked variant of vmapping and attachment-mapping functions Core Changes: - atomic-helpers: CRTC primary plane test fixes - connector: TV API consistency improvements, cmdline parsing improvements - crtc-helpers: Introduce drm_crtc_helper_atomic_check() helper - edid: Fixes for HFVSDB parsing, - fourcc: Addition of the Vivante tiled modifier - makefile: Sort and reorganize the objects files - mode_config: Remove fb_base from drm_mode_config_funcs - sched: Add a module parameter to change the scheduling policy, refcounting fix for fences - tests: Sort the Kunit tests in the Makefile, improvements to the DP-MST tests - ttm: Remove unnecessary drm_mm_clean() call Driver Changes: - New driver: ofdrm - Move all drivers to a common dma-buf locking convention - bridge: - adv7533: Remove dynamic lane switching - it6505: Runtime PM support - ps8640: Handle AUX defer messages - tc358775: Drop soft-reset over I2C - ast: Atomic Gamma LUT Support, Convert to SHMEM, various improvements - lcdif: Support for YUV planes - mgag200: Fix PLL Setup on some revisions - udl: Modesetting improvements, hot-unplug support - vc4: Fix support for PAL-M Signed-off-by: Dave Airlie <airlied@redhat.com>

Dave Airlie committed 4 years ago

Commit b837d3d2 parents 247f34f 7c99616110 files · +3849 −1353Browse files

Showing the changes to include/uapi (2 of 110 files). Show all

Unified · Split

2 files
  1. include/uapi/drm/drm_fourcc.h +29 −0
  2. include/uapi/drm/drm_mode.h +62 −1
include/uapi/drm/drm_fourcc.h+29−0
@@ -744,6 +744,35 @@ extern "C" { · 743 unmodified lines
744744 */
745745 #define DRM_FORMAT_MOD_VIVANTE_SPLIT_SUPER_TILED fourcc_mod_code(VIVANTE, 4)
746746
747+/*
748+ * Vivante TS (tile-status) buffer modifiers. They can be combined with all of
749+ * the color buffer tiling modifiers defined above. When TS is present it's a
750+ * separate buffer containing the clear/compression status of each tile. The
751+ * modifiers are defined as VIVANTE_MOD_TS_c_s, where c is the color buffer
752+ * tile size in bytes covered by one entry in the status buffer and s is the
753+ * number of status bits per entry.
754+ * We reserve the top 8 bits of the Vivante modifier space for tile status
755+ * clear/compression modifiers, as future cores might add some more TS layout
756+ * variations.
757+ */
758+#define VIVANTE_MOD_TS_64_4 (1ULL << 48)
759+#define VIVANTE_MOD_TS_64_2 (2ULL << 48)
760+#define VIVANTE_MOD_TS_128_4 (3ULL << 48)
761+#define VIVANTE_MOD_TS_256_4 (4ULL << 48)
762+#define VIVANTE_MOD_TS_MASK (0xfULL << 48)
763+
764+/*
765+ * Vivante compression modifiers. Those depend on a TS modifier being present
766+ * as the TS bits get reinterpreted as compression tags instead of simple
767+ * clear markers when compression is enabled.
768+ */
769+#define VIVANTE_MOD_COMP_DEC400 (1ULL << 52)
770+#define VIVANTE_MOD_COMP_MASK (0xfULL << 52)
771+
772+/* Masking out the extension bits will yield the base modifier. */
773+#define VIVANTE_MOD_EXT_MASK (VIVANTE_MOD_TS_MASK | \
774+ VIVANTE_MOD_COMP_MASK)
775+
747776 /* NVIDIA frame buffer modifiers */
748777
749778 /*
include/uapi/drm/drm_mode.h+62−1
@@ -935,12 +935,31 @@ struct hdr_output_metadata { · 934 unmodified lines
935935 };
936936 };
937937
938+/**
939+ * DRM_MODE_PAGE_FLIP_EVENT
940+ *
941+ * Request that the kernel sends back a vblank event (see
942+ * struct drm_event_vblank) with the &DRM_EVENT_FLIP_COMPLETE type when the
943+ * page-flip is done.
944+ */
938945 #define DRM_MODE_PAGE_FLIP_EVENT 0x01
946+/**
947+ * DRM_MODE_PAGE_FLIP_ASYNC
948+ *
949+ * Request that the page-flip is performed as soon as possible, ie. with no
950+ * delay due to waiting for vblank. This may cause tearing to be visible on
951+ * the screen.
952+ */
939953 #define DRM_MODE_PAGE_FLIP_ASYNC 0x02
940954 #define DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE 0x4
941955 #define DRM_MODE_PAGE_FLIP_TARGET_RELATIVE 0x8
942956 #define DRM_MODE_PAGE_FLIP_TARGET (DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE | \
943957 DRM_MODE_PAGE_FLIP_TARGET_RELATIVE)
958+/**
959+ * DRM_MODE_PAGE_FLIP_FLAGS
960+ *
961+ * Bitmask of flags suitable for &drm_mode_crtc_page_flip_target.flags.
962+ */
944963 #define DRM_MODE_PAGE_FLIP_FLAGS (DRM_MODE_PAGE_FLIP_EVENT | \
945964 DRM_MODE_PAGE_FLIP_ASYNC | \
946965 DRM_MODE_PAGE_FLIP_TARGET)
@@ -1034,11 +1053,53 @@ struct drm_mode_destroy_dumb { · 87 unmodified lines
10341053 __u32 handle;
10351054 };
10361055
1037−/* page-flip flags are valid, plus: */
1056+/**
1057+ * DRM_MODE_ATOMIC_TEST_ONLY
1058+ *
1059+ * Do not apply the atomic commit, instead check whether the hardware supports
1060+ * this configuration.
1061+ *
1062+ * See &drm_mode_config_funcs.atomic_check for more details on test-only
1063+ * commits.
1064+ */
10381065 #define DRM_MODE_ATOMIC_TEST_ONLY 0x0100
1066+/**
1067+ * DRM_MODE_ATOMIC_NONBLOCK
1068+ *
1069+ * Do not block while applying the atomic commit. The &DRM_IOCTL_MODE_ATOMIC
1070+ * IOCTL returns immediately instead of waiting for the changes to be applied
1071+ * in hardware. Note, the driver will still check that the update can be
1072+ * applied before retuning.
1073+ */
10391074 #define DRM_MODE_ATOMIC_NONBLOCK 0x0200
1075+/**
1076+ * DRM_MODE_ATOMIC_ALLOW_MODESET
1077+ *
1078+ * Allow the update to result in temporary or transient visible artifacts while
1079+ * the update is being applied. Applying the update may also take significantly
1080+ * more time than a page flip. All visual artifacts will disappear by the time
1081+ * the update is completed, as signalled through the vblank event's timestamp
1082+ * (see struct drm_event_vblank).
1083+ *
1084+ * This flag must be set when the KMS update might cause visible artifacts.
1085+ * Without this flag such KMS update will return a EINVAL error. What kind of
1086+ * update may cause visible artifacts depends on the driver and the hardware.
1087+ * User-space that needs to know beforehand if an update might cause visible
1088+ * artifacts can use &DRM_MODE_ATOMIC_TEST_ONLY without
1089+ * &DRM_MODE_ATOMIC_ALLOW_MODESET to see if it fails.
1090+ *
1091+ * To the best of the driver's knowledge, visual artifacts are guaranteed to
1092+ * not appear when this flag is not set. Some sinks might display visual
1093+ * artifacts outside of the driver's control.
1094+ */
10401095 #define DRM_MODE_ATOMIC_ALLOW_MODESET 0x0400
10411096
1097+/**
1098+ * DRM_MODE_ATOMIC_FLAGS
1099+ *
1100+ * Bitfield of flags accepted by the &DRM_IOCTL_MODE_ATOMIC IOCTL in
1101+ * &drm_mode_atomic.flags.
1102+ */
10421103 #define DRM_MODE_ATOMIC_FLAGS (\
10431104 DRM_MODE_PAGE_FLIP_EVENT |\
10441105 DRM_MODE_PAGE_FLIP_ASYNC |\