diff options
Diffstat (limited to 'arch/arm/mach-pxa/smemc.c')
| -rw-r--r-- | arch/arm/mach-pxa/smemc.c | 29 | 
1 files changed, 7 insertions, 22 deletions
diff --git a/arch/arm/mach-pxa/smemc.c b/arch/arm/mach-pxa/smemc.c index 232b7316ec0..79923058d10 100644 --- a/arch/arm/mach-pxa/smemc.c +++ b/arch/arm/mach-pxa/smemc.c @@ -6,7 +6,7 @@  #include <linux/kernel.h>  #include <linux/init.h>  #include <linux/io.h> -#include <linux/sysdev.h> +#include <linux/syscore_ops.h>  #include <mach/hardware.h>  #include <mach/smemc.h> @@ -16,7 +16,7 @@ static unsigned long msc[2];  static unsigned long sxcnfg, memclkcfg;  static unsigned long csadrcfg[4]; -static int pxa3xx_smemc_suspend(struct sys_device *dev, pm_message_t state) +static int pxa3xx_smemc_suspend(void)  {  	msc[0] = __raw_readl(MSC0);  	msc[1] = __raw_readl(MSC1); @@ -30,7 +30,7 @@ static int pxa3xx_smemc_suspend(struct sys_device *dev, pm_message_t state)  	return 0;  } -static int pxa3xx_smemc_resume(struct sys_device *dev) +static void pxa3xx_smemc_resume(void)  {  	__raw_writel(msc[0], MSC0);  	__raw_writel(msc[1], MSC1); @@ -40,34 +40,19 @@ static int pxa3xx_smemc_resume(struct sys_device *dev)  	__raw_writel(csadrcfg[1], CSADRCFG1);  	__raw_writel(csadrcfg[2], CSADRCFG2);  	__raw_writel(csadrcfg[3], CSADRCFG3); - -	return 0;  } -static struct sysdev_class smemc_sysclass = { -	.name		= "smemc", +static struct syscore_ops smemc_syscore_ops = {  	.suspend	= pxa3xx_smemc_suspend,  	.resume		= pxa3xx_smemc_resume,  }; -static struct sys_device smemc_sysdev = { -	.id		= 0, -	.cls		= &smemc_sysclass, -}; -  static int __init smemc_init(void)  { -	int ret = 0; +	if (cpu_is_pxa3xx()) +		register_syscore_ops(&smemc_syscore_ops); -	if (cpu_is_pxa3xx()) { -		ret = sysdev_class_register(&smemc_sysclass); -		if (ret) -			return ret; - -		ret = sysdev_register(&smemc_sysdev); -	} - -	return ret; +	return 0;  }  subsys_initcall(smemc_init);  #endif  |