| From abb221042ebe297834475c54eeb9061480e0f280 Mon Sep 17 00:00:00 2001 |
| From: Daniel Vetter <daniel.vetter@ffwll.ch> |
| Date: Sun, 21 Jul 2013 13:16:24 +0200 |
| Subject: drm/i915: fix up gt init sequence fallout |
| |
| The regression fix for gen6+ rps fallout |
| |
| commit 7dcd2677ea912573d9ed4bcd629b0023b2d11505 |
| Author: Konstantin Khlebnikov <khlebnikov@openvz.org> |
| Date: Wed Jul 17 10:22:58 2013 +0400 |
| |
| drm/i915: fix long-standing SNB regression in power consumption after resume |
| |
| unintentionally also changed the init sequence ordering between |
| gt_init and gt_reset - we need to reset BIOS damage like leftover |
| forcewake references before we run our own code. Otherwise we can get |
| nasty dmesg noise like |
| |
| [drm:__gen6_gt_force_wake_mt_get] *ERROR* Timed out waiting for forcewake old ack to clear. |
| |
| again. Since _reset suggests that we first need to have stuff |
| initialized (which isn't the case here) call it sanitze instead. |
| |
| While at it also block out the rps disable introduced by the above |
| commit on ilk: We don't have any knowledge of ilk rps being broken in |
| similar ways. And the disable functions uses the default hw state |
| which is only read out when we're enabling rps. So essentially we've |
| been writing random grabage into that register. |
| |
| Reported-by: Chris Wilson <chris@chris-wilson.co.uk> |
| Cc: Chris Wilson <chris@chris-wilson.co.uk> |
| Cc: Konstantin Khlebnikov <khlebnikov@openvz.org> |
| Cc: Jesse Barnes <jbarnes@virtuousgeek.org> |
| Cc: stable@vger.kernel.org |
| Tested-by: Chris Wilson <chris@chris-wilson.co.uk> |
| Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> |
| Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> |
| (cherry picked from commit 181d1b9e31c668259d3798c521672afb8edd355c) |
| [dbasehore: fixed conflict from missing line in commit due to 3.10 backport] |
| Signed-off-by: Derek Basehore <dbasehore@chromium.org> |
| |
| Conflicts: |
| drivers/gpu/drm/i915/i915_dma.c |
| Signed-off-by: Darren Hart <dvhart@linux.intel.com> |
| --- |
| drivers/gpu/drm/i915/intel_pm.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c |
| index aa962ef827c4..f895d1508df8 100644 |
| --- a/drivers/gpu/drm/i915/intel_pm.c |
| +++ b/drivers/gpu/drm/i915/intel_pm.c |
| @@ -5489,7 +5489,8 @@ void intel_gt_sanitize(struct drm_device *dev) |
| } |
| |
| /* BIOS often leaves RC6 enabled, but disable it for hw init */ |
| - intel_disable_gt_powersave(dev); |
| + if (INTEL_INFO(dev)->gen >= 6) |
| + intel_disable_gt_powersave(dev); |
| } |
| |
| void intel_gt_init(struct drm_device *dev) |
| -- |
| 1.8.5.rc3 |
| |