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 <br...@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 <br...@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 <br...@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 -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org