drm/fourcc: Add macros to determine the modifier vendor
authorThierry Reding <treding@nvidia.com>
Thu, 10 Jun 2021 11:12:34 +0000 (13:12 +0200)
committerThierry Reding <treding@nvidia.com>
Mon, 16 Aug 2021 10:17:56 +0000 (12:17 +0200)
When working with framebuffer modifiers, it can be useful to extract the
vendor identifier or check a modifier against a given vendor identifier.
Add one macro that extracts the vendor identifier and a helper to check
a modifier against a given vendor identifier.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Acked-by: Daniel Stone <daniels@collabora.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210610111236.3814211-1-thierry.reding@gmail.com
include/uapi/drm/drm_fourcc.h

index 9f4bb4a6f358c6de8d2ef8cd0b5383db8dc38ca2..45a914850be0d225f7e6552ac741d955e62f4849 100644 (file)
@@ -373,6 +373,12 @@ extern "C" {
 
 #define DRM_FORMAT_RESERVED          ((1ULL << 56) - 1)
 
+#define fourcc_mod_get_vendor(modifier) \
+       (((modifier) >> 56) & 0xff)
+
+#define fourcc_mod_is_vendor(modifier, vendor) \
+       (fourcc_mod_get_vendor(modifier) == DRM_FORMAT_MOD_VENDOR_## vendor)
+
 #define fourcc_mod_code(vendor, val) \
        ((((__u64)DRM_FORMAT_MOD_VENDOR_## vendor) << 56) | ((val) & 0x00ffffffffffffffULL))