[edid-decode 1/7] Print the resolutions next to the CEA VICs

Damien Lespiau damien.lespiau at intel.com
Wed Aug 7 06:58:17 PDT 2013


Signed-off-by: Damien Lespiau <damien.lespiau at intel.com>
---
 edid-decode.c | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 82 insertions(+), 2 deletions(-)

diff --git a/edid-decode.c b/edid-decode.c
index 9840db6..7515181 100644
--- a/edid-decode.c
+++ b/edid-decode.c
@@ -32,6 +32,8 @@
 #include <time.h>
 #include <ctype.h>
 
+#define ARRAY_SIZE(x) (sizeof(x) / sizeof(*(x)))
+
 static int claims_one_point_oh = 0;
 static int claims_one_point_two = 0;
 static int claims_one_point_three = 0;
@@ -569,14 +571,92 @@ cea_audio_block(unsigned char *x)
     }
 }
 
+static const char *edid_cea_modes[] = {
+    "640x480 at 60Hz",
+    "720x480 at 60Hz",
+    "720x480 at 60Hz",
+    "1280x720 at 60Hz",
+    "1920x1080i at 60Hz",
+    "1440x480i at 60Hz",
+    "1440x480i at 60Hz",
+    "1440x240 at 60Hz",
+    "1440x240 at 60Hz",
+    "2880x480i at 60Hz",
+    "2880x480i at 60Hz"
+    "2880x240 at 60Hz",
+    "2880x240 at 60Hz",
+    "1440x480 at 60Hz",
+    "1440x480 at 60Hz",
+    "1920x1080 at 60Hz",
+    "720x576 at 50Hz",
+    "720x576 at 50Hz",
+    "1280x720 at 50Hz",
+    "1920x1080i at 50Hz",
+    "1440x576i at 50Hz",
+    "1440x576i at 50Hz",
+    "1440x288 at 50Hz",
+    "1440x288 at 50Hz",
+    "2880x576i at 50Hz",
+    "2880x576i at 50Hz",
+    "2880x288 at 50Hz",
+    "2880x288 at 50Hz",
+    "1440x576 at 50Hz",
+    "1440x576 at 50Hz",
+    "1920x1080 at 50Hz",
+    "1920x1080 at 24Hz",
+    "1920x1080 at 25Hz",
+    "1920x1080 at 30Hz",
+    "2880x480 at 60Hz",
+    "2880x480 at 60Hz",
+    "2880x576 at 50Hz",
+    "2880x576 at 50Hz",
+    "1920x1080i at 50Hz",
+    "1920x1080i at 100Hz",
+    "1280x720 at 100Hz",
+    "720x576 at 100Hz",
+    "720x576 at 100Hz",
+    "1440x576 at 100Hz",
+    "1440x576 at 100Hz",
+    "1920x1080i at 120Hz",
+    "1280x720 at 120Hz",
+    "720x480 at 120Hz",
+    "720x480 at 120Hz",
+    "1440x480i at 120Hz",
+    "1440x480i at 120Hz",
+    "720x576 at 200Hz",
+    "720x576 at 200Hz",
+    "1440x576i at 200Hz",
+    "1440x576i at 200Hz",
+    "720x480 at 240Hz",
+    "720x480 at 240Hz",
+    "1440x480i at 240Hz",
+    "1440x480i at 240Hz",
+    "1280x720 at 24Hz",
+    "1280x720 at 25Hz",
+    "1280x720 at 30Hz",
+    "1920x1080 at 120Hz",
+    "1920x1080 at 100Hz",
+};
+
 static void
 cea_video_block(unsigned char *x)
 {
     int i;
     int length = x[0] & 0x1f;
 
-    for (i = 1; i < length; i++)
-	printf("    VIC %02d %s\n", x[i] & 0x7f, x[i] & 0x80 ? "(native)" : "");
+    for (i = 1; i < length; i++)  {
+	unsigned char vic = x[i] & 0x7f;
+	unsigned char native = x[i] & 0x80;
+	const char *mode;
+
+	vic--;
+	if (vic < ARRAY_SIZE(edid_cea_modes))
+	    mode = edid_cea_modes[vic];
+	else
+	    mode = "Unknown mode";
+
+	printf("    VIC %02d %s %s\n", vic, mode, native ? "(native)" : "");
+    }
 }
 
 static void
-- 
1.8.3.1



More information about the dri-devel mailing list