lkml.org 
[lkml]   [2013]   [Nov]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH V3 0/6] cpufreq: suspend early/resume late
On 2013年11月25日 22:11, Viresh Kumar wrote:
> This patchset adds cpufreq callbacks to dpm_{suspend|resume}() for handling
> suspend/resume of cpufreq governors and core. This is required for early suspend
> and late resume of governors and cpufreq core.
>
> There are multiple problems that are fixed by this patch:
> - Nishanth Menon (TI) found an interesting problem on his platform, OMAP. His board
> wasn't working well with suspend/resume as calls for removing non-boot CPUs
> was turning out into a call to drivers ->target() which then tries to play
> with regulators. But regulators and their I2C bus were already suspended and
> this resulted in a failure. Many platforms have such problems, samsung, tegra,
> etc.. They solved it with driver specific PM notifiers where they used to
> disable their driver's ->target() routine. Most of these are updated in this
> patchset to use new infrastructure.
>
> - Lan Tianyu (Intel) & Jinhyuk Choi (Broadcom) found another issue where
> tunables configuration for clusters/sockets with non-boot CPUs was getting
> lost after suspend/resume, as we were notifying governors with
> CPUFREQ_GOV_POLICY_EXIT on removal of the last cpu for that policy and so
> deallocating memory for tunables. This is also fixed with this patch as don't
> allow any operation on Governors during suspend/resume now.
>
>
> So to solve these issues we introduce early suspend and late resume callbacks
> which would remove need of cpufreq drivers to implement PM notifiers to disable
> transition after suspend and before resume.
>
> @Nishanth: Can you please test V2 as well and confirm that suspend_noirq()
> doesn't work for you. I am sure it will not, but would be better if you confirm
> that.
>
> Viresh Kumar (6):
> cpufreq: suspend governors on system suspend/hibernate
> cpufreq: call driver's suspend/resume for each policy
> cpufreq: Implement cpufreq_generic_suspend()
> cpufreq: exynos: Use cpufreq_generic_suspend()
> cpufreq: s5pv210: Use cpufreq_generic_suspend()
> cpufreq: Tegra: Use cpufreq_generic_suspend()
>

Patch 1-2,
Tested-by: Lan Tianyu <tianyu.lan@intel.com>

> drivers/base/power/main.c | 5 ++
> drivers/cpufreq/cpufreq.c | 133 +++++++++++++++++++++-----------------
> drivers/cpufreq/exynos-cpufreq.c | 97 ++-------------------------
> drivers/cpufreq/s5pv210-cpufreq.c | 49 +-------------
> drivers/cpufreq/tegra-cpufreq.c | 54 ++--------------
> include/linux/cpufreq.h | 6 ++
> 6 files changed, 99 insertions(+), 245 deletions(-)
>


--
Best regards
Tianyu Lan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2013-11-26 08:41    [W:0.168 / U:0.080 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site