[Intel-gfx] [PATCH v2 1/1] drm/i915: Update GEN6_PMINTRMSK setup with GuC enabled
Chris Wilson
chris at chris-wilson.co.uk
Mon May 30 12:48:29 UTC 2016
On Mon, May 30, 2016 at 04:51:03PM +0530, Sagar Arun Kamble wrote:
> @@ -4580,6 +4590,8 @@ void intel_irq_init(struct drm_i915_private *dev_priv)
> else
> dev_priv->pm_rps_events = GEN6_PM_RPS_EVENTS;
>
> + dev_priv->rps.pm_intr_mask = ~GEN8_PMINTR_REDIRECT_TO_NON_DISP;
I was hoping for something along the lines of
dev_priv->rps.pm_intr_keep = 0;
if (INTEL_INFO(dev_priv)->gen <= 7 && !IS_HASWELL(dev_priv))
dev_priv->rps.pm_intr_keep |= GEN6_PM_RP_UP_EI_EXPIRED;
if (INTEL_INFO(dev_priv)->gen >= 8) {
u32 tmp;
dev_priv->rps.pm_intr_keep |= GEN8_PMINTR_REDIRECT_TO_NON_DISP;
/*
* If PM interrupts are routed to GuC, Set mask for ARAT Expired
* interrupt based on mask set by GuC.
*/
tmp = I915_READ(GEN6_PMINTRMSK));
if (tmp & GEN8_PMINTR_REDIRECT_TO_NON_DISP)
dev_priv->rps.pm_intr_keep = tmp | ~GEN8_ARAT_EXPIRED_INT_MASK;
}
then gen6_sanitize_rps_pm_mask() just becomes
mask &= ~dev_priv->rps.pm_intr_keep
Note that reading PMINTRMSK to answer a question of whether we have
enabled something is odd, i.e. shouldn't we be applying the
dev_priv->rps.pm_intr_keep fixup when we redirect interrupts to the GuC?
> @@ -4715,7 +4717,20 @@ void gen6_rps_idle(struct drm_i915_private *dev_priv)
> else
> gen6_set_rps(dev_priv, dev_priv->rps.idle_freq);
> dev_priv->rps.last_adj = 0;
> - I915_WRITE(GEN6_PMINTRMSK, 0xffffffff);
> +
> + /*
> + * If PM interrupts are routed to GuC, Set mask for ARAT Expired
> + * interrupt based on mask set by GuC.
> + */
> + if (INTEL_INFO(dev_priv)->gen >= 8) {
> + if (dev_priv->rps.pm_intr_mask &
> + GEN8_PMINTR_REDIRECT_TO_NON_DISP)
> + mask &= dev_priv->rps.pm_intr_mask |
> + ~GEN8_ARAT_EXPIRED_INT_MASK;
> + else
> + mask &= ~GEN8_PMINTR_REDIRECT_TO_NON_DISP;
> + }
> + I915_WRITE(GEN6_PMINTRMSK, mask);
This should be a call to gen6_sanitize_rps_pm_mask(). Ville has a patch
on the list to do that, please pull it in.
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
More information about the Intel-gfx
mailing list