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 | #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 | /* |
| @@ -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 0x01 | 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 | #define DRM_MODE_PAGE_FLIP_ASYNC 0x02 | 953 | #define DRM_MODE_PAGE_FLIP_ASYNC 0x02 |
| 940 | #define DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE 0x4 | 954 | #define DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE 0x4 |
| 941 | #define DRM_MODE_PAGE_FLIP_TARGET_RELATIVE 0x8 | 955 | #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 0x0100 | 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 | #define DRM_MODE_ATOMIC_NONBLOCK 0x0200 | 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 | #define DRM_MODE_ATOMIC_ALLOW_MODESET 0x0400 | 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 | #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 |\ |