> -----邮件原件----- > 发件人: Viresh Kumar [mailto:viresh.ku...@linaro.org] > 发送时间: Monday, April 18, 2016 6:33 PM > 收件人: Hongtao Jia <hongtao....@nxp.com> > 抄送: linux...@vger.kernel.org; linuxppc-dev@lists.ozlabs.org; Scott Wood > <scott.w...@nxp.com>; Yuantian Tang <yuantian.t...@nxp.com> > 主题: Re: [PATCH 1/2] cpufreq: qoriq: Fix cooling device registration issue > during suspend > > On 18-04-16, 15:59, Jia Hongtao wrote: > > Cooling device is registered by ready callback. It's also invoked > > while system resuming from sleep (Enabling non-boot cpus). Thus > > cooling device may be multiple registered. Stop_cpu callback is > > invoked during suspend (Disabling non-boot cpus). So matchable > > unregistration is added to fix this issue. > > > > Signed-off-by: Jia Hongtao <hongtao....@nxp.com> > > --- > > drivers/cpufreq/qoriq-cpufreq.c | 8 ++++++++ > > 1 file changed, 8 insertions(+) > > > > diff --git a/drivers/cpufreq/qoriq-cpufreq.c > > b/drivers/cpufreq/qoriq-cpufreq.c index b23e525..1c2fdc1 100644 > > --- a/drivers/cpufreq/qoriq-cpufreq.c > > +++ b/drivers/cpufreq/qoriq-cpufreq.c > > @@ -305,6 +305,7 @@ static int __exit qoriq_cpufreq_cpu_exit(struct > > cpufreq_policy *policy) { > > struct cpu_data *data = policy->driver_data; > > > > + cpufreq_cooling_unregister(data->cdev); > > kfree(data->pclk); > > kfree(data->table); > > kfree(data); > > @@ -323,6 +324,12 @@ static int qoriq_cpufreq_target(struct cpufreq_policy > *policy, > > return clk_set_parent(policy->clk, parent); } > > > > +static void qoriq_cpufreq_stop_cpu(struct cpufreq_policy *policy) { > > + struct cpu_data *cpud = policy->driver_data; > > + > > + cpufreq_cooling_unregister(cpud->cdev); > > +} > > > > static void qoriq_cpufreq_ready(struct cpufreq_policy *policy) { @@ > > -352,6 +359,7 @@ static struct cpufreq_driver qoriq_cpufreq_driver = { > > .verify = cpufreq_generic_frequency_table_verify, > > .target_index = qoriq_cpufreq_target, > > .get = cpufreq_generic_get, > > + .stop_cpu = qoriq_cpufreq_stop_cpu, > > .ready = qoriq_cpufreq_ready, > > .attr = cpufreq_generic_attr, > > }; > > You don't need to do it from stop_cpu(), please use > qoriq_cpufreq_cpu_exit() for this.
Thanks. The new patch will be submitted soon. -Hongtao. > > -- > viresh _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev