From: Tormod Volden <[email protected]> For instance, the handling of week=0xff or week=0 was not working, as could be seen from the data/sharp-* examples.
Only EDID version 1.4 requires the year to be 2006 or later. Signed-off-by: Tormod Volden <[email protected]> --- v2: We should not require year >= 2006 if version < 1.4. This can be made prettier if we do the EDID version parsing before the week and year parsing, but I will leave it like this for now. Tormod edid-decode.c | 22 +++++++++++----------- 1 files changed, 11 insertions(+), 11 deletions(-) diff --git a/edid-decode.c b/edid-decode.c index ab4bde8..9c89528 100644 --- a/edid-decode.c +++ b/edid-decode.c @@ -953,18 +953,18 @@ int main(int argc, char **argv) time(&the_time); ptm = localtime(&the_time); - if (edid[0x10] < 55 || edid[0x10] == 0xff) { + if (edid[0x10] < 0x37 || edid[0x10] == 0xff) has_valid_week = 1; - if (edid[0x11] > 0x0f) { - if (edid[0x10] == 0xff) { - has_valid_year = 1; - printf("Made week %hd of model year %hd\n", edid[0x10], - edid[0x11]); - } else if (edid[0x11] + 90 <= ptm->tm_year) { - has_valid_year = 1; - printf("Made week %hd of %hd\n", edid[0x10], edid[0x11] + 1990); - } - } + if (edid[0x11] + 90 <= ptm->tm_year) { + /* Year must be 2006 or later from EDID version 1.4 */ + if (edid[0x11] > 0x0f || edid[0x13] < 4) + has_valid_year = 1; + if (edid[0x10] == 0xff) + printf("Model year %hd\n", edid[0x11] + 1990); + else if (edid[0x10] == 0) + printf("Manufactured year %hd\n", edid[0x11] + 1990); + else + printf("Manufactured week %hd of %hd\n", edid[0x10], edid[0x11] + 1990); } printf("EDID version: %hd.%hd\n", edid[0x12], edid[0x13]); -- 1.7.5.4 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
