diff --git a/src/include/edid.h b/src/include/edid.h index 88ce55f804..4a2f13858b 100644 --- a/src/include/edid.h +++ b/src/include/edid.h @@ -45,6 +45,8 @@ struct edid { /* used to compute timing for graphics chips. */ unsigned char phsync; unsigned char pvsync; + unsigned int x_mm; + unsigned int y_mm; unsigned int pixel_clock; unsigned int link_clock; unsigned int ha; diff --git a/src/lib/edid.c b/src/lib/edid.c index 8018967bf1..dd7c46ab2b 100644 --- a/src/lib/edid.c +++ b/src/lib/edid.c @@ -449,6 +449,8 @@ detailed_block(struct edid *out, unsigned char *x, int in_extension) if (! did_detailed_timing){ /* Edid contains pixel clock in terms of 10KHz */ out->pixel_clock = (x[0] + (x[1] << 8)) * 10; + out->x_mm = (x[12] + ((x[14] & 0xF0) << 4)); + out->y_mm = (x[13] + ((x[14] & 0x0F) << 8)); out->ha = (x[2] + ((x[4] & 0xF0) << 4)); out->hbl = (x[3] + ((x[4] & 0x0F) << 8)); out->hso = (x[8] + ((x[11] & 0xC0) << 2)); @@ -524,8 +526,8 @@ detailed_block(struct edid *out, unsigned char *x, int in_extension) " %04x %04x %04x %04x vborder %x\n" " %chsync %cvsync%s%s %s\n", out->pixel_clock, - (x[12] + ((x[14] & 0xF0) << 4)), - (x[13] + ((x[14] & 0x0F) << 8)), + out->x_mm, + out->y_mm, out->ha, out->ha + out->hso, out->ha + out->hso + out->hspw, out->ha + out->hbl, out->hborder, out->va, out->va + out->vso, out->va + out->vso + out->vspw,