diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_pm.c')
| -rw-r--r-- | drivers/gpu/drm/i915/intel_pm.c | 28 | 
1 files changed, 19 insertions, 9 deletions
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index 1f4b56e273c8..964b28e3c630 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c @@ -6191,6 +6191,20 @@ void intel_cleanup_gt_powersave(struct drm_device *dev)  		valleyview_cleanup_gt_powersave(dev);  } +static void gen6_suspend_rps(struct drm_device *dev) +{ +	struct drm_i915_private *dev_priv = dev->dev_private; + +	flush_delayed_work(&dev_priv->rps.delayed_resume_work); + +	/* +	 * TODO: disable RPS interrupts on GEN9+ too once RPS support +	 * is added for it. +	 */ +	if (INTEL_INFO(dev)->gen < 9) +		gen6_disable_rps_interrupts(dev); +} +  /**   * intel_suspend_gt_powersave - suspend PM work and helper threads   * @dev: drm device @@ -6206,14 +6220,7 @@ void intel_suspend_gt_powersave(struct drm_device *dev)  	if (INTEL_INFO(dev)->gen < 6)  		return; -	flush_delayed_work(&dev_priv->rps.delayed_resume_work); - -	/* -	 * TODO: disable RPS interrupts on GEN9+ too once RPS support -	 * is added for it. -	 */ -	if (INTEL_INFO(dev)->gen < 9) -		gen6_disable_rps_interrupts(dev); +	gen6_suspend_rps(dev);  	/* Force GPU to min freq during suspend */  	gen6_rps_idle(dev_priv); @@ -6316,8 +6323,11 @@ void intel_reset_gt_powersave(struct drm_device *dev)  {  	struct drm_i915_private *dev_priv = dev->dev_private; +	if (INTEL_INFO(dev)->gen < 6) +		return; + +	gen6_suspend_rps(dev);  	dev_priv->rps.enabled = false; -	intel_enable_gt_powersave(dev);  }  static void ibx_init_clock_gating(struct drm_device *dev)  | 
