Mali: midgard_for_linux: Update OPP users to put reference

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

Change-Id: Id38e4632f951242bcbebef3fba066c118d2203e3
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
This commit is contained in:
Tao Huang
2019-10-11 18:04:47 +08:00
parent a4513fc9c7
commit d525a9ab3d

View File

@@ -69,15 +69,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);
/*
* Only update if there is a change of frequency
@@ -179,28 +177,24 @@ static int kbase_devfreq_init_freq_table(struct kbase_device *kbdev,
unsigned long freq = 0;
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; i < count; i++, freq++) {
opp = dev_pm_opp_find_freq_ceil(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",
@@ -229,6 +223,7 @@ int kbase_devfreq_init(struct kbase_device *kbdev)
{
struct device_node *np = kbdev->dev->of_node;
struct devfreq_dev_profile *dp;
struct dev_pm_opp *opp;
unsigned long opp_rate;
int err;
@@ -275,9 +270,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;