xorg-server: Changes to 'ubuntu'
debian/changelog | 21 ++++++---
debian/patches/164_trap-aspect-ratios.patch | 61 ++++++++++++++++++++++++++++
debian/patches/series | 1
3 files changed, 76 insertions(+), 7 deletions(-)
New commits:
commit a843dab22a2c511f580c2822b2e77847bf4dbff0
Author: Bryce Harrington <bryce@bryceharrington.org>
Date: Wed Mar 18 20:36:51 2009 -0700
Fix large font issue with monitors that mix up physical size and aspect
ratio.
diff --git a/debian/changelog b/debian/changelog
index 616cb6b..1894f40 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,12 +1,19 @@
xorg-server (2:1.6.0-0ubuntu2) UNRELEASED; urgency=low
- * Add thinko_in_xf86targetpreferred.patch: For monitors that do not
- define a "preferred" mode, if the monitor is not connected to the
- first output, X wouldn't pick up the mode correctly, resulting in a
- "No modes" error in Xorg.0.log and dropping user to failsafe-X mode.
- (LP: #335214)
-
- -- Bryce Harrington <bryce@ubuntu.com> Wed, 18 Mar 2009 20:27:09 -0700
+ * Add 163_thinko_in_xf86targetpreferred.patch:
+ - For monitors that do not define a "preferred" mode, if the monitor
+ is not connected to the first output, X wouldn't pick up the mode
+ correctly, resulting in a "No modes" error in Xorg.0.log and dropping
+ user to failsafe-X mode.
+ (LP: #335214)
+ * Add 164_trap-aspect-ratios.patch:
+ - Some monitors fib in the EDID they provide, giving their physical
+ dimensions in the global block, and their aspect ratio(!) in
+ the detailed timings. This totally messes up DPI calculations
+ resulting in huge fonts.
+ (LP: #320930)
+
+ -- Bryce Harrington <bryce@ubuntu.com> Wed, 18 Mar 2009 20:31:44 -0700
xorg-server (2:1.6.0-0ubuntu1) jaunty; urgency=low
diff --git a/debian/patches/164_trap-aspect-ratios.patch b/debian/patches/164_trap-aspect-ratios.patch
new file mode 100644
index 0000000..aa6d5c2
--- /dev/null
+++ b/debian/patches/164_trap-aspect-ratios.patch
@@ -0,0 +1,61 @@
+diff --git a/hw/xfree86/ddc/interpret_edid.c b/hw/xfree86/ddc/interpret_edid.c
+index c0e3df9..32288f7 100644
+--- a/hw/xfree86/ddc/interpret_edid.c
++++ b/hw/xfree86/ddc/interpret_edid.c
+@@ -51,6 +51,15 @@ static void get_whitepoint_section(Uchar *, struct whitePoints *);
+ static void get_detailed_timing_section(Uchar*, struct detailed_timings *);
+ static Bool validate_version(int scrnIndex, struct edid_version *);
+
++static Bool
++is_standard_aspect_ratio(int x, int y)
++{
++ return ((x == 16 && y == 9) ||
++ (x == 16 && y == 10) ||
++ (x == 4 && y == 3) ||
++ (x == 5 && y == 4));
++}
++
+ static void
+ handle_edid_quirks(xf86MonPtr m)
+ {
+@@ -91,10 +100,7 @@ handle_edid_quirks(xf86MonPtr m)
+ * try to find the largest detailed timing that matches that aspect
+ * ratio and use that to fill in the feature section.
+ */
+- if ((m->features.hsize == 16 && m->features.vsize == 9) ||
+- (m->features.hsize == 16 && m->features.vsize == 10) ||
+- (m->features.hsize == 4 && m->features.vsize == 3) ||
+- (m->features.hsize == 5 && m->features.vsize == 4)) {
++ if (is_standard_aspect_ratio(m->features.hsize, m->features.vsize)) {
+ int real_hsize = 0, real_vsize = 0;
+ float target_aspect, timing_aspect;
+
+@@ -130,6 +136,28 @@ handle_edid_quirks(xf86MonPtr m)
+ xf86Msg(X_INFO, "Quirked EDID physical size to %dx%d cm\n",
+ m->features.hsize, m->features.vsize);
+ }
++
++ /*
++ * Some monitors do the reverse, putting real size in the global block
++ * and aspect ratios in the detailed timings. Check, but only if we
++ * think we've got a real physical size.
++ */
++ if (m->features.hsize && m->features.vsize) {
++ for (i = 0; i < 4; i++) {
++ if (m->det_mon[i].type == DT) {
++ struct detailed_timings *timing;
++ timing = &m->det_mon[i].section.d_timings;
++
++ if (is_standard_aspect_ratio(timing->h_size, timing->v_size)) {
++ timing->h_size = m->features.hsize * 10;
++ timing->v_size = m->features.vsize * 10;
++ xf86Msg(X_INFO, "Quirked timing size to %dx%d mm\n",
++ timing->h_size, timing->v_size);
++
++ }
++ }
++ }
++ }
+ }
+
+ xf86MonPtr
diff --git a/debian/patches/series b/debian/patches/series
index 619449b..4540029 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -20,3 +20,4 @@
162_null_crtc_in_rotation.patch
999_default_modedebug_on.patch
163_thinko_in_xf86targetpreferred.patch
+164_trap-aspect-ratios.patch
Reply to: