Message ID | 1346565590-1760-4-git-send-email-ben@bwidawsk.net (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
On Sat, 1 Sep 2012 22:59:50 -0700, Ben Widawsky <ben@bwidawsk.net> wrote: > The same designer from the previous patch has told us to never read > FORCEWAKE. We only do this for the POSTING_READ(), so simply change that > to something within the same cacheline (for no reason in particular > other than it sounds nice). In the _mt case we can leverage > the gtfifodbg check for the POSTING_READ. The first two are Reviewed-by: Chris Wilson <chris@chris-wilson.oc.uk> The real meat of the change in the second two look good, so Acked-by: Chris Wilson <chris@chris-wilson.co.uk> -Chris
On Sun, Sep 02, 2012 at 09:41:44AM +0100, Chris Wilson wrote: > On Sat, 1 Sep 2012 22:59:50 -0700, Ben Widawsky <ben@bwidawsk.net> wrote: > > The same designer from the previous patch has told us to never read > > FORCEWAKE. We only do this for the POSTING_READ(), so simply change that > > to something within the same cacheline (for no reason in particular > > other than it sounds nice). In the _mt case we can leverage > > the gtfifodbg check for the POSTING_READ. > > The first two are Reviewed-by: Chris Wilson <chris@chris-wilson.oc.uk> > The real meat of the change in the second two look good, so > Acked-by: Chris Wilson <chris@chris-wilson.co.uk> All slurped into dinq (with some frobbing due to the vlv patches), thanks. -Daniel
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index 2a8468d..0d71ba7 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c @@ -3975,7 +3975,7 @@ static void __gen6_gt_force_wake_get(struct drm_i915_private *dev_priv) DRM_ERROR("Force wake wait timed out\n"); I915_WRITE_NOTRACE(FORCEWAKE, 1); - POSTING_READ(FORCEWAKE); + POSTING_READ(ECOBUS); /* something from same cacheline, but !FORCEWAKE */ if (wait_for_atomic((I915_READ_NOTRACE(forcewake_ack) & 1), FORCEWAKE_ACK_TIMEOUT_MS)) @@ -3998,7 +3998,7 @@ static void __gen6_gt_force_wake_mt_get(struct drm_i915_private *dev_priv) DRM_ERROR("Force wake wait timed out\n"); I915_WRITE_NOTRACE(FORCEWAKE_MT, _MASKED_BIT_ENABLE(1)); - POSTING_READ(FORCEWAKE_MT); + POSTING_READ(ECOBUS); /* something from same cacheline, but !FORCEWAKE */ if (wait_for_atomic((I915_READ_NOTRACE(forcewake_ack) & 1), FORCEWAKE_ACK_TIMEOUT_MS)) @@ -4035,14 +4035,14 @@ void gen6_gt_check_fifodbg(struct drm_i915_private *dev_priv) static void __gen6_gt_force_wake_put(struct drm_i915_private *dev_priv) { I915_WRITE_NOTRACE(FORCEWAKE, 0); - POSTING_READ(FORCEWAKE); + /* gen6_gt_check_fifodbg doubles as the POSTING_READ */ gen6_gt_check_fifodbg(dev_priv); } static void __gen6_gt_force_wake_mt_put(struct drm_i915_private *dev_priv) { I915_WRITE_NOTRACE(FORCEWAKE_MT, _MASKED_BIT_DISABLE(1)); - POSTING_READ(FORCEWAKE_MT); + /* gen6_gt_check_fifodbg doubles as the POSTING_READ */ gen6_gt_check_fifodbg(dev_priv); }
The same designer from the previous patch has told us to never read FORCEWAKE. We only do this for the POSTING_READ(), so simply change that to something within the same cacheline (for no reason in particular other than it sounds nice). In the _mt case we can leverage the gtfifodbg check for the POSTING_READ. This partially reverts commit 6af2d180f82151cf3d58952e35a4f96e45bc453a Author: Daniel Vetter <daniel.vetter@ffwll.ch> Date: Thu Jul 26 16:24:50 2012 +0200 drm/i915: fix forcewake related hangs on snb v2: commit message, comments about posting read from (Daniel) Signed-off-by: Ben Widawsky <ben@bwidawsk.net> --- drivers/gpu/drm/i915/intel_pm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)