On Tue, 2016-06-14 at 23:46 -0400, Felix Miata wrote: > Sebastian Gutzwiller composed on 2016-06-14 11:10 (UTC+0200): > > > I have a LCD display (115 mm x 86 mm) with VGA resolution (640 x > > 480) > > connected over LVDS with an Intel Atom N450. > > > After upgrading from Ubuntu 10.04 to 14.04 I only see the upper > > left > > detail of the whole screen (see attachment 'display_picture.jpg'). > > > The Xorg log (see attachment 'Xubuntu.14.04.4.LTS.Xorg.0.log') > > reported > > a physical screen size of 270 mm x 203 mm which is pretty much the > > size > > of the whole screen. > > > Any suggestions? > > Something to try (I don't have any Intel Atoms to test on): > > 1.login on a vtty > 2.sudo apt-get purge xserver-xorg-video-intel > 3.reboot (or restart X xserver) > > Reason: sometime post-server 1.16.x. the generic modesetting driver > was moved > directly into the server itself. It's supposed to be competent for > all > non-ancient mainstream gfxchips, a substitute for chip-specific > drivers. If > it doesn't help, it's up to you whether to bother reinstalling the > intel driver. I made this patch a few years ago, still applies:
--- hw/xfree86/ddc/interpret_edid.c~ 2013-10-03 07:25:56.000000000 +0100 +++ hw/xfree86/ddc/interpret_edid.c 2013-10-03 07:48:55.168972224 +0100 @@ -144,6 +144,15 @@ xf86ForEachDetailedBlock(m, handle_detailed_hvsize, &p); + if ((p.real_hsize != m->features.hsize ) || + (p.real_vsize != m->features.vsize)) { + xf86Msg(X_INFO, "Inconsistency in detected Display Size:\n"); + xf86Msg(X_INFO, "Monitor features physical dimensions %dx%d mm\n", + m->features.hsize, m->features.vsize); + xf86Msg(X_INFO, "Detailed timings physical dimensions %dx%d mm\n", + p.real_hsize, p.real_vsize); + } + if (!p.real_hsize || !p.real_vsize) { m->features.hsize = m->features.vsize = 0; } --- hw/xfree86/modes/xf86Crtc.c.orig 2013-11-01 16:59:03.904169898 +0000 +++ hw/xfree86/modes/xf86Crtc.c 2013-11-01 17:06:28.387359579 +0000 @@ -3052,8 +3052,15 @@ (det_mon->section.d_timings.v_size * 12)) && ((det_mon->section.d_timings.v_size * 5) < (det_mon->section.d_timings.h_size * 12))) { - p->output->mm_width = det_mon->section.d_timings.h_size; - p->output->mm_height = det_mon->section.d_timings.v_size; + if (!(p->output->conf_monitor && + (p->output->conf_monitor->mon_width > 0 && + p->output->conf_monitor->mon_height > 0))) { + /* + * Do not update size if user configured DisplaySize + */ + p->output->mm_width = det_mon->section.d_timings.h_size; + p->output->mm_height = det_mon->section.d_timings.v_size; + } p->ret = TRUE; } else xf86DrvMsg(p->output->scrn->scrnIndex, X_WARNING, @@ -3109,6 +3116,15 @@ xf86OutputSetEDIDProperty(output, edid_mon ? edid_mon->rawData : NULL, size); #endif + if (output->conf_monitor && + (output->conf_monitor->mon_width > 0 && + output->conf_monitor->mon_height > 0)) { + /* + * Prefer user configured DisplaySize + */ + output->mm_width = output->conf_monitor->mon_width; + output->mm_height = output->conf_monitor->mon_height; + } if (edid_mon) {
signature.asc
Description: This is a digitally signed message part
_______________________________________________ xorg@lists.x.org: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: https://lists.x.org/mailman/listinfo/xorg Your subscription address: %(user_address)s