diff options
| -rw-r--r-- | drivers/gpu/drm/i915/i915_irq.c | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_pm.c | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index ba86dc330547..b051a238baf9 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c | |||
| @@ -295,8 +295,10 @@ void gen6_enable_rps_interrupts(struct drm_device *dev) | |||
| 295 | u32 gen6_sanitize_rps_pm_mask(struct drm_i915_private *dev_priv, u32 mask) | 295 | u32 gen6_sanitize_rps_pm_mask(struct drm_i915_private *dev_priv, u32 mask) |
| 296 | { | 296 | { |
| 297 | /* | 297 | /* |
| 298 | * IVB and SNB hard hangs on looping batchbuffer | 298 | * SNB,IVB can while VLV,CHV may hard hang on looping batchbuffer |
| 299 | * if GEN6_PM_UP_EI_EXPIRED is masked. | 299 | * if GEN6_PM_UP_EI_EXPIRED is masked. |
| 300 | * | ||
| 301 | * TODO: verify if this can be reproduced on VLV,CHV. | ||
| 300 | */ | 302 | */ |
| 301 | if (INTEL_INFO(dev_priv)->gen <= 7 && !IS_HASWELL(dev_priv)) | 303 | if (INTEL_INFO(dev_priv)->gen <= 7 && !IS_HASWELL(dev_priv)) |
| 302 | mask &= ~GEN6_PM_RP_UP_EI_EXPIRED; | 304 | mask &= ~GEN6_PM_RP_UP_EI_EXPIRED; |
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index 3801ff59595f..bf814a64582a 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c | |||
| @@ -4432,7 +4432,8 @@ static void vlv_set_rps_idle(struct drm_i915_private *dev_priv) | |||
| 4432 | return; | 4432 | return; |
| 4433 | 4433 | ||
| 4434 | /* Mask turbo interrupt so that they will not come in between */ | 4434 | /* Mask turbo interrupt so that they will not come in between */ |
| 4435 | I915_WRITE(GEN6_PMINTRMSK, 0xffffffff); | 4435 | I915_WRITE(GEN6_PMINTRMSK, |
| 4436 | gen6_sanitize_rps_pm_mask(dev_priv, ~0)); | ||
| 4436 | 4437 | ||
| 4437 | vlv_force_gfx_clock(dev_priv, true); | 4438 | vlv_force_gfx_clock(dev_priv, true); |
| 4438 | 4439 | ||
