diff options
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/arm/mach-omap1/pm.c | 20 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/pm.c | 20 | ||||
| -rw-r--r-- | arch/blackfin/mach-common/pm.c | 53 | ||||
| -rw-r--r-- | arch/powerpc/platforms/52xx/lite5200_pm.c | 34 | ||||
| -rw-r--r-- | arch/powerpc/platforms/52xx/mpc52xx_pm.c | 9 | 
5 files changed, 35 insertions, 101 deletions
diff --git a/arch/arm/mach-omap1/pm.c b/arch/arm/mach-omap1/pm.c index 8db38dd247a..3bf01e28df3 100644 --- a/arch/arm/mach-omap1/pm.c +++ b/arch/arm/mach-omap1/pm.c @@ -599,27 +599,15 @@ static void (*saved_idle)(void) = NULL;  /*   *	omap_pm_prepare - Do preliminary suspend work. - *	@state:		suspend state we're entering.   *   */ -static int omap_pm_prepare(suspend_state_t state) +static int omap_pm_prepare(void)  { -	int error = 0; -  	/* We cannot sleep in idle until we have resumed */  	saved_idle = pm_idle;  	pm_idle = NULL; -	switch (state) -	{ -	case PM_SUSPEND_STANDBY: -	case PM_SUSPEND_MEM: -		break; -	default: -		return -EINVAL; -	} - -	return error; +	return 0;  } @@ -647,16 +635,14 @@ static int omap_pm_enter(suspend_state_t state)  /**   *	omap_pm_finish - Finish up suspend sequence. - *	@state:		State we're coming out of.   *   *	This is called after we wake back up (or if entering the sleep state   *	failed).   */ -static int omap_pm_finish(suspend_state_t state) +static void omap_pm_finish(void)  {  	pm_idle = saved_idle; -	return 0;  } diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c index 9aaa7a2633e..baf7d82b458 100644 --- a/arch/arm/mach-omap2/pm.c +++ b/arch/arm/mach-omap2/pm.c @@ -70,25 +70,12 @@ void omap2_pm_idle(void)  	local_irq_enable();  } -static int omap2_pm_prepare(suspend_state_t state) +static int omap2_pm_prepare(void)  { -	int error = 0; -  	/* We cannot sleep in idle until we have resumed */  	saved_idle = pm_idle;  	pm_idle = NULL; - -	switch (state) -	{ -	case PM_SUSPEND_STANDBY: -	case PM_SUSPEND_MEM: -		break; - -	default: -		return -EINVAL; -	} - -	return error; +	return 0;  }  #define INT0_WAKE_MASK	(OMAP_IRQ_BIT(INT_24XX_GPIO_BANK1) |	\ @@ -356,10 +343,9 @@ static int omap2_pm_enter(suspend_state_t state)  	return ret;  } -static int omap2_pm_finish(suspend_state_t state) +static void omap2_pm_finish(void)  {  	pm_idle = saved_idle; -	return 0;  }  static struct platform_suspend_ops omap_pm_ops = { diff --git a/arch/blackfin/mach-common/pm.c b/arch/blackfin/mach-common/pm.c index 6901891905c..dac51fb06f2 100644 --- a/arch/blackfin/mach-common/pm.c +++ b/arch/blackfin/mach-common/pm.c @@ -89,28 +89,15 @@ void bfin_pm_suspend_standby_enter(void)  #endif				/* CONFIG_PM_WAKEUP_GPIO_BY_SIC_IWR */  } -  /* - *	bfin_pm_prepare - Do preliminary suspend work. - *	@state:		suspend state we're entering. + *	bfin_pm_valid - Tell the PM core that we only support the standby sleep + *			state + *	@state:		suspend state we're checking.   *   */ -static int bfin_pm_prepare(suspend_state_t state) +static int bfin_pm_valid(suspend_state_t state)  { -	int error = 0; - -	switch (state) { -	case PM_SUSPEND_STANDBY: -		break; - -	case PM_SUSPEND_MEM: -		return -ENOTSUPP; - -	default: -		return -EINVAL; -	} - -	return error; +	return (state == PM_SUSPEND_STANDBY);  }  /* @@ -135,38 +122,8 @@ static int bfin_pm_enter(suspend_state_t state)  	return 0;  } -/* - *	bfin_pm_finish - Finish up suspend sequence. - *	@state:		State we're coming out of. - * - *	This is called after we wake back up (or if entering the sleep state - *	failed). - */ -static int bfin_pm_finish(suspend_state_t state) -{ -	switch (state) { -	case PM_SUSPEND_STANDBY: -		break; - -	case PM_SUSPEND_MEM: -		return -ENOTSUPP; - -	default: -		return -EINVAL; -	} - -	return 0; -} - -static int bfin_pm_valid(suspend_state_t state) -{ -	return (state == PM_SUSPEND_STANDBY); -} -  struct platform_suspend_ops bfin_pm_ops = { -	.prepare = bfin_pm_prepare,  	.enter = bfin_pm_enter, -	.finish = bfin_pm_finish,  	.valid	= bfin_pm_valid,  }; diff --git a/arch/powerpc/platforms/52xx/lite5200_pm.c b/arch/powerpc/platforms/52xx/lite5200_pm.c index f26afcd4175..ffa14aff524 100644 --- a/arch/powerpc/platforms/52xx/lite5200_pm.c +++ b/arch/powerpc/platforms/52xx/lite5200_pm.c @@ -1,5 +1,5 @@  #include <linux/init.h> -#include <linux/pm.h> +#include <linux/suspend.h>  #include <asm/io.h>  #include <asm/time.h>  #include <asm/mpc52xx.h> @@ -18,6 +18,8 @@ static void __iomem *sram;  static const int sram_size = 0x4000;	/* 16 kBytes */  static void __iomem *mbar; +static suspend_state_t lite5200_pm_target_state; +  static int lite5200_pm_valid(suspend_state_t state)  {  	switch (state) { @@ -29,13 +31,22 @@ static int lite5200_pm_valid(suspend_state_t state)  	}  } -static int lite5200_pm_prepare(suspend_state_t state) +static int lite5200_pm_set_target(suspend_state_t state) +{ +	if (lite5200_pm_valid(state)) { +		lite5200_pm_target_state = state; +		return 0; +	} +	return -EINVAL; +} + +static int lite5200_pm_prepare(void)  {  	/* deep sleep? let mpc52xx code handle that */ -	if (state == PM_SUSPEND_STANDBY) -		return mpc52xx_pm_prepare(state); +	if (lite5200_pm_target_state == PM_SUSPEND_STANDBY) +		return mpc52xx_pm_prepare(); -	if (state != PM_SUSPEND_MEM) +	if (lite5200_pm_target_state != PM_SUSPEND_MEM)  		return -EINVAL;  	/* map registers */ @@ -190,17 +201,16 @@ static int lite5200_pm_enter(suspend_state_t state)  	return 0;  } -static int lite5200_pm_finish(suspend_state_t state) +static void lite5200_pm_finish(void)  {  	/* deep sleep? let mpc52xx code handle that */ -	if (state == PM_SUSPEND_STANDBY) { -		return mpc52xx_pm_finish(state); -	} -	return 0; +	if (lite5200_pm_target_state == PM_SUSPEND_STANDBY) +		mpc52xx_pm_finish();  } -static struct pm_ops lite5200_pm_ops = { +static struct platform_suspend_ops lite5200_pm_ops = {  	.valid		= lite5200_pm_valid, +	.set_target	= lite5200_pm_set_target,  	.prepare	= lite5200_pm_prepare,  	.enter		= lite5200_pm_enter,  	.finish		= lite5200_pm_finish, @@ -208,6 +218,6 @@ static struct pm_ops lite5200_pm_ops = {  int __init lite5200_pm_init(void)  { -	pm_set_ops(&lite5200_pm_ops); +	suspend_set_ops(&lite5200_pm_ops);  	return 0;  } diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pm.c b/arch/powerpc/platforms/52xx/mpc52xx_pm.c index 44fb064c7a1..7ffa7babf25 100644 --- a/arch/powerpc/platforms/52xx/mpc52xx_pm.c +++ b/arch/powerpc/platforms/52xx/mpc52xx_pm.c @@ -57,11 +57,8 @@ int mpc52xx_set_wakeup_gpio(u8 pin, u8 level)  	return 0;  } -int mpc52xx_pm_prepare(suspend_state_t state) +int mpc52xx_pm_prepare(void)  { -	if (state != PM_SUSPEND_STANDBY) -		return -EINVAL; -  	/* map the whole register space */  	mbar = mpc52xx_find_and_map("mpc5200");  	if (!mbar) { @@ -166,15 +163,13 @@ int mpc52xx_pm_enter(suspend_state_t state)  	return 0;  } -int mpc52xx_pm_finish(suspend_state_t state) +void mpc52xx_pm_finish(void)  {  	/* call board resume code */  	if (mpc52xx_suspend.board_resume_finish)  		mpc52xx_suspend.board_resume_finish(mbar);  	iounmap(mbar); - -	return 0;  }  static struct platform_suspend_ops mpc52xx_pm_ops = {  |