Skip to content

Commit

Permalink
[ARM] pxa: move mfp sysdev registeration out for suspend/resume order
Browse files Browse the repository at this point in the history
MFP configurations after resume should be done before the GPIO registers
are restored.  Move the mfp sysdev registeration to the same place where
GPIO and IRQ sysdev(s) are registered to better control the order.

Signed-off-by: eric miao <eric.miao@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
eric miao authored and Russell King committed Apr 19, 2008
1 parent 06b2666 commit 4be35e2
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 10 deletions.
1 change: 1 addition & 0 deletions arch/arm/mach-pxa/generic.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,4 @@ extern unsigned pxa3xx_get_memclk_frequency_10khz(void);

extern struct sysdev_class pxa_irq_sysclass;
extern struct sysdev_class pxa_gpio_sysclass;
extern struct sysdev_class pxa3xx_mfp_sysclass;
20 changes: 10 additions & 10 deletions arch/arm/mach-pxa/mfp-pxa3xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -234,22 +234,22 @@ static int pxa3xx_mfp_resume(struct sys_device *d)

return 0;
}
#else
#define pxa3xx_mfp_suspend NULL
#define pxa3xx_mfp_resume NULL
#endif

static struct sysdev_class mfp_sysclass = {
struct sysdev_class pxa3xx_mfp_sysclass = {
.name = "mfp",
.suspend = pxa3xx_mfp_suspend,
.resume = pxa3xx_mfp_resume,
};

static struct sys_device mfp_device = {
.id = 0,
.cls = &mfp_sysclass,
};

static int __init mfp_init_devicefs(void)
{
sysdev_class_register(&mfp_sysclass);
return sysdev_register(&mfp_device);
if (cpu_is_pxa3xx())
return sysdev_class_register(&pxa3xx_mfp_sysclass);

return 0;
}
device_initcall(mfp_init_devicefs);
#endif
postcore_initcall(mfp_init_devicefs);
2 changes: 2 additions & 0 deletions arch/arm/mach-pxa/pxa3xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,8 @@ static struct platform_device *devices[] __initdata = {
static struct sys_device pxa3xx_sysdev[] = {
{
.cls = &pxa_irq_sysclass,
}, {
.cls = &pxa3xx_mfp_sysclass,
}, {
.cls = &pxa_gpio_sysclass,
},
Expand Down

0 comments on commit 4be35e2

Please sign in to comment.