summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Jackson <ajax@redhat.com>2008-10-14 14:04:01 -0400
committerAdam Jackson <ajax@redhat.com>2008-10-14 14:04:01 -0400
commitbd9c6b3a4d726a3f83ac6d8cf7211eddbc28f25a (patch)
treebd99bd887d4a2fb25798c9ba0dc38eee14f9b895
parentad677238bc96a8578113bbe76d605d7a87aca44c (diff)
EDID: Catch even more cases of encoding aspect as size.
Very cute, Samsung, not only do you claim to be 16cm by 9cm in the global size record, you also claim to be 160mm by 90mm in the detailed timings. Grrr.
-rw-r--r--hw/xfree86/ddc/interpret_edid.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/hw/xfree86/ddc/interpret_edid.c b/hw/xfree86/ddc/interpret_edid.c
index 3596e87c9..fbb17b18e 100644
--- a/hw/xfree86/ddc/interpret_edid.c
+++ b/hw/xfree86/ddc/interpret_edid.c
@@ -115,12 +115,16 @@ handle_edid_quirks(xf86MonPtr m)
}
}
- if (real_hsize && real_vsize) {
+ if (!real_hsize || !real_vsize) {
+ m->features.hsize = m->features.vsize = 0;
+ } else if ((m->features.hsize * 10 == real_hsize) &&
+ (m->features.vsize * 10 == real_vsize)) {
+ /* exact match is just unlikely, should do a better check though */
+ m->features.hsize = m->features.vsize = 0;
+ } else {
/* convert mm to cm */
m->features.hsize = (real_hsize + 5) / 10;
m->features.vsize = (real_vsize + 5) / 10;
- } else {
- m->features.hsize = m->features.vsize = 0;
}
xf86Msg(X_INFO, "Quirked EDID physical size to %dx%d cm\n",