Lines Matching refs:rps
346 dev_priv->gt_pm.rps.pm_iir = 0; in gen11_reset_rps_interrupts()
357 dev_priv->gt_pm.rps.pm_iir = 0; in gen6_reset_rps_interrupts()
364 struct intel_rps *rps = &dev_priv->gt_pm.rps; in gen6_enable_rps_interrupts() local
366 if (READ_ONCE(rps->interrupts_enabled)) in gen6_enable_rps_interrupts()
370 WARN_ON_ONCE(rps->pm_iir); in gen6_enable_rps_interrupts()
377 rps->interrupts_enabled = true; in gen6_enable_rps_interrupts()
385 return mask & ~i915->gt_pm.rps.pm_intrmsk_mbz; in gen6_sanitize_rps_pm_mask()
390 struct intel_rps *rps = &dev_priv->gt_pm.rps; in gen6_disable_rps_interrupts() local
393 if (!READ_ONCE(rps->interrupts_enabled)) in gen6_disable_rps_interrupts()
397 rps->interrupts_enabled = false; in gen6_disable_rps_interrupts()
411 cancel_work_sync(&rps->work); in gen6_disable_rps_interrupts()
1126 memset(&dev_priv->gt_pm.rps.ei, 0, sizeof(dev_priv->gt_pm.rps.ei)); in gen6_rps_reset_ei()
1131 struct intel_rps *rps = &dev_priv->gt_pm.rps; in vlv_wa_c0_ei() local
1132 const struct intel_rps_ei *prev = &rps->ei; in vlv_wa_c0_ei()
1159 if (c0 > time * rps->power.up_threshold) in vlv_wa_c0_ei()
1161 else if (c0 < time * rps->power.down_threshold) in vlv_wa_c0_ei()
1165 rps->ei = now; in vlv_wa_c0_ei()
1172 container_of(work, struct drm_i915_private, gt_pm.rps.work); in gen6_pm_rps_work()
1174 struct intel_rps *rps = &dev_priv->gt_pm.rps; in gen6_pm_rps_work() local
1180 if (rps->interrupts_enabled) { in gen6_pm_rps_work()
1181 pm_iir = fetch_and_zero(&rps->pm_iir); in gen6_pm_rps_work()
1182 client_boost = atomic_read(&rps->num_waiters); in gen6_pm_rps_work()
1191 mutex_lock(&rps->lock); in gen6_pm_rps_work()
1195 adj = rps->last_adj; in gen6_pm_rps_work()
1196 new_delay = rps->cur_freq; in gen6_pm_rps_work()
1197 min = rps->min_freq_softlimit; in gen6_pm_rps_work()
1198 max = rps->max_freq_softlimit; in gen6_pm_rps_work()
1200 max = rps->max_freq; in gen6_pm_rps_work()
1201 if (client_boost && new_delay < rps->boost_freq) { in gen6_pm_rps_work()
1202 new_delay = rps->boost_freq; in gen6_pm_rps_work()
1210 if (new_delay >= rps->max_freq_softlimit) in gen6_pm_rps_work()
1215 if (rps->cur_freq > rps->efficient_freq) in gen6_pm_rps_work()
1216 new_delay = rps->efficient_freq; in gen6_pm_rps_work()
1217 else if (rps->cur_freq > rps->min_freq_softlimit) in gen6_pm_rps_work()
1218 new_delay = rps->min_freq_softlimit; in gen6_pm_rps_work()
1226 if (new_delay <= rps->min_freq_softlimit) in gen6_pm_rps_work()
1232 rps->last_adj = adj; in gen6_pm_rps_work()
1242 if ((adj < 0 && rps->power.mode == HIGH_POWER) || in gen6_pm_rps_work()
1243 (adj > 0 && rps->power.mode == LOW_POWER)) in gen6_pm_rps_work()
1244 rps->last_adj = 0; in gen6_pm_rps_work()
1254 rps->last_adj = 0; in gen6_pm_rps_work()
1257 mutex_unlock(&rps->lock); in gen6_pm_rps_work()
1262 if (rps->interrupts_enabled) in gen6_pm_rps_work()
1661 struct intel_rps *rps = &i915->gt_pm.rps; in gen11_rps_irq_handler() local
1671 if (!rps->interrupts_enabled) in gen11_rps_irq_handler()
1674 rps->pm_iir |= events; in gen11_rps_irq_handler()
1675 schedule_work(&rps->work); in gen11_rps_irq_handler()
1680 struct intel_rps *rps = &dev_priv->gt_pm.rps; in gen6_rps_irq_handler() local
1686 if (rps->interrupts_enabled) { in gen6_rps_irq_handler()
1687 rps->pm_iir |= pm_iir & dev_priv->pm_rps_events; in gen6_rps_irq_handler()
1688 schedule_work(&rps->work); in gen6_rps_irq_handler()
4320 struct intel_rps *rps = &dev_priv->gt_pm.rps; in intel_irq_init() local
4328 INIT_WORK(&rps->work, gen6_pm_rps_work); in intel_irq_init()
4351 rps->pm_intrmsk_mbz = 0; in intel_irq_init()
4360 rps->pm_intrmsk_mbz |= GEN6_PM_RP_UP_EI_EXPIRED; in intel_irq_init()
4363 rps->pm_intrmsk_mbz |= GEN8_PMINTR_DISABLE_REDIRECT_TO_GUC; in intel_irq_init()