Bug 20214 - Driver locks up after resume from S3 without i915.ko loaded
Summary: Driver locks up after resume from S3 without i915.ko loaded
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: Jesse Barnes
QA Contact: Xorg Project Team
Keywords: patch
: 17807 (view as bug list)
Depends on:
Reported: 2009-02-19 01:56 UTC by Helge Bahmann
Modified: 2009-03-01 18:40 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:

xf86-video-intel-2.6.1-entervt-disable-render-standby.patch (451 bytes, patch)
2009-02-19 01:56 UTC, Helge Bahmann
no flags Details | Splinter Review

Description Helge Bahmann 2009-02-19 01:56:46 UTC
Created attachment 23113 [details] [review]

Reproducible on at least Thinkpad T400, T500 (both GM45).

After resuming from S3, the machine locks after switching back to the VT the X server is running on, *unless*

- the kernel contains commit 881ee9889c8b98671c5491e43666bf5d4f78a180 (2.6.18 and later)
- i915.ko is loaded

The problem is that the driver touches MCHBAR_RENDER_STANDBY only on server start-up and relies on i915.ko to save and restore that register on suspend/resume instead. This means that for all people running either older kernels or not using drm at all, the system will inevitably lock up.

The attached patch also disables standby on EnterVT which happens after resume, fixing this problem -- perhaps it might be suitable for inclusion.
Comment 1 Helge Bahmann 2009-02-19 02:30:52 UTC
sorry typo, kernel version above should read "2.6.28 and later"
Comment 2 Eric Anholt 2009-02-21 10:42:05 UTC
Looks good, and I removed the call from the old location since entervt happens in that path as well.

In the future, attaching the output of git-format-patch HEAD~1 is nice as it gets your name, address, and commit message along with the diff in an easy-to-apply format. :)

commit 81c652e9a666a7459bcc5217c8a5ec518b6e00da
Author: Helge Bahmann <helge.bahmann@secunet.com>
Date:   Sat Feb 21 10:10:04 2009 -0800

    Move disable_render_standby to EnterVT instead of startup.
    Otherwise, with a pre-2.6.28 older kernel the disable would be lost at
    resume time and cause hangs.
    Bug #20214
Comment 3 Michael Fu 2009-03-01 18:40:35 UTC
*** Bug 17807 has been marked as a duplicate of this bug. ***

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.