Message ID | 20190808131857.21082-1-douglas.raillard@arm.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | viresh kumar |
Headers | show |
Series | [1/2] cpufreq: drivers: Enable frequency invariance in qcom-cpufreq-hw | expand |
Hi Douglas, On Thursday 08 Aug 2019 at 14:18:57 (+0100), Douglas RAILLARD wrote: > Add calls to arch_set_freq_scale() in qcom-cpufreq-hw driver to enable > frequency invariance. Is there a patch 2/2 ? > > Signed-off-by: Douglas RAILLARD <douglas.raillard@arm.com> > --- > drivers/cpufreq/qcom-cpufreq-hw.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/drivers/cpufreq/qcom-cpufreq-hw.c b/drivers/cpufreq/qcom-cpufreq-hw.c > index 4b0b50403901..3bd3b8b268d9 100644 > --- a/drivers/cpufreq/qcom-cpufreq-hw.c > +++ b/drivers/cpufreq/qcom-cpufreq-hw.c > @@ -34,9 +34,12 @@ static int qcom_cpufreq_hw_target_index(struct cpufreq_policy *policy, > unsigned int index) > { > void __iomem *perf_state_reg = policy->driver_data; > + unsigned long freq = policy->freq_table[index].frequency; > > writel_relaxed(index, perf_state_reg); > > + arch_set_freq_scale(policy->related_cpus, freq, > + policy->cpuinfo.max_freq); > return 0; > } > > @@ -63,6 +66,7 @@ static unsigned int qcom_cpufreq_hw_fast_switch(struct cpufreq_policy *policy, > { > void __iomem *perf_state_reg = policy->driver_data; > int index; > + unsigned long freq; > > index = policy->cached_resolved_idx; > if (index < 0) > @@ -70,7 +74,11 @@ static unsigned int qcom_cpufreq_hw_fast_switch(struct cpufreq_policy *policy, > > writel_relaxed(index, perf_state_reg); > > - return policy->freq_table[index].frequency; > + freq = policy->freq_table[index].frequency; > + arch_set_freq_scale(policy->related_cpus, freq, > + policy->cpuinfo.max_freq); > + > + return freq; > } > > static int qcom_cpufreq_hw_read_lut(struct device *cpu_dev, > -- > 2.22.0 Reviewed-by: Quentin Perret <quentin.perret@arm.com> Thanks, Quentin
Hi Quentin, On 8/8/19 6:32 PM, Quentin Perret wrote: > Hi Douglas, > > On Thursday 08 Aug 2019 at 14:18:57 (+0100), Douglas RAILLARD wrote: >> Add calls to arch_set_freq_scale() in qcom-cpufreq-hw driver to enable >> frequency invariance. > > Is there a patch 2/2 ? That slipped through when format-patch-ing unrelated commits, there is no 2nd patch. >> >> Signed-off-by: Douglas RAILLARD <douglas.raillard@arm.com> >> --- >> drivers/cpufreq/qcom-cpufreq-hw.c | 10 +++++++++- >> 1 file changed, 9 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/cpufreq/qcom-cpufreq-hw.c b/drivers/cpufreq/qcom-cpufreq-hw.c >> index 4b0b50403901..3bd3b8b268d9 100644 >> --- a/drivers/cpufreq/qcom-cpufreq-hw.c >> +++ b/drivers/cpufreq/qcom-cpufreq-hw.c >> @@ -34,9 +34,12 @@ static int qcom_cpufreq_hw_target_index(struct cpufreq_policy *policy, >> unsigned int index) >> { >> void __iomem *perf_state_reg = policy->driver_data; >> + unsigned long freq = policy->freq_table[index].frequency; >> >> writel_relaxed(index, perf_state_reg); >> >> + arch_set_freq_scale(policy->related_cpus, freq, >> + policy->cpuinfo.max_freq); >> return 0; >> } >> >> @@ -63,6 +66,7 @@ static unsigned int qcom_cpufreq_hw_fast_switch(struct cpufreq_policy *policy, >> { >> void __iomem *perf_state_reg = policy->driver_data; >> int index; >> + unsigned long freq; >> >> index = policy->cached_resolved_idx; >> if (index < 0) >> @@ -70,7 +74,11 @@ static unsigned int qcom_cpufreq_hw_fast_switch(struct cpufreq_policy *policy, >> >> writel_relaxed(index, perf_state_reg); >> >> - return policy->freq_table[index].frequency; >> + freq = policy->freq_table[index].frequency; >> + arch_set_freq_scale(policy->related_cpus, freq, >> + policy->cpuinfo.max_freq); >> + >> + return freq; >> } >> >> static int qcom_cpufreq_hw_read_lut(struct device *cpu_dev, >> -- >> 2.22.0 > > Reviewed-by: Quentin Perret <quentin.perret@arm.com> > > Thanks, > Quentin > Thanks, Douglas
On Friday 09 Aug 2019 at 11:16:12 (+0100), Douglas Raillard wrote: > Hi Quentin, > > On 8/8/19 6:32 PM, Quentin Perret wrote: > > Hi Douglas, > > > > On Thursday 08 Aug 2019 at 14:18:57 (+0100), Douglas RAILLARD wrote: > > > Add calls to arch_set_freq_scale() in qcom-cpufreq-hw driver to enable > > > frequency invariance. > > > > Is there a patch 2/2 ? > > That slipped through when format-patch-ing unrelated commits, there is no 2nd patch. > > > > > > > Signed-off-by: Douglas RAILLARD <douglas.raillard@arm.com> > > > --- > > > drivers/cpufreq/qcom-cpufreq-hw.c | 10 +++++++++- > > > 1 file changed, 9 insertions(+), 1 deletion(-) > > > > > > diff --git a/drivers/cpufreq/qcom-cpufreq-hw.c b/drivers/cpufreq/qcom-cpufreq-hw.c > > > index 4b0b50403901..3bd3b8b268d9 100644 > > > --- a/drivers/cpufreq/qcom-cpufreq-hw.c > > > +++ b/drivers/cpufreq/qcom-cpufreq-hw.c > > > @@ -34,9 +34,12 @@ static int qcom_cpufreq_hw_target_index(struct cpufreq_policy *policy, > > > unsigned int index) > > > { > > > void __iomem *perf_state_reg = policy->driver_data; > > > + unsigned long freq = policy->freq_table[index].frequency; > > > writel_relaxed(index, perf_state_reg); > > > + arch_set_freq_scale(policy->related_cpus, freq, > > > + policy->cpuinfo.max_freq); > > > return 0; > > > } > > > @@ -63,6 +66,7 @@ static unsigned int qcom_cpufreq_hw_fast_switch(struct cpufreq_policy *policy, > > > { > > > void __iomem *perf_state_reg = policy->driver_data; > > > int index; > > > + unsigned long freq; > > > index = policy->cached_resolved_idx; > > > if (index < 0) > > > @@ -70,7 +74,11 @@ static unsigned int qcom_cpufreq_hw_fast_switch(struct cpufreq_policy *policy, > > > writel_relaxed(index, perf_state_reg); > > > - return policy->freq_table[index].frequency; > > > + freq = policy->freq_table[index].frequency; > > > + arch_set_freq_scale(policy->related_cpus, freq, > > > + policy->cpuinfo.max_freq); > > > + > > > + return freq; > > > } > > > static int qcom_cpufreq_hw_read_lut(struct device *cpu_dev, > > > -- > > > 2.22.0 > > > > Reviewed-by: Quentin Perret <quentin.perret@arm.com> > > > > Thanks, > > Quentin > > > > Thanks, > Douglas Actually, one nit, the $subject should probably be formatted as: cpufreq: qcom-hw: invoke frequency-invariance setter function for consistency with other patches in this area. Thanks, Quentin
On 09-08-19, 11:37, Quentin Perret wrote: > Actually, one nit, the $subject should probably be formatted as: > > cpufreq: qcom-hw: invoke frequency-invariance setter function > > for consistency with other patches in this area. Applied with these changes. Thanks.
diff --git a/drivers/cpufreq/qcom-cpufreq-hw.c b/drivers/cpufreq/qcom-cpufreq-hw.c index 4b0b50403901..3bd3b8b268d9 100644 --- a/drivers/cpufreq/qcom-cpufreq-hw.c +++ b/drivers/cpufreq/qcom-cpufreq-hw.c @@ -34,9 +34,12 @@ static int qcom_cpufreq_hw_target_index(struct cpufreq_policy *policy, unsigned int index) { void __iomem *perf_state_reg = policy->driver_data; + unsigned long freq = policy->freq_table[index].frequency; writel_relaxed(index, perf_state_reg); + arch_set_freq_scale(policy->related_cpus, freq, + policy->cpuinfo.max_freq); return 0; } @@ -63,6 +66,7 @@ static unsigned int qcom_cpufreq_hw_fast_switch(struct cpufreq_policy *policy, { void __iomem *perf_state_reg = policy->driver_data; int index; + unsigned long freq; index = policy->cached_resolved_idx; if (index < 0) @@ -70,7 +74,11 @@ static unsigned int qcom_cpufreq_hw_fast_switch(struct cpufreq_policy *policy, writel_relaxed(index, perf_state_reg); - return policy->freq_table[index].frequency; + freq = policy->freq_table[index].frequency; + arch_set_freq_scale(policy->related_cpus, freq, + policy->cpuinfo.max_freq); + + return freq; } static int qcom_cpufreq_hw_read_lut(struct device *cpu_dev,
Add calls to arch_set_freq_scale() in qcom-cpufreq-hw driver to enable frequency invariance. Signed-off-by: Douglas RAILLARD <douglas.raillard@arm.com> --- drivers/cpufreq/qcom-cpufreq-hw.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)