Skip to content

Commit

Permalink
ARM: pm: hide 1st and 2nd arguments to cpu_suspend from platform code
Browse files Browse the repository at this point in the history
The first and second arguments shouldn't concern platform code, so
hide them from each platforms caller.

Tested-by: Kevin Hilman <khilman@ti.com>
Acked-by: Jean Pihet <j-pihet@ti.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
Russell King committed Jun 24, 2011
1 parent 14c79bb commit 2c74a0c
Show file tree
Hide file tree
Showing 11 changed files with 37 additions and 15 deletions.
19 changes: 19 additions & 0 deletions arch/arm/include/asm/suspend.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#ifndef __ASM_ARM_SUSPEND_H
#define __ASM_ARM_SUSPEND_H

#include <asm/memory.h>

extern void cpu_resume(void);

/*
* Hide the first two arguments to __cpu_suspend - these are an implementation
* detail which platform code shouldn't have to know about.
*/
static inline void cpu_suspend(unsigned long arg, void (*fn)(unsigned long))
{
extern void __cpu_suspend(int, long, unsigned long,
void (*)(unsigned long));
__cpu_suspend(0, PHYS_OFFSET - PAGE_OFFSET, arg, fn);
}

#endif
2 changes: 0 additions & 2 deletions arch/arm/include/asm/system.h
Original file line number Diff line number Diff line change
Expand Up @@ -106,8 +106,6 @@ extern void __show_regs(struct pt_regs *);

extern int cpu_architecture(void);
extern void cpu_init(void);
extern void cpu_suspend(int, long, unsigned long, void (*)(unsigned long));
extern void cpu_resume(void);

void arm_machine_restart(char mode, const char *cmd);
extern void (*arm_pm_restart)(char str, const char *cmd);
Expand Down
4 changes: 2 additions & 2 deletions arch/arm/kernel/sleep.S
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* r3 = suspend function
* Note: does not return until system resumes
*/
ENTRY(cpu_suspend)
ENTRY(__cpu_suspend)
stmfd sp!, {r4 - r11, lr}
#ifdef MULTI_CPU
ldr r10, =processor
Expand Down Expand Up @@ -56,7 +56,7 @@ ENTRY(cpu_suspend)
bl __cpuc_flush_kern_all
#endif
ldmfd sp!, {r0, pc} @ call suspend fn
ENDPROC(cpu_suspend)
ENDPROC(__cpu_suspend)
.ltorg

/*
Expand Down
5 changes: 3 additions & 2 deletions arch/arm/mach-omap2/pm34xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
#include <linux/console.h>
#include <trace/events/power.h>

#include <asm/suspend.h>

#include <plat/sram.h>
#include "clockdomain.h"
#include "powerdomain.h"
Expand Down Expand Up @@ -411,8 +413,7 @@ void omap_sram_idle(void)
* from there before resuming.
*/
if (save_state == 1 || save_state == 3)
cpu_suspend(0, PHYS_OFFSET - PAGE_OFFSET, save_state,
omap34xx_do_sram_idle);
cpu_suspend(save_state, omap34xx_do_sram_idle);
else
omap34xx_do_sram_idle(save_state);

Expand Down
1 change: 1 addition & 0 deletions arch/arm/mach-pxa/palmz72.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
#include <linux/i2c-gpio.h>

#include <asm/mach-types.h>
#include <asm/suspend.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>

Expand Down
4 changes: 2 additions & 2 deletions arch/arm/mach-pxa/pxa25x.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include <linux/irq.h>

#include <asm/mach/map.h>
#include <asm/suspend.h>
#include <mach/hardware.h>
#include <mach/irqs.h>
#include <mach/gpio.h>
Expand Down Expand Up @@ -244,8 +245,7 @@ static void pxa25x_cpu_pm_enter(suspend_state_t state)

