Bug 511896 - Screen goes out of sync when changing resolution on Q43/Q45 with VGA
Summary: Screen goes out of sync when changing resolution on Q43/Q45 with VGA
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: xorg-x11-drv-i810
Version: 5.4
Hardware: All
OS: Linux
urgent
urgent
Target Milestone: rc
: ---
Assignee: Adam Jackson
QA Contact: desktop-bugs@redhat.com
URL:
Whiteboard:
Depends On:
Blocks: 499522 5.5TechNotes-Updates 543811
TreeView+ depends on / blocked
 
Reported: 2009-07-15 14:43 UTC by Olivier Fourdan
Modified: 2018-10-27 14:55 UTC (History)
8 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Previously, using xrandr to change the screen resolution of a video device under the Intel Q43/Q45 chipset sometimes failed. After attempting the switch, the screen may have blanked and gone out of sync. With this update, this issue has been resolved.
Clone Of:
Environment:
Last Closed: 2010-03-30 08:34:58 UTC
Target Upstream Version:


Attachments (Terms of Use)
Proposed patch (364 bytes, patch)
2009-07-15 14:43 UTC, Olivier Fourdan
no flags Details | Diff
Patch from upstream bug 23178 (1.74 KB, patch)
2009-08-18 13:23 UTC, Olivier Fourdan
no flags Details | Diff


Links
System ID Priority Status Summary Last Updated
FreeDesktop.org 23178 None None None Never
Red Hat Product Errata RHBA-2010:0262 normal SHIPPED_LIVE xorg-x11-drv-i810 bug fix and enhancement update 2010-03-29 12:52:57 UTC

Description Olivier Fourdan 2009-07-15 14:43:57 UTC
Created attachment 353832 [details]
Proposed patch

Description of problem:

The fix for bug #487657 introduced a regression when changing resolution with xrandr with a VGA connected monitor on a Q43/Q45 chipset.

When switching resolution, the screen sometimes goes black and out of sync.

Version-Release number of selected component (if applicable):

xorg-x11-drv-i810-1.6.5-9.25.el5

How reproducible:

50%

Steps to Reproduce:
1. Connect a monitor to the VGA port
2. Select a lower resolution, e.g. xrandr -s "1024x768"
3. If that works, switch back to the original resolution, then select a
lower resolution again.
  
Actual results:

The screen goes black and shows "out of sync" message

Expected results:

The screen does not go "out of sync"

Additional info:

The workaround is either to repeat the last xrandr command or to switch to a text console and back again.

The problem has been introduced initially with commit db9f5915 upstream, which was backported in el5 as a fix for bug #487657.

The bug is still present upstream and I have reported it here:

  http://lists.freedesktop.org/archives/intel-gfx/2009-July/003419.html

KMS seems to be immune to the problem (ie it works in F11).

So comparing the code of i9xx_crtc_dpms() in intel_display.c in the kernel modesetting code:

 http://git.kernel.org/?p=linux/kernel/git/anholt/drm-intel.git;a=blob;f=drivers/gpu/drm/i915/intel_display.c

With the one from its equivalent i830_crtc_dpms() in i830_display.c:

 http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/tree/src/i830_display.c

We see in the kernel, the VGA_DISP_DISABLE is disabled no matter what whereas in i830_disable_vga_plane(), the function returns immediately if the bit is already set.

The attached patch disables the vga plane no matter what, and that seems to fix the issue with xrandr without breaking to fix for bug #487657.

Comment 2 Olivier Fourdan 2009-08-18 13:23:48 UTC
Created attachment 357792 [details]
Patch from upstream bug 23178

Comment 8 Adam Jackson 2009-09-15 20:18:08 UTC
Test build at http://people.redhat.com/~ajackson/511896/ with the patch from comment #2.

Comment 28 Adam Jackson 2009-12-02 18:53:56 UTC
Built xorg-x11-drv-i810 1.6.5-9.26.el5

MODIFIED

Comment 34 Ryan Lerch 2010-03-26 00:16:45 UTC
Technical note added. If any revisions are required, please edit the "Technical Notes" field
accordingly. All revisions will be proofread by the Engineering Content Services team.

New Contents:
Previously, using xrandr to change the screen resolution of a video device under the Intel Q43/Q45 chipset sometimes failed. After attempting the switch, the screen may have blanked and gone out of sync. With this update, this issue has been resolved.

Comment 35 errata-xmlrpc 2010-03-30 08:34:58 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHBA-2010-0262.html


Note You need to log in before you can comment on or make changes to this bug.