From 5fef01c2dc8a55fa978af7ef007e7a5565d4b8d4 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Oct 14 2008 18:22:20 +0000 Subject: * Tue Oct 14 2008 Adam Jackson 1.5.2-4 - xserver-1.5.2-lies-damn-lies-and-aspect-ratios.patch: Catch even more cases of the monitor encoding aspect ratio for size. (#458747) --- diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 2289f41..95b6005 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -19,7 +19,7 @@ Summary: X.Org X11 X server Name: xorg-x11-server Version: 1.5.2 -Release: 3%{?dist} +Release: 4%{?dist} URL: http://www.x.org License: MIT Group: User Interface/X @@ -85,6 +85,7 @@ Patch6003: xserver-1.5.1-mode-debug.patch Patch6004: xserver-1.5.1-global-backtrace.patch Patch6005: xserver-1.5.2-mieq-backtrace.patch Patch6006: xserver-1.5.2-backtrace-defines.patch +Patch6007: xserver-1.5.2-lies-damn-lies-and-aspect-ratios.patch %define moduledir %{_libdir}/xorg/modules %define drimoduledir %{_libdir}/dri @@ -516,6 +517,10 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Tue Oct 14 2008 Adam Jackson 1.5.2-4 +- xserver-1.5.2-lies-damn-lies-and-aspect-ratios.patch: Catch even more + cases of the monitor encoding aspect ratio for size. (#458747) + * Tue Oct 14 2008 Adam Jackson 1.5.2-3 - xserver-1.5.2-backtrace-defines.patch: Get HAVE_BACKTRACE defined even at the DIX level. diff --git a/xserver-1.5.2-lies-damn-lies-and-aspect-ratios.patch b/xserver-1.5.2-lies-damn-lies-and-aspect-ratios.patch new file mode 100644 index 0000000..e7d8b81 --- /dev/null +++ b/xserver-1.5.2-lies-damn-lies-and-aspect-ratios.patch @@ -0,0 +1,39 @@ +From bd9c6b3a4d726a3f83ac6d8cf7211eddbc28f25a Mon Sep 17 00:00:00 2001 +From: Adam Jackson +Date: Tue, 14 Oct 2008 14:04:01 -0400 +Subject: [PATCH] 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. +--- + hw/xfree86/ddc/interpret_edid.c | 10 +++++++--- + 1 files changed, 7 insertions(+), 3 deletions(-) + +diff --git a/hw/xfree86/ddc/interpret_edid.c b/hw/xfree86/ddc/interpret_edid.c +index 3596e87..fbb17b1 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", +-- +1.6.0.1 +