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>
Showing the changes to include/uapi (2 of 110 files). Show all
Unified · Split
| @@ -744,6 +744,35 @@ extern "C" { · 743 unmodified lines | ||
| 744 | 744 | */ |
| 745 | 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 | 776 | /* NVIDIA frame buffer modifiers */ |
| 748 | 777 | |
| 749 | 778 | /* |
| @@ -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 | 945 | #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 | 953 | #define DRM_MODE_PAGE_FLIP_ASYNC 0x02 |
| 940 | 954 | #define DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE 0x4 |
| 941 | 955 | #define DRM_MODE_PAGE_FLIP_TARGET_RELATIVE 0x8 |
| 942 | 956 | #define DRM_MODE_PAGE_FLIP_TARGET (DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE | \ |
| 943 | 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 | 963 | #define DRM_MODE_PAGE_FLIP_FLAGS (DRM_MODE_PAGE_FLIP_EVENT | \ |
| 945 | 964 | DRM_MODE_PAGE_FLIP_ASYNC | \ |
| 946 | 965 | DRM_MODE_PAGE_FLIP_TARGET) |
| @@ -1034,11 +1053,53 @@ struct drm_mode_destroy_dumb { · 87 unmodified lines | ||
| 1034 | 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 | 1065 | #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 | 1074 | #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 | 1095 | #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 | 1103 | #define DRM_MODE_ATOMIC_FLAGS (\ |
| 1043 | 1104 | DRM_MODE_PAGE_FLIP_EVENT |\ |
| 1044 | 1105 | DRM_MODE_PAGE_FLIP_ASYNC |\ |