On 11/18/2013 07:01 PM, Viresh Kumar wrote:
On 18 November 2013 16:27, Lan Tianyu tianyu.lan@intel.com wrote:
How about introducing a resume/suspend callback pointer or list(if there are several places that need to deal with cpu resume/suspend) in the struct cpu and populate it in the cpufreq_add_dev()?
The suspend/resume() of cpu_subsys needs to check the callback pointer and run it if available.
That's almost a new infrastructure then and looks more hackish :)
The resume/suspend() must be stored in the struct driver->pm? :)
Apart from that even cpufreq would be a bit hacky as we don't really need per-cpu callbacks..
This maybe depends on where we want the issue to be fixed, right? The cpufreq driver also can fix the issue if we run their cpu_driver resume/suspend callback earlier.
Another point, I just see cpuidle_resume() and cpuidle_pause() are called in the dpm_resume_noirq and dpm_suspend_noirq(). Not sure whether this can be applied to cpufreq.