Bug 19939 - [GM965 KMS] “acid mode” when resuming
Summary: [GM965 KMS] “acid mode” when resuming
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Jesse Barnes
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-02-03 14:21 UTC by Yves-Alexis
Modified: 2017-07-24 23:10 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Registers dump before suspend (7.67 KB, text/plain)
2009-02-03 14:22 UTC, Yves-Alexis
no flags Details
Registers dump after resume (7.67 KB, text/plain)
2009-02-03 14:23 UTC, Yves-Alexis
no flags Details
dmesg after broken resume (59.75 KB, text/plain)
2009-02-03 14:26 UTC, Yves-Alexis
no flags Details
xorg.conf (452 bytes, text/plain)
2009-02-03 14:27 UTC, Yves-Alexis
no flags Details
X log after broken resume (15.33 KB, text/plain)
2009-02-03 14:27 UTC, Yves-Alexis
no flags Details
idle GEM at suspend, set it back up at resume (2.45 KB, patch)
2009-02-17 15:10 UTC, Jesse Barnes
no flags Details | Splinter Review

Description Yves-Alexis 2009-02-03 14:21:44 UTC
Hi,

as said on intel-gfx mailing list, I have a problem on my Thinkpad T61 with KMS:

It suspends fine, but at resume the screen is corrupted, with rainbow colors:
http://molly.corsac.net/~corsac/acid/thinkpad-acid.jpg (really nice indeed but a bit scary at first sight)

I'm running:
Linux 2.6.29-rc3+thinkpad-00445-g904e012 (linux-2.6/master + drm-2.6/drm-fixes
Xorg 1.5.99.902
xf86-video-intel master with the FENCE commit reverted.

Following Jesse Barnes advice I dumped registers before/after and I'm attaching them, but they don't really show much.

I'm suspending from X11, using: echo mem > /sys/power/state
Comment 1 Yves-Alexis 2009-02-03 14:22:55 UTC
Created attachment 22546 [details]
Registers dump before suspend
Comment 2 Yves-Alexis 2009-02-03 14:23:16 UTC
Created attachment 22547 [details]
Registers dump after resume
Comment 3 Yves-Alexis 2009-02-03 14:25:27 UTC
Forgot to say that, after resume, X is stuck with rainbow colors, but the box is reachable via ssh.

lspci -vv says:

00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 0c) (prog-if 00 [VGA controller])
        Subsystem: Lenovo T61
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin A routed to IRQ 29
        Region 0: Memory at f8100000 (64-bit, non-prefetchable) [size=1M]
        Region 2: Memory at e0000000 (64-bit, prefetchable) [size=256M]
        Region 4: I/O ports at 1800 [size=8]
        Capabilities: [90] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable+
                Address: fee0100c  Data: 4199
        Capabilities: [d0] Power Management version 3
                Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-
                Bridge: PM- B3+
        Kernel modules: i915

00:02.1 Display controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 0c)
        Subsystem: Lenovo T61
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Region 0: Memory at f8200000 (64-bit, non-prefetchable) [size=1M]
        Capabilities: [d0] Power Management version 3
                Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-
                Bridge: PM- B3+
Comment 4 Yves-Alexis 2009-02-03 14:26:56 UTC
Created attachment 22548 [details]
dmesg after broken resume
Comment 5 Yves-Alexis 2009-02-03 14:27:13 UTC
Created attachment 22549 [details]
xorg.conf
Comment 6 Yves-Alexis 2009-02-03 14:27:42 UTC
Created attachment 22550 [details]
X log after broken resume
Comment 7 Yves-Alexis 2009-02-03 14:36:32 UTC
For the record, same thing happens with Linux from drm-2.6/drm-next.
Comment 8 Yves-Alexis 2009-02-08 12:35:13 UTC
Ho, and I tried without KMS enabled, and it suspends/resumes fine
Comment 9 Yves-Alexis 2009-02-08 23:27:50 UTC
Just in case, same thing happens with -rc4 + drm-2.6/drm-fixes.
Comment 10 Jesse Barnes 2009-02-17 15:10:24 UTC
Created attachment 23050 [details] [review]
idle GEM at suspend, set it back up at resume

Care to try this one out?  It may not cover everything but makes suspend/resume work for me.
Comment 11 Yves-Alexis 2009-02-18 00:01:40 UTC
(In reply to comment #10)
> Created an attachment (id=23050) [details]
> idle GEM at suspend, set it back up at resume
> 
> Care to try this one out?  It may not cover everything but makes suspend/resume
> work for me.

I tried the patch on the ML (with the irq stuff). With it, the resume still leads to “acid mode” but now the desktop is responsive. I can move the cursor, open apps, stuff like that. I tried restarting X but no luck.

I'm trying with:
linux-2.6/master + drm-2.6/fixes + your patch
xserver 1.5.99.902
xf86-video-intel master/3012d85cc5eb58c2447e93c05c39dc14feaae988 but with the FENCE stuff reverted because it didn't build with standard kernel headers (I should try to update to HEAD and try to build with custom kernel headers, just in case)
drm 2.4.4+git+20090205+8b88036-1

Cheers,
Comment 12 Yves-Alexis 2009-02-18 00:08:45 UTC
Wow, I've tried with xf86-video-intel master (so without reverting my revert) and the colors are correctly reset at resume.

The console background color (just before switch to X) is still green, which is weird, but in xorg the colors are fine. So I guess the X drivers finishes the initialization in some way.
Comment 13 Yves-Alexis 2009-02-20 06:59:47 UTC
For the record, the lock at resume is fixed with Jesse Barnes patch “i915: suspend/resume GEM when KMS is active” (not yet commited to kernel) and the “acid mode” is fixed by something in git master of xf86-video-intel.

With that, KMS suspend/resume works fine on my T61
Comment 14 Damjan Georgievski 2009-03-05 16:36:02 UTC
I don't know if it's the same bug, but latest 2.6.29-rc7 (559595a) corupts the FB console on suspend to ram and suspend to disk.

I don't have X running and the i915 module is builtin in the kernel.

The corruption is that the black background color becomes gray, white becomes yellow and red becomes cyan.

With suspend2ram this is noticeable after resume, but with suspend2disk it's noticeable a moment before the laptop is shutdown.

Hardware is i950gm (Thinkpad X60s).
Comment 15 Damjan Georgievski 2009-03-09 14:09:08 UTC
(In reply to comment #14)

interesting, the corruption goes away when the console screen blanker shuts down the screen.
Comment 16 Yves-Alexis 2009-03-09 14:15:13 UTC
The corruption is fixed in xf86-video-intel (at least in 2.6.3)

I still have some problems at resume. Once over three or four, usually, resume fails, sitting on console with a green or orange background. Keyboard doesn't respond, but if I use the Fn+F12 key to hibernate, it works. When restarting from the suspend to disk, it goes to the “broken” state.

I can suspend to ram to, but then at resume screens stays black.

kernel is 2.6.29-rc7 and drm is 2.4.5
Comment 17 Jesse Barnes 2009-03-30 17:21:47 UTC
This one's fixed right?
Comment 18 Yves-Alexis 2009-04-03 07:04:46 UTC
Yeah, thanks, it's fixed


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.