From: Hans Verkuil <hans.verk...@cisco.com>

Support this CTA-861 block.

Signed-off-by: Hans Verkuil <hans.verk...@cisco.com>
---
 edid-decode.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/edid-decode.c b/edid-decode.c
index 550c2d58..c61fde8a 100644
--- a/edid-decode.c
+++ b/edid-decode.c
@@ -1930,6 +1930,37 @@ cta_hdr_dyn_metadata_block(unsigned char *x)
     }
 }
 
+static void
+cta_ifdb(unsigned char *x)
+{
+    int length = x[0] & 0x1f;
+    int len_hdr = x[2] >> 5;
+
+    if (length < 2)
+       return;
+    if (length < len_hdr + 4)
+       return;
+    printf("    VSIFs: %d\n", x[3]);
+    length -= len_hdr + 3;
+    x += len_hdr + 4;
+    while (length > 0) {
+       int payload_len = x[0] >> 5;
+
+       if ((x[0] & 0x1f) == 1 && length >= 4) {
+               printf("    InfoFrame Type Code %d IEEE OUI: %02x%02x%02x\n",
+                      x[0] & 0x1f, x[3], x[2], x[1]);
+               x += 4;
+               length -= 4;
+       } else {
+               printf("    InfoFrame Type Code %d\n", x[0] & 0x1f);
+               x++;
+               length--;
+       }
+       x += payload_len;
+       length -= payload_len;
+    }
+}
+
 static void
 cta_block(unsigned char *x)
 {
@@ -2031,6 +2062,7 @@ cta_block(unsigned char *x)
                    break;
                case 0x20:
                    printf("InfoFrame data block\n");
+                   cta_ifdb(x);
                    break;
                default:
                    if (x[1] >= 6 && x[1] <= 12)
-- 
2.14.1

_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to