From 135b1e5b59387b1bc09163a69522c5e24c65d15c Mon Sep 17 00:00:00 2001 From: Russell King Date: Tue, 15 May 2007 11:16:10 +0100 Subject: [PATCH] --- yaml --- r: 59256 b: refs/heads/master c: e176bb05fec4c00450302a75e81f8da3dc9e309e h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/arm/mach-pxa/pm.c | 26 -------------------------- trunk/arch/arm/mach-pxa/pxa25x.c | 20 +++++++++++++++++++- trunk/arch/arm/mach-pxa/pxa27x.c | 17 +++++++++++++++-- 4 files changed, 35 insertions(+), 30 deletions(-) diff --git a/[refs] b/[refs] index f5ba9436e52d..3d3c1e4c8959 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b23170c01f6e4ea043df7cd9486c2488e01f3d60 +refs/heads/master: e176bb05fec4c00450302a75e81f8da3dc9e309e diff --git a/trunk/arch/arm/mach-pxa/pm.c b/trunk/arch/arm/mach-pxa/pm.c index 6d86203aef7b..d439ffa1b071 100644 --- a/trunk/arch/arm/mach-pxa/pm.c +++ b/trunk/arch/arm/mach-pxa/pm.c @@ -200,29 +200,3 @@ unsigned long sleep_phys_sp(void *sp) { return virt_to_phys(sp); } - -/* - * Called after processes are frozen, but before we shut down devices. - */ -int pxa_pm_prepare(suspend_state_t state) -{ - extern int pxa_cpu_pm_prepare(suspend_state_t state); - - return pxa_cpu_pm_prepare(state); -} - -EXPORT_SYMBOL_GPL(pxa_pm_prepare); - -static struct pm_ops pxa_pm_ops = { - .prepare = pxa_pm_prepare, - .enter = pxa_pm_enter, - .valid = pm_valid_only_mem, -}; - -static int __init pxa_pm_init(void) -{ - pm_set_ops(&pxa_pm_ops); - return 0; -} - -device_initcall(pxa_pm_init); diff --git a/trunk/arch/arm/mach-pxa/pxa25x.c b/trunk/arch/arm/mach-pxa/pxa25x.c index c1f21739bf71..8560439ba0b9 100644 --- a/trunk/arch/arm/mach-pxa/pxa25x.c +++ b/trunk/arch/arm/mach-pxa/pxa25x.c @@ -23,6 +23,7 @@ #include #include +#include #include "generic.h" @@ -105,7 +106,7 @@ EXPORT_SYMBOL(get_lcdclk_frequency_10khz); #ifdef CONFIG_PM -int pxa_cpu_pm_prepare(suspend_state_t state) +int pxa_pm_prepare(suspend_state_t state) { switch (state) { case PM_SUSPEND_MEM: @@ -133,4 +134,21 @@ void pxa_cpu_pm_enter(suspend_state_t state) } } +static struct pm_ops pxa25x_pm_ops = { + .prepare = pxa_pm_prepare, + .enter = pxa_pm_enter, + .valid = pm_valid_only_mem, +}; #endif + +static int __init pxa25x_init(void) +{ + if (cpu_is_pxa21x() || cpu_is_pxa25x()) { +#ifdef CONFIG_PM + pm_set_ops(&pxa25x_pm_ops); +#endif + } + return 0; +} + +subsys_initcall(pxa25x_init); diff --git a/trunk/arch/arm/mach-pxa/pxa27x.c b/trunk/arch/arm/mach-pxa/pxa27x.c index 1939acc3f9f7..be6ca7d3afa2 100644 --- a/trunk/arch/arm/mach-pxa/pxa27x.c +++ b/trunk/arch/arm/mach-pxa/pxa27x.c @@ -21,6 +21,7 @@ #include #include #include +#include #include "generic.h" @@ -122,7 +123,7 @@ EXPORT_SYMBOL(get_lcdclk_frequency_10khz); #ifdef CONFIG_PM -int pxa_cpu_pm_prepare(suspend_state_t state) +int pxa_pm_prepare(suspend_state_t state) { switch (state) { case PM_SUSPEND_MEM: @@ -162,6 +163,11 @@ void pxa_cpu_pm_enter(suspend_state_t state) } } +static struct pm_ops pxa27x_pm_ops = { + .prepare = pxa_pm_prepare, + .enter = pxa_pm_enter, + .valid = pm_valid_only_mem, +}; #endif /* @@ -205,7 +211,14 @@ static struct platform_device *devices[] __initdata = { static int __init pxa27x_init(void) { - return platform_add_devices(devices, ARRAY_SIZE(devices)); + int ret = 0; + if (cpu_is_pxa27x()) { +#ifdef CONFIG_PM + pm_set_ops(&pxa27x_pm_ops); +#endif + ret = platform_add_devices(devices, ARRAY_SIZE(devices)); + } + return ret; } subsys_initcall(pxa27x_init);