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
744 */744 */
745#define DRM_FORMAT_MOD_VIVANTE_SPLIT_SUPER_TILED fourcc_mod_code(VIVANTE, 4)745#define DRM_FORMAT_MOD_VIVANTE_SPLIT_SUPER_TILED fourcc_mod_code(VIVANTE, 4)
746 746
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
747/* NVIDIA frame buffer modifiers */776/* NVIDIA frame buffer modifiers */
748 777
749/*778/*
include/uapi/drm/drm_mode.h+62−1
@@ -935,12 +935,31 @@ struct hdr_output_metadata { · 934 unmodified lines
935 };935 };
936};936};
937 937
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 */
938#define DRM_MODE_PAGE_FLIP_EVENT 0x01945#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 */
939#define DRM_MODE_PAGE_FLIP_ASYNC 0x02953#define DRM_MODE_PAGE_FLIP_ASYNC 0x02
940#define DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE 0x4954#define DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE 0x4
941#define DRM_MODE_PAGE_FLIP_TARGET_RELATIVE 0x8955#define DRM_MODE_PAGE_FLIP_TARGET_RELATIVE 0x8
942#define DRM_MODE_PAGE_FLIP_TARGET (DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE | \956#define DRM_MODE_PAGE_FLIP_TARGET (DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE | \
943 DRM_MODE_PAGE_FLIP_TARGET_RELATIVE)957 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 */
944#define DRM_MODE_PAGE_FLIP_FLAGS (DRM_MODE_PAGE_FLIP_EVENT | \963#define DRM_MODE_PAGE_FLIP_FLAGS (DRM_MODE_PAGE_FLIP_EVENT | \
945 DRM_MODE_PAGE_FLIP_ASYNC | \964 DRM_MODE_PAGE_FLIP_ASYNC | \
946 DRM_MODE_PAGE_FLIP_TARGET)965 DRM_MODE_PAGE_FLIP_TARGET)
@@ -1034,11 +1053,53 @@ struct drm_mode_destroy_dumb { · 87 unmodified lines
1034 __u32 handle;1053 __u32 handle;
1035};1054};
1036 1055
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 */
1038#define DRM_MODE_ATOMIC_TEST_ONLY 0x01001065#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 */
1039#define DRM_MODE_ATOMIC_NONBLOCK 0x02001074#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 */
1040#define DRM_MODE_ATOMIC_ALLOW_MODESET 0x04001095#define DRM_MODE_ATOMIC_ALLOW_MODESET 0x0400
1041 1096
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 */
1042#define DRM_MODE_ATOMIC_FLAGS (\1103#define DRM_MODE_ATOMIC_FLAGS (\
1043 DRM_MODE_PAGE_FLIP_EVENT |\1104 DRM_MODE_PAGE_FLIP_EVENT |\
1044 DRM_MODE_PAGE_FLIP_ASYNC |\1105 DRM_MODE_PAGE_FLIP_ASYNC |\