Summary: | Intel N10 graphics does not initialise correctly if GRUB hands off the display in a graphics mode | ||
---|---|---|---|
Product: | DRI | Reporter: | Andy Whitcroft <apw> |
Component: | DRM/Intel | Assignee: | Chris Wilson <chris> |
Status: | CLOSED FIXED | QA Contact: | |
Severity: | major | ||
Priority: | highest | CC: | jbarnes |
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
Description
Andy Whitcroft
2010-12-03 06:26:34 UTC
Created attachment 40771 [details]
Intel register dump in early boot with GRUB using text mode
Created attachment 40772 [details]
Intel register dump in early boot with GRUB using graphics mode
Created attachment 40773 [details]
Intel register dump at gdm prompt, display solid purple
Created attachment 40774 [details]
Intel register dump at gdm prompt following suspend/resume cycle, display normal
I think the key clue is the FIFO_UNDERRUN on pipe B. BIOS starts on pipe A, plane A (probably). grub2 switches to pipe B, plane B (though neither plane is actually enabled!) i915.ko starts on pipe B, plane A. My hypothesis is that we fail to actually teardown the state correctly (because it doesn't match our pipe/plane coupling) so there is a small window where the registers are misconfigured, leading to undefined behaviour. Created attachment 40777 [details] [review] Sanitize modesetting registers. Created attachment 40778 [details] [review] Sanitize modesetting registers.(v2) Second version that should hopefully not also clear a uninitialised plane. I have pulled the V2 patch and tested it on the affected hardware. Over 30 reboots I have had no failures at all, all consistantly displaying the gdm screen as expected. Without the patch we are 0/5 for a warm reboot. Thank you for your work on this: Tested-by: Andy Whitcroft <apw@canonical.com> I've pushed the patch to -fixes and will be sending a pull request to Dave in a couple of days if nothing turns up. Thanks. commit 47f1c6c9ffdec0c0e5a2c2709bd63c7380b325c4 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Fri Dec 3 15:37:31 2010 +0000 drm/i915: Clean conflicting modesetting registers upon init If we leave the registers in a conflicting state then when we attempt to teardown the active mode, we will not disable the pipes and planes in the correct order -- leaving a plane reading from a disabled pipe and possibly leading to undefined behaviour. Reported-and-tested-by: Andy Whitcroft <apw@canonical.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=32078 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: stable@kernel.org Andy did verify, and couple days have gone and nothing turned up ... closing. |
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.