aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_pm.c
diff options
context:
space:
mode:
authorImre Deak <imre.deak@intel.com>2013-10-16 10:25:50 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-10-21 14:57:01 -0400
commit959cbc1b8a2534bb930d237ee164893a4936a4d6 (patch)
tree287daaf6c5e88e3342b996140fe3476c70567837 /drivers/gpu/drm/i915/intel_pm.c
parentbddc76452d16cd1101ba29c0cff653cb8313b010 (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.c26
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
5634void intel_display_power_put(struct drm_device *dev, 5634void 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
5651static struct i915_power_well *hsw_pwr; 5651static 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}
5663EXPORT_SYMBOL_GPL(i915_request_power_well); 5663EXPORT_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}
5675EXPORT_SYMBOL_GPL(i915_release_power_well); 5675EXPORT_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
5728static void intel_resume_power_well(struct drm_device *dev) 5728static 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/*