mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user