MALI: bifrost_for_linux: Update OPP users to put reference

According to
commit 8a31d9d942 ("PM / OPP: Update OPP users to put reference")

Change-Id: I8bc69ec067623e05a610b816990e128e853d01a6
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
This commit is contained in:
Tao Huang
2019-10-11 18:01:15 +08:00
parent 4b72de839f
commit 27f7384f3c

View File

@@ -96,15 +96,13 @@ kbase_devfreq_target(struct device *dev, unsigned long *target_freq, u32 flags)
freq = *target_freq;
rcu_read_lock();
opp = devfreq_recommended_opp(dev, &freq, flags);
if (IS_ERR(opp)) {
rcu_read_unlock();
dev_err(dev, "Failed to get opp (%ld)\n", PTR_ERR(opp));
return PTR_ERR(opp);
}
voltage = dev_pm_opp_get_voltage(opp);
rcu_read_unlock();
dev_pm_opp_put(opp);
nominal_freq = freq;
/*
@@ -205,28 +203,24 @@ static int kbase_devfreq_init_freq_table(struct kbase_device *kbdev,
unsigned long freq;
struct dev_pm_opp *opp;
rcu_read_lock();
count = dev_pm_opp_get_opp_count(kbdev->dev);
if (count < 0) {
rcu_read_unlock();
return count;
}
rcu_read_unlock();
dp->freq_table = kmalloc_array(count, sizeof(dp->freq_table[0]),
GFP_KERNEL);
if (!dp->freq_table)
return -ENOMEM;
rcu_read_lock();
for (i = 0, freq = ULONG_MAX; i < count; i++, freq--) {
opp = dev_pm_opp_find_freq_floor(kbdev->dev, &freq);
if (IS_ERR(opp))
break;
dev_pm_opp_put(opp);
dp->freq_table[i] = freq;
}
rcu_read_unlock();
if (count != i)
dev_warn(kbdev->dev, "Unable to enumerate all OPPs (%d!=%d\n",
@@ -374,9 +368,9 @@ int kbase_devfreq_init(struct kbase_device *kbdev)
}
opp_rate = kbdev->current_freq;
rcu_read_lock();
devfreq_recommended_opp(kbdev->dev, &opp_rate, 0);
rcu_read_unlock();
opp = devfreq_recommended_opp(kbdev->dev, &opp_rate, 0);
if (!IS_ERR(opp))
dev_pm_opp_put(opp);
kbdev->devfreq->last_status.current_frequency = opp_rate;
mali_mdevp.data = kbdev->devfreq;