From: Hans Verkuil <hans.verk...@cisco.com> Support the Color Point Descriptor Definition (tag 0xfb).
Signed-off-by: Hans Verkuil <hans.verk...@cisco.com> --- edid-decode.c | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/edid-decode.c b/edid-decode.c index e4d70e8e..e2041048 100644 --- a/edid-decode.c +++ b/edid-decode.c @@ -381,9 +381,35 @@ detailed_block(unsigned char *x, int in_extension) print_standard_timing(x[5 + i * 2], x[5 + i * 2 + 1]); return 1; case 0xFB: - /* TODO */ - printf("Color point\n"); + { + unsigned w_x, w_y; + unsigned gamma; + + printf("Color point:\n"); + w_x = (x[7] << 2) | ((x[6] >> 2) & 3); + w_y = (x[8] << 2) | (x[6] & 3); + gamma = x[9]; + printf(" Index: %u White: 0.%04u, 0.%04u", x[5], + (w_x * 10000) / 1024, (w_y * 10000) / 1024); + if (gamma == 0xff) + printf(" Gamma: is defined in an extension block"); + else + printf(" Gamma: %.2f", ((gamma + 100.0) / 100.0)); + printf("\n"); + if (x[10] == 0) + return 1; + w_x = (x[12] << 2) | ((x[11] >> 2) & 3); + w_y = (x[13] << 2) | (x[11] & 3); + gamma = x[14]; + printf(" Index: %u White: 0.%04u, 0.%04u", x[10], + (w_x * 10000) / 1024, (w_y * 10000) / 1024); + if (gamma == 0xff) + printf(" Gamma: is defined in an extension block"); + else + printf(" Gamma: %.2f", ((gamma + 100.0) / 100.0)); + printf("\n"); return 1; + } case 0xFC: /* XXX should check for spaces after the \n */ /* XXX check: terminated with 0x0A, padded with 0x20 */ -- 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