switch (state) {
case PM_SUSPEND_MEM:
cpu_suspend(0, PHYS_OFFSET - PAGE_OFFSET, PWRMODE_SLEEP,
pxa25x_finish_suspend);
cpu_suspend(PWRMODE_SLEEP, pxa25x_finish_suspend);
break;
}
}
Expand Down
4 changes: 2 additions & 2 deletions arch/arm/mach-pxa/pxa27x.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include <asm/mach/map.h>
#include <mach/hardware.h>
#include <asm/irq.h>
#include <asm/suspend.h>
#include <mach/irqs.h>
#include <mach/gpio.h>
#include <mach/pxa27x.h>
Expand Down Expand Up @@ -304,8 +305,7 @@ void pxa27x_cpu_pm_enter(suspend_state_t state)
pxa_cpu_standby();
break;
case PM_SUSPEND_MEM:
cpu_suspend(0, PHYS_OFFSET - PAGE_OFFSET, pwrmode,
pxa27x_finish_suspend);
cpu_suspend(pwrmode, pxa27x_finish_suspend);
#ifndef CONFIG_IWMMXT
asm volatile("mar acc0, %Q0, %R0" : "=r" (acc0));
#endif
Expand Down
3 changes: 2 additions & 1 deletion arch/arm/mach-pxa/pxa3xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include <linux/i2c/pxa-i2c.h>

#include <asm/mach/map.h>
#include <asm/suspend.h>
#include <mach/hardware.h>
#include <mach/gpio.h>
#include <mach/pxa3xx-regs.h>
Expand Down Expand Up @@ -167,7 +168,7 @@ static void pxa3xx_cpu_pm_suspend(void)
/* overwrite with the resume address */
*p = virt_to_phys(cpu_resume);

cpu_suspend(0, PHYS_OFFSET - PAGE_OFFSET, 0, pxa3xx_finish_suspend);
cpu_suspend(0, pxa3xx_finish_suspend);

*p = saved_data;

Expand Down
4 changes: 2 additions & 2 deletions arch/arm/mach-pxa/zeus.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
#include <linux/can/platform/mcp251x.h>

#include <asm/mach-types.h>
#include <asm/suspend.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>

Expand Down Expand Up @@ -676,8 +677,7 @@ static struct pxa2xx_udc_mach_info zeus_udc_info = {
static void zeus_power_off(void)
{
local_irq_disable();
cpu_suspend(0, PHYS_OFFSET - PAGE_OFFSET, PWRMODE_DEEPSLEEP,
pxa27x_finish_suspend);
cpu_suspend(PWRMODE_DEEPSLEEP, pxa27x_finish_suspend);
}
#else
#define zeus_power_off NULL
Expand Down
3 changes: 2 additions & 1 deletion arch/arm/mach-sa1100/pm.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@

#include <mach/hardware.h>
#include <asm/memory.h>
#include <asm/suspend.h>
#include <asm/system.h>
#include <asm/mach/time.h>

Expand Down Expand Up @@ -75,7 +76,7 @@ static int sa11x0_pm_enter(suspend_state_t state)
PSPR = virt_to_phys(cpu_resume);

/* go zzz */
cpu_suspend(0, PHYS_OFFSET - PAGE_OFFSET, 0, sa1100_finish_suspend);
cpu_suspend(0, sa1100_finish_suspend);

/*
* Ensure not to come back here if it wasn't intended
Expand Down
3 changes: 2 additions & 1 deletion arch/arm/plat-samsung/pm.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include <linux/io.h>

#include <asm/cacheflush.h>
#include <asm/suspend.h>
#include <mach/hardware.h>
#include <mach/map.h>

Expand Down Expand Up @@ -298,7 +299,7 @@ static int s3c_pm_enter(suspend_state_t state)
* we resume as it saves its own register state and restores it
* during the resume. */

cpu_suspend(0, PHYS_OFFSET - PAGE_OFFSET, 0, pm_cpu_sleep);
cpu_suspend(0, pm_cpu_sleep);

/* restore the system state */

Expand Down

0 comments on commit 2c74a0c

Please sign in to comment.