diff options
author | Magnus Damm <damm@igel.co.jp> | 2009-07-08 07:22:56 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rjw@sisk.pl> | 2009-07-21 18:28:39 -0400 |
commit | 48fea9659ec1a35641db3832adaf3860ecabb6ba (patch) | |
tree | 00d218b148617d9dd0802c8fba5eb92413f6052a | |
parent | 6a6c6189b1fef97de9b8b936131fe2085ac42a5a (diff) |
USB: Rework musb suspend()/resume_early()
This patch reworks platform driver power management code
for musb from legacy callbacks to dev_pm_ops.
The callbacks are converted for CONFIG_SUSPEND like this:
suspend() -> suspend()
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>
-rw-r--r-- | drivers/usb/musb/musb_core.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c index 554a414f65d1..1191928902f4 100644 --- a/drivers/usb/musb/musb_core.c +++ b/drivers/usb/musb/musb_core.c | |||
@@ -2168,8 +2168,9 @@ static int __devexit musb_remove(struct platform_device *pdev) | |||
2168 | 2168 | ||
2169 | #ifdef CONFIG_PM | 2169 | #ifdef CONFIG_PM |
2170 | 2170 | ||
2171 | static int musb_suspend(struct platform_device *pdev, pm_message_t message) | 2171 | static int musb_suspend(struct device *dev) |
2172 | { | 2172 | { |
2173 | struct platform_device *pdev = to_platform_device(dev); | ||
2173 | unsigned long flags; | 2174 | unsigned long flags; |
2174 | struct musb *musb = dev_to_musb(&pdev->dev); | 2175 | struct musb *musb = dev_to_musb(&pdev->dev); |
2175 | 2176 | ||
@@ -2196,8 +2197,9 @@ static int musb_suspend(struct platform_device *pdev, pm_message_t message) | |||
2196 | return 0; | 2197 | return 0; |
2197 | } | 2198 | } |
2198 | 2199 | ||
2199 | static int musb_resume_early(struct platform_device *pdev) | 2200 | static int musb_resume_noirq(struct device *dev) |
2200 | { | 2201 | { |
2202 | struct platform_device *pdev = to_platform_device(dev); | ||
2201 | struct musb *musb = dev_to_musb(&pdev->dev); | 2203 | struct musb *musb = dev_to_musb(&pdev->dev); |
2202 | 2204 | ||
2203 | if (!musb->clock) | 2205 | if (!musb->clock) |
@@ -2215,9 +2217,14 @@ static int musb_resume_early(struct platform_device *pdev) | |||
2215 | return 0; | 2217 | return 0; |
2216 | } | 2218 | } |
2217 | 2219 | ||
2220 | static struct dev_pm_ops musb_dev_pm_ops = { | ||
2221 | .suspend = musb_suspend, | ||
2222 | .resume_noirq = musb_resume_noirq, | ||
2223 | }; | ||
2224 | |||
2225 | #define MUSB_DEV_PM_OPS (&musb_dev_pm_ops) | ||
2218 | #else | 2226 | #else |
2219 | #define musb_suspend NULL | 2227 | #define MUSB_DEV_PM_OPS NULL |
2220 | #define musb_resume_early NULL | ||
2221 | #endif | 2228 | #endif |
2222 | 2229 | ||
2223 | static struct platform_driver musb_driver = { | 2230 | static struct platform_driver musb_driver = { |
@@ -2225,11 +2232,10 @@ static struct platform_driver musb_driver = { | |||
2225 | .name = (char *)musb_driver_name, | 2232 | .name = (char *)musb_driver_name, |
2226 | .bus = &platform_bus_type, | 2233 | .bus = &platform_bus_type, |
2227 | .owner = THIS_MODULE, | 2234 | .owner = THIS_MODULE, |
2235 | .pm = MUSB_DEV_PM_OPS, | ||
2228 | }, | 2236 | }, |
2229 | .remove = __devexit_p(musb_remove), | 2237 | .remove = __devexit_p(musb_remove), |
2230 | .shutdown = musb_shutdown, | 2238 | .shutdown = musb_shutdown, |
2231 | .suspend = musb_suspend, | ||
2232 | .resume_early = musb_resume_early, | ||
2233 | }; | 2239 | }; |
2234 | 2240 | ||
2235 | /*-------------------------------------------------------------------------*/ | 2241 | /*-------------------------------------------------------------------------*/ |