Am 08.07.2016 16:09, schrieb Arnaud Vrac: > From: Arnaud Vrac <av...@freebox.fr> > > This only prints VIC codes, not DTD. > --- > edid-decode.c | 31 +++++++++++++++++++++++++++++++ > 1 file changed, 31 insertions(+) > > diff --git a/edid-decode.c b/edid-decode.c > index cd5a257..2e367b3 100644 > --- a/edid-decode.c > +++ b/edid-decode.c > @@ -795,6 +795,36 @@ cea_y420vdb(unsigned char *x) > cea_svd(x + 2, length - 1); > } > > +static void > +cea_vfpdb(unsigned char *x) > +{ > + int length = x[0] & 0x1f; > + int i; > + > + for (i = 2; i <= length; i++) { > + unsigned char svr = x[i]; > + > + if ((svr > 0 && svr < 128) || (svr > 192 && svr < 254)) { > + unsigned char vic; > + const char *mode; > + int index; > + > + vic = svr; > + index = vic - 1;
why do you need vic ? i could be dropped for srv btw you are checking index and use vic. > + > + if (index < ARRAY_SIZE(edid_cea_modes)) > + mode = edid_cea_modes[vic]; > + else > + mode = "Unknown mode"; > + > + printf(" VIC %02d %s\n", vic, mode); > + > + } else if (svr > 128 && svr < 145) { > + printf(" DTD number %02d\n", svr - 128); > + } > + } > +} when I see the ranges i am wondering ... [1-127] edid_cea_modes [01-7F] [129-144] DTD number [81-91] [193-253] edid_cea_modes [C0-FD] I would expect to see some pattern in the bits. Are you sure about the ranges ? re, wh > + > static const char *edid_cea_hdmi_modes[] = { > "3840x2160@30Hz", > "3840x2160@25Hz", > @@ -1128,6 +1158,7 @@ cea_block(unsigned char *x) > break; > case 0x0d: > printf("Video format preference data block\n"); > + cea_vfpdb(x); > break; > case 0x0e: > printf("YCbCr 4:2:0 video data block\n"); _______________________________________________ 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