diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index de6edd0f6205..0b77916e7ea6 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
| @@ -6585,18 +6585,22 @@ done: | |||
| 6585 | 6585 | ||
| 6586 | static void hsw_package_c8_gpu_idle(struct drm_i915_private *dev_priv) | 6586 | static void hsw_package_c8_gpu_idle(struct drm_i915_private *dev_priv) |
| 6587 | { | 6587 | { |
| 6588 | mutex_lock(&dev_priv->pc8.lock); | ||
| 6588 | if (!dev_priv->pc8.gpu_idle) { | 6589 | if (!dev_priv->pc8.gpu_idle) { |
| 6589 | dev_priv->pc8.gpu_idle = true; | 6590 | dev_priv->pc8.gpu_idle = true; |
| 6590 | hsw_enable_package_c8(dev_priv); | 6591 | __hsw_enable_package_c8(dev_priv); |
| 6591 | } | 6592 | } |
| 6593 | mutex_unlock(&dev_priv->pc8.lock); | ||
| 6592 | } | 6594 | } |
| 6593 | 6595 | ||
| 6594 | static void hsw_package_c8_gpu_busy(struct drm_i915_private *dev_priv) | 6596 | static void hsw_package_c8_gpu_busy(struct drm_i915_private *dev_priv) |
| 6595 | { | 6597 | { |
| 6598 | mutex_lock(&dev_priv->pc8.lock); | ||
| 6596 | if (dev_priv->pc8.gpu_idle) { | 6599 | if (dev_priv->pc8.gpu_idle) { |
| 6597 | dev_priv->pc8.gpu_idle = false; | 6600 | dev_priv->pc8.gpu_idle = false; |
| 6598 | hsw_disable_package_c8(dev_priv); | 6601 | __hsw_disable_package_c8(dev_priv); |
| 6599 | } | 6602 | } |
| 6603 | mutex_unlock(&dev_priv->pc8.lock); | ||
| 6600 | } | 6604 | } |
| 6601 | 6605 | ||
| 6602 | #define for_each_power_domain(domain, mask) \ | 6606 | #define for_each_power_domain(domain, mask) \ |
