diff options
author | Imre Deak <imre.deak@intel.com> | 2013-10-16 10:25:50 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-10-21 14:57:01 -0400 |
commit | 959cbc1b8a2534bb930d237ee164893a4936a4d6 (patch) | |
tree | 287daaf6c5e88e3342b996140fe3476c70567837 /drivers/gpu/drm/i915/intel_pm.c | |
parent | bddc76452d16cd1101ba29c0cff653cb8313b010 (diff) |
drm/i915: change power_well->lock to be mutex
There is no hard need for this to be a spin lock, as we don't take these
locks in irq context from anywhere. An upcoming patch will add calls to
punit read/write functions from within regions protected by this lock
and those functions need a mutex in turn. As a solution for that convert
the spin lock to be a mutex.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_pm.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_pm.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index 97abb33e8c92..f3136659877a 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c | |||
@@ -5626,9 +5626,9 @@ void intel_display_power_get(struct drm_device *dev, | |||
5626 | if (is_always_on_power_domain(dev, domain)) | 5626 | if (is_always_on_power_domain(dev, domain)) |
5627 | return; | 5627 | return; |
5628 | 5628 | ||
5629 | spin_lock_irq(&power_well->lock); | 5629 | mutex_lock(&power_well->lock); |
5630 | __intel_power_well_get(power_well); | 5630 | __intel_power_well_get(power_well); |
5631 | spin_unlock_irq(&power_well->lock); | 5631 | mutex_unlock(&power_well->lock); |
5632 | } | 5632 | } |
5633 | 5633 | ||
5634 | void intel_display_power_put(struct drm_device *dev, | 5634 | void intel_display_power_put(struct drm_device *dev, |
@@ -5643,9 +5643,9 @@ void intel_display_power_put(struct drm_device *dev, | |||
5643 | if (is_always_on_power_domain(dev, domain)) | 5643 | if (is_always_on_power_domain(dev, domain)) |
5644 | return; | 5644 | return; |
5645 | 5645 | ||
5646 | spin_lock_irq(&power_well->lock); | 5646 | mutex_lock(&power_well->lock); |
5647 | __intel_power_well_put(power_well); | 5647 | __intel_power_well_put(power_well); |
5648 | spin_unlock_irq(&power_well->lock); | 5648 | mutex_unlock(&power_well->lock); |
5649 | } | 5649 | } |
5650 | 5650 | ||
5651 | static struct i915_power_well *hsw_pwr; | 5651 | static struct i915_power_well *hsw_pwr; |
@@ -5656,9 +5656,9 @@ void i915_request_power_well(void) | |||
5656 | if (WARN_ON(!hsw_pwr)) | 5656 | if (WARN_ON(!hsw_pwr)) |
5657 | return; | 5657 | return; |
5658 | 5658 | ||
5659 | spin_lock_irq(&hsw_pwr->lock); | 5659 | mutex_lock(&hsw_pwr->lock); |
5660 | __intel_power_well_get(hsw_pwr); | 5660 | __intel_power_well_get(hsw_pwr); |
5661 | spin_unlock_irq(&hsw_pwr->lock); | 5661 | mutex_unlock(&hsw_pwr->lock); |
5662 | } | 5662 | } |
5663 | EXPORT_SYMBOL_GPL(i915_request_power_well); | 5663 | EXPORT_SYMBOL_GPL(i915_request_power_well); |
5664 | 5664 | ||
@@ -5668,9 +5668,9 @@ void i915_release_power_well(void) | |||
5668 | if (WARN_ON(!hsw_pwr)) | 5668 | if (WARN_ON(!hsw_pwr)) |
5669 | return; | 5669 | return; |
5670 | 5670 | ||
5671 | spin_lock_irq(&hsw_pwr->lock); | 5671 | mutex_lock(&hsw_pwr->lock); |
5672 | __intel_power_well_put(hsw_pwr); | 5672 | __intel_power_well_put(hsw_pwr); |
5673 | spin_unlock_irq(&hsw_pwr->lock); | 5673 | mutex_unlock(&hsw_pwr->lock); |
5674 | } | 5674 | } |
5675 | EXPORT_SYMBOL_GPL(i915_release_power_well); | 5675 | EXPORT_SYMBOL_GPL(i915_release_power_well); |
5676 | 5676 | ||
@@ -5681,7 +5681,7 @@ int i915_init_power_well(struct drm_device *dev) | |||
5681 | hsw_pwr = &dev_priv->power_well; | 5681 | hsw_pwr = &dev_priv->power_well; |
5682 | 5682 | ||
5683 | hsw_pwr->device = dev; | 5683 | hsw_pwr->device = dev; |
5684 | spin_lock_init(&hsw_pwr->lock); | 5684 | mutex_init(&hsw_pwr->lock); |
5685 | hsw_pwr->count = 0; | 5685 | hsw_pwr->count = 0; |
5686 | 5686 | ||
5687 | return 0; | 5687 | return 0; |
@@ -5703,7 +5703,7 @@ void intel_set_power_well(struct drm_device *dev, bool enable) | |||
5703 | if (!i915_disable_power_well && !enable) | 5703 | if (!i915_disable_power_well && !enable) |
5704 | return; | 5704 | return; |
5705 | 5705 | ||
5706 | spin_lock_irq(&power_well->lock); | 5706 | mutex_lock(&power_well->lock); |
5707 | 5707 | ||
5708 | /* | 5708 | /* |
5709 | * This function will only ever contribute one | 5709 | * This function will only ever contribute one |
@@ -5722,7 +5722,7 @@ void intel_set_power_well(struct drm_device *dev, bool enable) | |||
5722 | __intel_power_well_put(power_well); | 5722 | __intel_power_well_put(power_well); |
5723 | 5723 | ||
5724 | out: | 5724 | out: |
5725 | spin_unlock_irq(&power_well->lock); | 5725 | mutex_unlock(&power_well->lock); |
5726 | } | 5726 | } |
5727 | 5727 | ||
5728 | static void intel_resume_power_well(struct drm_device *dev) | 5728 | static void intel_resume_power_well(struct drm_device *dev) |
@@ -5733,9 +5733,9 @@ static void intel_resume_power_well(struct drm_device *dev) | |||
5733 | if (!HAS_POWER_WELL(dev)) | 5733 | if (!HAS_POWER_WELL(dev)) |
5734 | return; | 5734 | return; |
5735 | 5735 | ||
5736 | spin_lock_irq(&power_well->lock); | 5736 | mutex_lock(&power_well->lock); |
5737 | __intel_set_power_well(dev, power_well->count > 0); | 5737 | __intel_set_power_well(dev, power_well->count > 0); |
5738 | spin_unlock_irq(&power_well->lock); | 5738 | mutex_unlock(&power_well->lock); |
5739 | } | 5739 | } |
5740 | 5740 | ||
5741 | /* | 5741 | /* |