]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
UBUNTU: SAUCE: drm/i915/gen8+: Add RC6 CTX corruption WA
authorImre Deak <imre.deak@intel.com>
Mon, 9 Jul 2018 15:24:27 +0000 (18:24 +0300)
committerStefan Bader <stefan.bader@canonical.com>
Wed, 6 Nov 2019 09:20:16 +0000 (10:20 +0100)
commit409ec90211c0b4c80834d6f97ff224c9b072dd9b
tree12914dd71e1e3b591ee08d6d79206573f192ed23
parentc3891ff5c3151d6b92d8d0011012093e6668c11c
UBUNTU: SAUCE: drm/i915/gen8+: Add RC6 CTX corruption WA

In some circumstances the RC6 context can get corrupted. We can detect
this and take the required action, that is disable RC6 and runtime PM.
The HW recovers from the corrupted state after a system suspend/resume
cycle, so detect the recovery and re-enable RC6 and runtime PM.

v2: rebase (Mika)
v3:
- Move intel_suspend_gt_powersave() to the end of the GEM suspend
  sequence.
- Add commit message.
v4:
- Rebased on intel_uncore_forcewake_put(i915->uncore, ...) API
  change.
v5: rebased on gem/gt split (Mika)

Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
CVE-2019-0154

[tyhicks: Backport to 4.15
 - Don't use intel_wakeref_t since it doesn't exist. I followed Intel's
   lead by copying what they did in their 4.19-stable backport.
 - Take dev_priv->pcu_lock in intel_disable_rc6(). I followed Intel's
   lead by copying what they did in their 4.19-stable backport.
 - Use INTEL_GEN() instead of IS_GEN()
 - Quite a few context adjustments throughout the entire patch]
Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/gpu/drm/i915/i915_drv.c
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/intel_drv.h
drivers/gpu/drm/i915/intel_pm.c