|
@@ -80,7 +80,6 @@ struct rk3399_dmcfreq {
|
|
|
struct regulator *vdd_center;
|
|
|
unsigned long rate, target_rate;
|
|
|
unsigned long volt, target_volt;
|
|
|
- struct dev_pm_opp *curr_opp;
|
|
|
};
|
|
|
|
|
|
static int rk3399_dmcfreq_target(struct device *dev, unsigned long *freq,
|
|
@@ -102,9 +101,6 @@ static int rk3399_dmcfreq_target(struct device *dev, unsigned long *freq,
|
|
|
target_rate = dev_pm_opp_get_freq(opp);
|
|
|
target_volt = dev_pm_opp_get_voltage(opp);
|
|
|
|
|
|
- dmcfreq->rate = dev_pm_opp_get_freq(dmcfreq->curr_opp);
|
|
|
- dmcfreq->volt = dev_pm_opp_get_voltage(dmcfreq->curr_opp);
|
|
|
-
|
|
|
rcu_read_unlock();
|
|
|
|
|
|
if (dmcfreq->rate == target_rate)
|
|
@@ -165,7 +161,9 @@ static int rk3399_dmcfreq_target(struct device *dev, unsigned long *freq,
|
|
|
if (err)
|
|
|
dev_err(dev, "Cannot to set vol %lu uV\n", target_volt);
|
|
|
|
|
|
- dmcfreq->curr_opp = opp;
|
|
|
+ dmcfreq->rate = target_rate;
|
|
|
+ dmcfreq->volt = target_volt;
|
|
|
+
|
|
|
out:
|
|
|
mutex_unlock(&dmcfreq->lock);
|
|
|
return err;
|
|
@@ -430,8 +428,9 @@ static int rk3399_dmcfreq_probe(struct platform_device *pdev)
|
|
|
rcu_read_unlock();
|
|
|
return PTR_ERR(opp);
|
|
|
}
|
|
|
+ data->rate = dev_pm_opp_get_freq(opp);
|
|
|
+ data->volt = dev_pm_opp_get_voltage(opp);
|
|
|
rcu_read_unlock();
|
|
|
- data->curr_opp = opp;
|
|
|
|
|
|
rk3399_devfreq_dmc_profile.initial_freq = data->rate;
|
|
|
|