drm/displayid: add DisplayID v2.0 data blocks and primary use cases
authorJani Nikula <jani.nikula@intel.com>
Tue, 31 Aug 2021 14:17:31 +0000 (17:17 +0300)
committerJani Nikula <jani.nikula@intel.com>
Tue, 14 Sep 2021 11:21:42 +0000 (14:21 +0300)
DisplayID v2.0 changes the data block identifiers and product types (now
called primary use cases).

Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Acked-by: Maxime Ripard <maxime@cerno.tech>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/5a5c7e4477782c174f494947e2a2ea618b2b1ef2.1630419362.git.jani.nikula@intel.com
include/drm/drm_displayid.h

index 0ed9445..7977109 100644 (file)
 
 struct edid;
 
+/* DisplayID Structure versions */
+#define DISPLAY_ID_STRUCTURE_VER_12            0x12
+#define DISPLAY_ID_STRUCTURE_VER_20            0x20
+
 /* DisplayID Structure v1r2 Data Blocks */
 #define DATA_BLOCK_PRODUCT_ID                  0x00
 #define DATA_BLOCK_DISPLAY_PARAMETERS          0x01
@@ -48,6 +52,20 @@ struct edid;
 #define DATA_BLOCK_VENDOR_SPECIFIC             0x7f
 #define DATA_BLOCK_CTA                         0x81
 
+/* DisplayID Structure v2r0 Data Blocks */
+#define DATA_BLOCK_2_PRODUCT_ID                        0x20
+#define DATA_BLOCK_2_DISPLAY_PARAMETERS                0x21
+#define DATA_BLOCK_2_TYPE_7_DETAILED_TIMING    0x22
+#define DATA_BLOCK_2_TYPE_8_ENUMERATED_TIMING  0x23
+#define DATA_BLOCK_2_TYPE_9_FORMULA_TIMING     0x24
+#define DATA_BLOCK_2_DYNAMIC_VIDEO_TIMING      0x25
+#define DATA_BLOCK_2_DISPLAY_INTERFACE_FEATURES        0x26
+#define DATA_BLOCK_2_STEREO_DISPLAY_INTERFACE  0x27
+#define DATA_BLOCK_2_TILED_DISPLAY_TOPOLOGY    0x28
+#define DATA_BLOCK_2_CONTAINER_ID              0x29
+#define DATA_BLOCK_2_VENDOR_SPECIFIC           0x7e
+#define DATA_BLOCK_2_CTA_DISPLAY_ID            0x81
+
 /* DisplayID Structure v1r2 Product Type */
 #define PRODUCT_TYPE_EXTENSION                 0
 #define PRODUCT_TYPE_TEST                      1
@@ -57,6 +75,17 @@ struct edid;
 #define PRODUCT_TYPE_REPEATER                  5
 #define PRODUCT_TYPE_DIRECT_DRIVE              6
 
+/* DisplayID Structure v2r0 Display Product Primary Use Case (~Product Type) */
+#define PRIMARY_USE_EXTENSION                  0
+#define PRIMARY_USE_TEST                       1
+#define PRIMARY_USE_GENERIC                    2
+#define PRIMARY_USE_TV                         3
+#define PRIMARY_USE_DESKTOP_PRODUCTIVITY       4
+#define PRIMARY_USE_DESKTOP_GAMING             5
+#define PRIMARY_USE_PRESENTATION               6
+#define PRIMARY_USE_HEAD_MOUNTED_VR            7
+#define PRIMARY_USE_HEAD_MOUNTED_AR            8
+
 struct displayid_header {
        u8 rev;
        u8 bytes;