drm/i915: Sanitize the output registers after resume
commit72846ac3462c7d2bebc25c9a4d3e8f5739c5fb66
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 12 Apr 2011 17:06:51 +0000 (12 18:06 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 2 May 2011 16:19:37 +0000 (2 09:19 -0700)
tree8ac24a34db3b51aba7b129432d6686f55c6ddc68
parentfee1e99cca4a66a3d6d2983c1e1782a0e2747f57
drm/i915: Sanitize the output registers after resume

commit f6e5b1603b8bb7131b6778d0d4e2e5dda120a379 upstream.

Similar to booting, we need to inspect the state left by the BIOS and
remove any conflicting bits before we take over. The example reported by
Seth Forshee is very similar to the bug we encountered with the state left
by grub2, that the crtc pipe<->planning mapping was reversed from our
expectations and so we failed to turn off the outputs when booting or,
in this case, resuming. This may be in fact the same bug, but triggered
at resume time.

This patch rearranges the code we already have to clear up the
conflicting state upon init and calls it from reset (which is called
after we have lost control of the hardware, i.e. along both the boot and
resume paths) instead.

Reported-and-tested-by: Seth Forshee <seth.forshee@canonical.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=35796
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/gpu/drm/i915/intel_display.c