diff options
author | Felipe Balbi <balbi@ti.com> | 2010-12-02 05:27:35 -0500 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2010-12-10 03:21:26 -0500 |
commit | 496351413a227a6c0ea1a704d3d4c775d413fd08 (patch) | |
tree | e688488db9439ba5de6706260f0db4da612cc9d7 /drivers | |
parent | fa56df915d101770a495569473b4c13b1904087b (diff) |
usb: musb: drop musb_platform_save/restore_context
... that can be easily folded into the
musb_platform_suspend/resume calls.
Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/usb/musb/am35x.c | 15 | ||||
-rw-r--r-- | drivers/usb/musb/blackfin.c | 15 | ||||
-rw-r--r-- | drivers/usb/musb/musb_core.c | 4 | ||||
-rw-r--r-- | drivers/usb/musb/musb_core.h | 14 | ||||
-rw-r--r-- | drivers/usb/musb/omap2430.c | 20 |
5 files changed, 30 insertions, 38 deletions
diff --git a/drivers/usb/musb/am35x.c b/drivers/usb/musb/am35x.c index e4e571bf9ba7..eacf1e09b495 100644 --- a/drivers/usb/musb/am35x.c +++ b/drivers/usb/musb/am35x.c | |||
@@ -462,19 +462,19 @@ static int am35x_musb_exit(struct musb *musb) | |||
462 | return 0; | 462 | return 0; |
463 | } | 463 | } |
464 | 464 | ||
465 | #ifdef CONFIG_PM | 465 | static int am35x_musb_suspend(struct musb *musb) |
466 | void musb_platform_save_context(struct musb *musb, | ||
467 | struct musb_context_registers *musb_context) | ||
468 | { | 466 | { |
469 | phy_off(); | 467 | phy_off(); |
468 | |||
469 | return 0; | ||
470 | } | 470 | } |
471 | 471 | ||
472 | void musb_platform_restore_context(struct musb *musb, | 472 | static int am35x_musb_resume(struct musb *musb) |
473 | struct musb_context_registers *musb_context) | ||
474 | { | 473 | { |
475 | phy_on(); | 474 | phy_on(); |
475 | |||
476 | return 0; | ||
476 | } | 477 | } |
477 | #endif | ||
478 | 478 | ||
479 | /* AM35x supports only 32bit read operation */ | 479 | /* AM35x supports only 32bit read operation */ |
480 | void musb_read_fifo(struct musb_hw_ep *hw_ep, u16 len, u8 *dst) | 480 | void musb_read_fifo(struct musb_hw_ep *hw_ep, u16 len, u8 *dst) |
@@ -516,6 +516,9 @@ static const struct musb_platform_ops am35x_ops = { | |||
516 | .set_mode = am35x_musb_set_mode, | 516 | .set_mode = am35x_musb_set_mode, |
517 | .try_idle = am35x_musb_try_idle, | 517 | .try_idle = am35x_musb_try_idle, |
518 | 518 | ||
519 | .suspend = am35x_musb_suspend, | ||
520 | .resume = am35x_musb_resume, | ||
521 | |||
519 | .set_vbus = am35x_musb_set_vbus, | 522 | .set_vbus = am35x_musb_set_vbus, |
520 | }; | 523 | }; |
521 | 524 | ||
diff --git a/drivers/usb/musb/blackfin.c b/drivers/usb/musb/blackfin.c index 03cb001c0e19..8c9c5fc3a6ca 100644 --- a/drivers/usb/musb/blackfin.c +++ b/drivers/usb/musb/blackfin.c | |||
@@ -406,9 +406,7 @@ static int bfin_musb_init(struct musb *musb) | |||
406 | return 0; | 406 | return 0; |
407 | } | 407 | } |
408 | 408 | ||
409 | #ifdef CONFIG_PM | 409 | static int bfin_musb_suspend(struct musb *musb) |
410 | void musb_platform_save_context(struct musb *musb, | ||
411 | struct musb_context_registers *musb_context) | ||
412 | { | 410 | { |
413 | if (is_host_active(musb)) | 411 | if (is_host_active(musb)) |
414 | /* | 412 | /* |
@@ -418,14 +416,16 @@ void musb_platform_save_context(struct musb *musb, | |||
418 | * wakeup event. | 416 | * wakeup event. |
419 | */ | 417 | */ |
420 | gpio_set_value(musb->config->gpio_vrsel, 0); | 418 | gpio_set_value(musb->config->gpio_vrsel, 0); |
419 | |||
420 | return 0; | ||
421 | } | 421 | } |
422 | 422 | ||
423 | void musb_platform_restore_context(struct musb *musb, | 423 | static int bfin_musb_resume(struct musb *musb) |
424 | struct musb_context_registers *musb_context) | ||
425 | { | 424 | { |
426 | bfin_musb_reg_init(musb); | 425 | bfin_musb_reg_init(musb); |
426 | |||
427 | return 0; | ||
427 | } | 428 | } |
428 | #endif | ||
429 | 429 | ||
430 | static int bfin_musb_exit(struct musb *musb) | 430 | static int bfin_musb_exit(struct musb *musb) |
431 | { | 431 | { |
@@ -446,6 +446,9 @@ static const struct musb_platform_ops bfin_ops = { | |||
446 | .set_mode = bfin_musb_set_mode, | 446 | .set_mode = bfin_musb_set_mode, |
447 | .try_idle = bfin_musb_try_idle, | 447 | .try_idle = bfin_musb_try_idle, |
448 | 448 | ||
449 | .suspend = bfin_musb_suspend, | ||
450 | .resume = bfin_musb_resume, | ||
451 | |||
449 | .vbus_status = bfin_musb_vbus_status, | 452 | .vbus_status = bfin_musb_vbus_status, |
450 | .set_vbus = bfin_musb_set_vbus, | 453 | .set_vbus = bfin_musb_set_vbus, |
451 | }; | 454 | }; |
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c index 6078eece74c7..4e048e3c3629 100644 --- a/drivers/usb/musb/musb_core.c +++ b/drivers/usb/musb/musb_core.c | |||
@@ -2307,7 +2307,7 @@ void musb_save_context(struct musb *musb) | |||
2307 | } | 2307 | } |
2308 | } | 2308 | } |
2309 | 2309 | ||
2310 | musb_platform_save_context(musb, &musb->context); | 2310 | musb_platform_suspend(musb); |
2311 | } | 2311 | } |
2312 | 2312 | ||
2313 | void musb_restore_context(struct musb *musb) | 2313 | void musb_restore_context(struct musb *musb) |
@@ -2317,7 +2317,7 @@ void musb_restore_context(struct musb *musb) | |||
2317 | void __iomem *ep_target_regs; | 2317 | void __iomem *ep_target_regs; |
2318 | void __iomem *epio; | 2318 | void __iomem *epio; |
2319 | 2319 | ||
2320 | musb_platform_restore_context(musb, &musb->context); | 2320 | musb_platform_resume(musb); |
2321 | 2321 | ||
2322 | if (is_host_enabled(musb)) { | 2322 | if (is_host_enabled(musb)) { |
2323 | musb_writew(musb_base, MUSB_FRAME, musb->context.frame); | 2323 | musb_writew(musb_base, MUSB_FRAME, musb->context.frame); |
diff --git a/drivers/usb/musb/musb_core.h b/drivers/usb/musb/musb_core.h index 1e538675ab86..f8efd543c5f2 100644 --- a/drivers/usb/musb/musb_core.h +++ b/drivers/usb/musb/musb_core.h | |||
@@ -603,20 +603,6 @@ extern irqreturn_t musb_interrupt(struct musb *); | |||
603 | 603 | ||
604 | extern void musb_hnp_stop(struct musb *musb); | 604 | extern void musb_hnp_stop(struct musb *musb); |
605 | 605 | ||
606 | #ifdef CONFIG_PM | ||
607 | #if defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP3) || \ | ||
608 | defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_BLACKFIN) | ||
609 | extern void musb_platform_save_context(struct musb *musb, | ||
610 | struct musb_context_registers *musb_context); | ||
611 | extern void musb_platform_restore_context(struct musb *musb, | ||
612 | struct musb_context_registers *musb_context); | ||
613 | #else | ||
614 | #define musb_platform_save_context(m, x) do {} while (0) | ||
615 | #define musb_platform_restore_context(m, x) do {} while (0) | ||
616 | #endif | ||
617 | |||
618 | #endif | ||
619 | |||
620 | static inline void musb_platform_set_vbus(struct musb *musb, int is_on) | 606 | static inline void musb_platform_set_vbus(struct musb *musb, int is_on) |
621 | { | 607 | { |
622 | if (musb->ops->set_vbus) | 608 | if (musb->ops->set_vbus) |
diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c index fa3154b03044..2659667a1994 100644 --- a/drivers/usb/musb/omap2430.c +++ b/drivers/usb/musb/omap2430.c | |||
@@ -258,21 +258,17 @@ static int omap2430_musb_init(struct musb *musb) | |||
258 | return 0; | 258 | return 0; |
259 | } | 259 | } |
260 | 260 | ||
261 | #ifdef CONFIG_PM | 261 | static void omap2430_save_context(struct musb *musb) |
262 | void musb_platform_save_context(struct musb *musb, | ||
263 | struct musb_context_registers *musb_context) | ||
264 | { | 262 | { |
265 | musb_context->otg_sysconfig = musb_readl(musb->mregs, OTG_SYSCONFIG); | 263 | musb->context.otg_sysconfig = musb_readl(musb->mregs, OTG_SYSCONFIG); |
266 | musb_context->otg_forcestandby = musb_readl(musb->mregs, OTG_FORCESTDBY); | 264 | musb->context.otg_forcestandby = musb_readl(musb->mregs, OTG_FORCESTDBY); |
267 | } | 265 | } |
268 | 266 | ||
269 | void musb_platform_restore_context(struct musb *musb, | 267 | static void omap2430_restore_context(struct musb *musb) |
270 | struct musb_context_registers *musb_context) | ||
271 | { | 268 | { |
272 | musb_writel(musb->mregs, OTG_SYSCONFIG, musb_context->otg_sysconfig); | 269 | musb_writel(musb->mregs, OTG_SYSCONFIG, musb->context.otg_sysconfig); |
273 | musb_writel(musb->mregs, OTG_FORCESTDBY, musb_context->otg_forcestandby); | 270 | musb_writel(musb->mregs, OTG_FORCESTDBY, musb->context.otg_forcestandby); |
274 | } | 271 | } |
275 | #endif | ||
276 | 272 | ||
277 | static int omap2430_musb_suspend(struct musb *musb) | 273 | static int omap2430_musb_suspend(struct musb *musb) |
278 | { | 274 | { |
@@ -287,6 +283,8 @@ static int omap2430_musb_suspend(struct musb *musb) | |||
287 | l |= ENABLEWAKEUP; /* enable wakeup */ | 283 | l |= ENABLEWAKEUP; /* enable wakeup */ |
288 | musb_writel(musb->mregs, OTG_SYSCONFIG, l); | 284 | musb_writel(musb->mregs, OTG_SYSCONFIG, l); |
289 | 285 | ||
286 | omap2430_save_context(musb); | ||
287 | |||
290 | otg_set_suspend(musb->xceiv, 1); | 288 | otg_set_suspend(musb->xceiv, 1); |
291 | 289 | ||
292 | return 0; | 290 | return 0; |
@@ -298,6 +296,8 @@ static int omap2430_musb_resume(struct musb *musb) | |||
298 | 296 | ||
299 | otg_set_suspend(musb->xceiv, 0); | 297 | otg_set_suspend(musb->xceiv, 0); |
300 | 298 | ||
299 | omap2430_restore_context(musb); | ||
300 | |||
301 | l = musb_readl(musb->mregs, OTG_SYSCONFIG); | 301 | l = musb_readl(musb->mregs, OTG_SYSCONFIG); |
302 | l &= ~ENABLEWAKEUP; /* disable wakeup */ | 302 | l &= ~ENABLEWAKEUP; /* disable wakeup */ |
303 | musb_writel(musb->mregs, OTG_SYSCONFIG, l); | 303 | musb_writel(musb->mregs, OTG_SYSCONFIG, l); |