EDID: Be more cautious about finding vendor blocks.

Many old monitors zero-fill the detailed descriptors, so check for that
to avoid a useless warning like:

(WW) RADEON(0): Unknown vendor-specific block 0
This commit is contained in:
Adam Jackson 2009-05-21 10:20:48 -04:00
parent 79138eec1b
commit a2c5ee36b2

View File

@ -285,6 +285,8 @@ get_std_timing_section(Uchar *c, struct std_timings *r,
} }
} }
static const unsigned char empty_block[18];
static void static void
get_dt_md_section(Uchar *c, struct edid_version *ver, get_dt_md_section(Uchar *c, struct edid_version *ver,
struct detailed_monitor_section *det_mon) struct detailed_monitor_section *det_mon)
@ -336,10 +338,10 @@ get_dt_md_section(Uchar *c, struct edid_version *ver,
det_mon[i].type = DS_UNKOWN; det_mon[i].type = DS_UNKOWN;
break; break;
} }
if (c[3] <= 0x0F) { if (c[3] <= 0x0F && memcmp(c, empty_block, sizeof(empty_block))) {
det_mon[i].type = DS_VENDOR + c[3]; det_mon[i].type = DS_VENDOR + c[3];
} }
} else { } else {
det_mon[i].type = DT; det_mon[i].type = DT;
get_detailed_timing_section(c,&det_mon[i].section.d_timings); get_detailed_timing_section(c,&det_mon[i].section.d_timings);
} }