Skip to content

Commit 7b3c29f

Browse files
ickledanvet
authored andcommitted
drm/i915: Make the RPS interrupt generation mask handle the vlv wa
We can eliminate a lot of special case code by making the computation of the interrupt mask be correct for all callers. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
1 parent bf225f2 commit 7b3c29f

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

drivers/gpu/drm/i915/intel_pm.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3183,6 +3183,9 @@ static u32 gen6_rps_pm_mask(struct drm_i915_private *dev_priv, u8 val)
31833183
if (val < dev_priv->rps.max_freq_softlimit)
31843184
mask |= GEN6_PM_RP_UP_THRESHOLD;
31853185

3186+
mask |= dev_priv->pm_rps_events & (GEN6_PM_RP_DOWN_EI_EXPIRED | GEN6_PM_RP_UP_EI_EXPIRED);
3187+
mask &= dev_priv->pm_rps_events;
3188+
31863189
/* IVB and SNB hard hangs on looping batchbuffer
31873190
* if GEN6_PM_UP_EI_EXPIRED is masked.
31883191
*/
@@ -3276,11 +3279,8 @@ static void vlv_set_rps_idle(struct drm_i915_private *dev_priv)
32763279

32773280
vlv_force_gfx_clock(dev_priv, false);
32783281

3279-
if (dev_priv->pm_rps_events & GEN6_PM_RP_UP_EI_EXPIRED)
3280-
I915_WRITE(GEN6_PMINTRMSK, ~dev_priv->pm_rps_events);
3281-
else
3282-
I915_WRITE(GEN6_PMINTRMSK,
3283-
gen6_rps_pm_mask(dev_priv, dev_priv->rps.cur_freq));
3282+
I915_WRITE(GEN6_PMINTRMSK,
3283+
gen6_rps_pm_mask(dev_priv, dev_priv->rps.cur_freq));
32843284
}
32853285

32863286
void gen6_rps_idle(struct drm_i915_private *dev_priv)

0 commit comments

Comments
 (0)