[POC 12/16] drm/img-rogue: remove locking around devfreq opp functions
Ulrich Hecht
ulrich.hecht+renesas at gmail.com
Wed Nov 15 07:24:19 PST 2017
Fixes "BUG: sleeping function called from invalid context".
Signed-off-by: Ulrich Hecht <ulrich.hecht+renesas at gmail.com>
---
drivers/gpu/drm/img-rogue/1.6/pvr_dvfs_device.c | 7 -------
1 file changed, 7 deletions(-)
diff --git a/drivers/gpu/drm/img-rogue/1.6/pvr_dvfs_device.c b/drivers/gpu/drm/img-rogue/1.6/pvr_dvfs_device.c
index be1919e..cadda55 100644
--- a/drivers/gpu/drm/img-rogue/1.6/pvr_dvfs_device.c
+++ b/drivers/gpu/drm/img-rogue/1.6/pvr_dvfs_device.c
@@ -94,7 +94,6 @@ static IMG_INT32 devfreq_target(struct device *dev, long unsigned *requested_fre
IMG_UINT32 ui32Freq, ui32CurFreq, ui32Volt;
struct OPP_STRUCT *opp;
- rcu_read_lock();
opp = devfreq_recommended_opp(dev, requested_freq, flags);
if (IS_ERR(opp)) {
rcu_read_unlock();
@@ -104,7 +103,6 @@ static IMG_INT32 devfreq_target(struct device *dev, long unsigned *requested_fre
ui32Freq = OPP_GET_FREQ(opp);
ui32Volt = OPP_GET_VOLTAGE(opp);
- rcu_read_unlock();
ui32CurFreq = psRGXTimingInfo->ui32CoreClockSpeed;
@@ -230,11 +228,9 @@ static int GetOPPValues(struct device *dev,
struct dev_pm_opp *opp;
/* Start RCU read-side critical section to access device opp_list. */
- rcu_read_lock();
count = OPP_GET_OPP_COUNT(dev);
if (count < 0) {
dev_err(dev, "Could not fetch OPP count, %d\n", count);
- rcu_read_unlock();
return count;
}
@@ -245,7 +241,6 @@ static int GetOPPValues(struct device *dev,
#endif
if (!freq_table) {
- rcu_read_unlock();
return -ENOMEM;
}
@@ -287,8 +282,6 @@ static int GetOPPValues(struct device *dev,
exit:
- rcu_read_unlock();
-
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0))
if (!err)
{
--
2.7.4
More information about the Linux-mediatek
mailing list