android_kernel_xiaomi_sm8350/drivers/gpu/drm/i915
Chris Wilson f6e5b1603b drm/i915: Sanitize the output registers after resume
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>
Cc: stable@kernel.org
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2011-04-12 13:08:33 -07:00
..
dvo_ch7xxx.c
dvo_ch7017.c drm/i915/dvo: Report LVDS attached to ch701x as connected 2010-12-30 13:50:43 +00:00
dvo_ivch.c
dvo_sil164.c
dvo_tfp410.c
dvo.h
i915_debugfs.c drm/i915: report correct render clock frequencies on SNB 2011-03-23 09:17:00 +00:00
i915_dma.c drm/i915: don't store the reg value for HWS_PGA 2011-03-02 09:40:14 +00:00
i915_drv.c Merge remote branch 'intel/drm-intel-next' of ../drm-next into drm-core-next 2011-03-14 14:15:13 +10:00
i915_drv.h Revert "drm/i915: Don't save/restore hardware status page address register" 2011-03-24 07:15:01 +00:00
i915_gem_debug.c drm/i915: Refine tracepoints 2011-02-07 14:59:18 +00:00
i915_gem_evict.c drm/i915: Refine tracepoints 2011-02-07 14:59:18 +00:00
i915_gem_execbuffer.c drm/i915: Disable pagefaults along execbuffer relocation fast path 2011-03-23 09:17:01 +00:00
i915_gem_gtt.c drm/i915,agp/intel: Do not clear stolen entries 2011-01-24 18:26:25 +00:00
i915_gem_tiling.c Merge branch 'drm-intel-fixes' into drm-intel-next 2011-03-07 12:35:15 +00:00
i915_gem.c drm/i915: Avoid unmapping pages from a NULL address space 2011-03-23 09:17:03 +00:00
i915_ioc32.c
i915_irq.c drm/i915: Replace vblank PM QoS with "Interrupt-Based AGPBUSY#" 2011-03-01 17:33:38 +00:00
i915_mem.c
i915_reg.h Merge commit '5359533801e3dd3abca5b7d3d985b0b33fd9fe8b' into drm-core-next 2011-03-16 11:34:41 +10:00
i915_suspend.c Revert "drm/i915: Don't save/restore hardware status page address register" 2011-03-24 07:15:01 +00:00
i915_trace_points.c
i915_trace.h drm/i915: Refine tracepoints 2011-02-07 14:59:18 +00:00
intel_acpi.c drm/i915: i915 cannot provide switcher services. 2010-12-08 15:40:44 +10:00
intel_bios.c Revert "drm/i915: Disable SSC for outputs other than LVDS or DP" 2011-02-22 15:55:28 +00:00
intel_bios.h Revert "drm/i915: Disable SSC for outputs other than LVDS or DP" 2011-02-22 15:55:28 +00:00
intel_crt.c drm/i915/crt: Remove 0xa0 probe for VGA 2011-04-05 09:05:34 -07:00
intel_display.c drm/i915: Sanitize the output registers after resume 2011-04-12 13:08:33 -07:00
intel_dp.c drm/i915/dp: Correct the order of deletion for ghost eDP devices 2011-03-23 09:16:59 +00:00
intel_drv.h drm/i915: Busy-spin wait_for condition in atomic contexts 2011-03-31 09:31:12 +01:00
intel_dvo.c drm/i915: cleanup per-pipe reg usage 2011-02-07 21:17:15 +00:00
intel_fb.c Revert "drm: Update fbdev fb_fix_screeninfo" 2011-01-14 16:10:28 -08:00
intel_hdmi.c drm/i915: Add support for limited color range of broadcast outputs 2011-02-22 15:56:56 +00:00
intel_i2c.c drm/i915: Reset GMBUS controller after NAK 2011-03-31 09:37:01 +01:00
intel_lvds.c drm/i915/lvds: Remove 0xa0 DDC probe for LVDS 2011-04-05 09:05:56 -07:00
intel_modes.c drm/i915: Add support for limited color range of broadcast outputs 2011-02-22 15:56:56 +00:00
intel_opregion.c drm/i915: Use a symbolic constant for OpRegion lid state 2011-02-24 18:13:42 +00:00
intel_overlay.c drm/i915: Use a device flag for non-interruptible phases 2011-02-22 15:56:25 +00:00
intel_panel.c Merge commit '5359533801e3dd3abca5b7d3d985b0b33fd9fe8b' into drm-core-next 2011-03-16 11:34:41 +10:00
intel_ringbuffer.c drm/i915: Restore missing command flush before interrupt on BLT ring 2011-03-23 09:17:01 +00:00
intel_ringbuffer.h Merge branch 'drm-intel-fixes' into drm-intel-next 2011-03-07 12:35:15 +00:00
intel_sdvo_regs.h
intel_sdvo.c Merge remote branch 'intel/drm-intel-next' of ../drm-next into drm-core-next 2011-03-14 14:15:13 +10:00
intel_tv.c drm/i915/tv: Fix modeset flickering introduced in 7f58aabc3 2011-04-12 10:00:52 -07:00
Makefile drm/i915: Split i915_gem_execbuffer into its own file. 2010-11-25 21:19:25 +00:00