Bug 23178 - Black screen out of sync when changing resolution on Q43/Q45 with VGA monitor
Summary: Black screen out of sync when changing resolution on Q43/Q45 with VGA monitor
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: unspecified
Hardware: All All
: medium normal
Assignee: ykzhao
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords: patch
Depends on:
Blocks:
 
Reported: 2009-08-06 08:47 UTC by Olivier Fourdan
Modified: 2009-10-12 01:13 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Xorg.log (107.10 KB, text/plain)
2009-08-06 08:47 UTC, Olivier Fourdan
no flags Details
Patch to unconditionally disable VGA plane (364 bytes, patch)
2009-08-06 08:50 UTC, Olivier Fourdan
no flags Details | Splinter Review
new patch to disable vga plane (1.74 KB, patch)
2009-08-09 19:12 UTC, Wang Zhenyu
no flags Details | Splinter Review

Description Olivier Fourdan 2009-08-06 08:47:27 UTC
Created attachment 28401 [details]
Xorg.log

Description of problem:

The fix for bug #17235 and #19715 (git commit db9f5915) 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.

How reproducible:

It's fairly random and does not happen all the times. Roughly, I'd say it happens 75% of the time.

Steps to Reproduce:

1. Connect a monitor to the VGA port of a system with a Q43/Q45
2. Log in graphically
3. Use xrandr to select a lower resolution, e.g. xrandr -s "1024x768"
4. 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

Additional info:

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

The problem has been reported on the ML here:

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

"lspci" on the affected hardware gives:

  00:02.0 VGA compatible controller: Intel Corporation 4 Series Chipset
  Integrated Graphics Controller (rev 03) (prog-if 00 [VGA controller])
         Subsystem: Fujitsu Siemens Computers Unknown device 114c
         Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- <TAbort- <MAbort- >SERR- <PERR-
         Latency: 0
         Interrupt: pin A routed to IRQ 11
         Region 0: Memory at fc000000 (64-bit, non-prefetchable) [size=4M]
         Region 2: Memory at e0000000 (64-bit, prefetchable) [size=256M]
         Region 4: I/O ports at 1c70 [size=8]
         Capabilities: [90] Message Signalled Interrupts: 64bit- Queue=0/0 Enable-
                 Address: 00000000  Data: 0000
         Capabilities: [d0] Power Management version 2
                 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                 Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Comment 1 Olivier Fourdan 2009-08-06 08:50:21 UTC
Created attachment 28402 [details] [review]
Patch to unconditionally disable VGA plane

This patch seems to avoid the problem and the screen does not go out of sync.
Comment 2 Wang Zhenyu 2009-08-09 19:12:54 UTC
Created attachment 28462 [details] [review]
new patch to disable vga plane 

Olivier, could you test with patch to see if it fixes your problem?
Comment 3 Wang Zhenyu 2009-08-17 19:13:25 UTC
Pushed the patch. Close.
commit 376397c21eb9a7e4ea79d349af41da81c1af861f
Author: Zhenyu Wang <zhenyuw@linux.intel.com>
Date:   Tue Aug 18 10:01:12 2009 +0800

    Fix VGA plane disabling
    
    Only apply on G4X with SR01 bit5 workaround for VGA plane disable, and
    restore behavior back for other chips to make sure other modes got disabled
    too.
    
    For bug #17235, #19715, #21064, #23178
    
    Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Comment 4 Olivier Fourdan 2009-10-12 01:13:04 UTC
However, this commit is not in current 2.8 branch:

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

whereas the patch was committed in that branch apparently:

    http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/tree/?id=376397c21eb9a7e4ea79d349af41da81c1af861f

Was there any reason for that patch not to be merged in 2.8?


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.