ipq806x: opp/core: fix broken patch Handle opp voltage adjust

The opp_notifier introduced with patch 0054-Handle-OPP-voltage adjust
for some reason missed the actual registration in the opp struct,
resulting in never being registred.
This was present in kernel 4.9 patchset but dropped in the transition
 to 4.14. Reintroduce this and fix patch 0055 about L2 cache scaling.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
This commit is contained in:
Ansuel Smith 2019-12-25 19:42:08 +01:00 committed by Álvaro Fernández Rojas
parent 41c19dd542
commit 5ba02d10ed
2 changed files with 4 additions and 11 deletions

View File

@ -91,19 +91,12 @@ Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
static int resources_available(void)
{
struct device *cpu_dev;
@@ -161,6 +200,7 @@ static int cpufreq_init(struct cpufreq_p
bool fallback = false;
const char *name;
int ret;
+ struct srcu_notifier_head *opp_srcu_head;
cpu_dev = get_cpu_device(policy->cpu);
if (!cpu_dev) {
@@ -251,10 +291,13 @@ static int cpufreq_init(struct cpufreq_p
@@ -251,10 +291,14 @@ static int cpufreq_init(struct cpufreq_p
__func__, ret);
}
+ mutex_init(&priv->lock);
+ priv->opp_nb.notifier_call = opp_notifier;
+ dev_pm_opp_register_notifier(cpu_dev, &priv->opp_nb);
+
ret = dev_pm_opp_init_cpufreq_table(cpu_dev, &freq_table);

View File

@ -53,9 +53,9 @@ Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
arch_set_freq_scale(policy->related_cpus, freq,
policy->cpuinfo.max_freq);
@@ -201,6 +230,8 @@ static int cpufreq_init(struct cpufreq_p
bool fallback = false;
const char *name;
int ret;
struct srcu_notifier_head *opp_srcu_head;
+ struct device_node *l2_np;
+ struct clk *l2_clk = NULL;
@ -82,7 +82,7 @@ Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
struct clk *clk;
+ struct clk *l2_clk; /* L2 clock */
+ unsigned int l2_rate[3]; /* L2 bus clock rate thresholds */
+ unsigned int l2_rate[3]; /* L2 bus clock rate thresholds */
struct cpufreq_cpuinfo cpuinfo;/* see above */
unsigned int min; /* in kHz */