diff options
author | Magnus Damm <damm@igel.co.jp> | 2009-07-08 07:22:04 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rjw@sisk.pl> | 2009-07-21 18:28:38 -0400 |
commit | 79ee031ff6fd23a1a2a4f783cfc3421885304ce3 (patch) | |
tree | 085ba3d5839af93bcda7c10c67906b58db4f14cd /arch/arm/plat-omap/gpio.c | |
parent | d7aacaddcac3971e33cf52d7e610c06696cb347f (diff) |
ARM: Rework omap suspend_late()/resume_early()
This patch reworks platform driver power management code
for omap drivers using late/early legacy callbacks.
The callbacks are converted for CONFIG_SUSPEND like this:
suspend_late() -> suspend_noirq()
resume_early() -> resume_noirq()
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Diffstat (limited to 'arch/arm/plat-omap/gpio.c')
-rw-r--r-- | arch/arm/plat-omap/gpio.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c index 26b387c12423..3d03337ad422 100644 --- a/arch/arm/plat-omap/gpio.c +++ b/arch/arm/plat-omap/gpio.c | |||
@@ -1264,8 +1264,9 @@ static struct irq_chip mpuio_irq_chip = { | |||
1264 | 1264 | ||
1265 | #include <linux/platform_device.h> | 1265 | #include <linux/platform_device.h> |
1266 | 1266 | ||
1267 | static int omap_mpuio_suspend_late(struct platform_device *pdev, pm_message_t mesg) | 1267 | static int omap_mpuio_suspend_noirq(struct device *dev) |
1268 | { | 1268 | { |
1269 | struct platform_device *pdev = to_platform_device(dev); | ||
1269 | struct gpio_bank *bank = platform_get_drvdata(pdev); | 1270 | struct gpio_bank *bank = platform_get_drvdata(pdev); |
1270 | void __iomem *mask_reg = bank->base + OMAP_MPUIO_GPIO_MASKIT; | 1271 | void __iomem *mask_reg = bank->base + OMAP_MPUIO_GPIO_MASKIT; |
1271 | unsigned long flags; | 1272 | unsigned long flags; |
@@ -1278,8 +1279,9 @@ static int omap_mpuio_suspend_late(struct platform_device *pdev, pm_message_t me | |||
1278 | return 0; | 1279 | return 0; |
1279 | } | 1280 | } |
1280 | 1281 | ||
1281 | static int omap_mpuio_resume_early(struct platform_device *pdev) | 1282 | static int omap_mpuio_resume_noirq(struct device *dev) |
1282 | { | 1283 | { |
1284 | struct platform_device *pdev = to_platform_device(dev); | ||
1283 | struct gpio_bank *bank = platform_get_drvdata(pdev); | 1285 | struct gpio_bank *bank = platform_get_drvdata(pdev); |
1284 | void __iomem *mask_reg = bank->base + OMAP_MPUIO_GPIO_MASKIT; | 1286 | void __iomem *mask_reg = bank->base + OMAP_MPUIO_GPIO_MASKIT; |
1285 | unsigned long flags; | 1287 | unsigned long flags; |
@@ -1291,14 +1293,18 @@ static int omap_mpuio_resume_early(struct platform_device *pdev) | |||
1291 | return 0; | 1293 | return 0; |
1292 | } | 1294 | } |
1293 | 1295 | ||
1296 | static struct dev_pm_ops omap_mpuio_dev_pm_ops = { | ||
1297 | .suspend_noirq = omap_mpuio_suspend_noirq, | ||
1298 | .resume_noirq = omap_mpuio_resume_noirq, | ||
1299 | }; | ||
1300 | |||
1294 | /* use platform_driver for this, now that there's no longer any | 1301 | /* use platform_driver for this, now that there's no longer any |
1295 | * point to sys_device (other than not disturbing old code). | 1302 | * point to sys_device (other than not disturbing old code). |
1296 | */ | 1303 | */ |
1297 | static struct platform_driver omap_mpuio_driver = { | 1304 | static struct platform_driver omap_mpuio_driver = { |
1298 | .suspend_late = omap_mpuio_suspend_late, | ||
1299 | .resume_early = omap_mpuio_resume_early, | ||
1300 | .driver = { | 1305 | .driver = { |
1301 | .name = "mpuio", | 1306 | .name = "mpuio", |
1307 | .pm = &omap_mpuio_dev_pm_ops, | ||
1302 | }, | 1308 | }, |
1303 | }; | 1309 | }; |
1304 | 1310 | ||