• Viresh Kumar's avatar
    cpufreq: Allow light-weight tear down and bring up of CPUs · 91a12e91
    Viresh Kumar authored
    The cpufreq core doesn't remove the cpufreq policy anymore on CPU
    offline operation, rather that happens when the CPU device gets
    unregistered from the kernel. This allows faster recovery when the CPU
    comes back online. This is also very useful during system wide
    suspend/resume where we offline all non-boot CPUs during suspend and
    then bring them back on resume.
    
    This commit takes the same idea a step ahead to allow drivers to do
    light weight tear-down and bring-up during CPU offline and online
    operations.
    
    A new set of callbacks is introduced, online/offline(). online() gets
    called when the first CPU of an inactive policy is brought up and
    offline() gets called when all the CPUs of a policy are offlined.
    
    The existing init/exit() callback get called on policy
    creation/destruction. They also get called instead of online/offline()
    callbacks if the online/offline() callbacks aren't provided.
    
    This also moves around some code to get executed only for the new-policy
    case going forward.
    Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    91a12e91
cpufreq.c 67.4 KB