summaryrefslogtreecommitdiffstats
path: root/drivers/usb/musb
diff options
context:
space:
mode:
authorFelipe Balbi <balbi@ti.com>2010-12-02 11:27:35 +0100
committerFelipe Balbi <balbi@ti.com>2010-12-10 09:21:26 +0100
commit496351413a227a6c0ea1a704d3d4c775d413fd08 (patch)
treee688488db9439ba5de6706260f0db4da612cc9d7 /drivers/usb/musb
parentusb: musb: drop the set_clock magic (diff)
downloadlinux-496351413a227a6c0ea1a704d3d4c775d413fd08.tar.xz
linux-496351413a227a6c0ea1a704d3d4c775d413fd08.zip
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/usb/musb')
-rw-r--r--drivers/usb/musb/am35x.c15
-rw-r--r--drivers/usb/musb/blackfin.c15
-rw-r--r--drivers/usb/musb/musb_core.c4
-rw-r--r--drivers/usb/musb/musb_core.h14
-rw-r--r--drivers/usb/musb/omap2430.c20
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)
return 0;
}
-#ifdef CONFIG_PM
-void musb_platform_save_context(struct musb *musb,
- struct musb_context_registers *musb_context)
+static int am35x_musb_suspend(struct musb *musb)
{
phy_off();
+
+ return 0;
}
-void musb_platform_restore_context(struct musb *musb,
- struct musb_context_registers *musb_context)
+static int am35x_musb_resume(struct musb *musb)
{
phy_on();
+
+ return 0;
}
-#endif
/* AM35x supports only 32bit read operation */
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 = {
.set_mode = am35x_musb_set_mode,
.try_idle = am35x_musb_try_idle,
+ .suspend = am35x_musb_suspend,
+ .resume = am35x_musb_resume,
+
.set_vbus = am35x_musb_set_vbus,
};
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)
return 0;
}
-#ifdef CONFIG_PM
-void musb_platform_save_context(struct musb *musb,
- struct musb_context_registers *musb_context)
+static int bfin_musb_suspend(struct musb *musb)
{
if (is_host_active(musb))
/*
@@ -418,14 +416,16 @@ void musb_platform_save_context(struct musb *musb,
* wakeup event.
*/
gpio_set_value(musb->config->gpio_vrsel, 0);
+
+ return 0;
}
-void musb_platform_restore_context(struct musb *musb,
- struct musb_context_registers *musb_context)
+static int bfin_musb_resume(struct musb *musb)
{
bfin_musb_reg_init(musb);
+
+ return 0;
}
-#endif
static int bfin_musb_exit(struct musb *musb)
{
@@ -446,6 +446,9 @@ static const struct musb_platform_ops bfin_ops = {
.set_mode = bfin_musb_set_mode,
.try_idle = bfin_musb_try_idle,
+ .suspend = bfin_musb_suspend,
+ .resume = bfin_musb_resume,
+
.vbus_status = bfin_musb_vbus_status,
.set_vbus = bfin_musb_set_vbus,
};
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)
}
}
- musb_platform_save_context(musb, &musb->context);
+ musb_platform_suspend(musb);
}
void musb_restore_context(struct musb *musb)
@@ -2317,7 +2317,7 @@ void musb_restore_context(struct musb *musb)
void __iomem *ep_target_regs;
void __iomem *epio;
- musb_platform_restore_context(musb, &musb->context);
+ musb_platform_resume(musb);
if (is_host_enabled(musb)) {
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 *);
extern void musb_hnp_stop(struct musb *musb);
-#ifdef CONFIG_PM
-#if defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP3) || \
- defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_BLACKFIN)
-extern void musb_platform_save_context(struct musb *musb,
- struct musb_context_registers *musb_context);
-extern void musb_platform_restore_context(struct musb *musb,
- struct musb_context_registers *musb_context);
-#else
-#define musb_platform_save_context(m, x) do {} while (0)
-#define musb_platform_restore_context(m, x) do {} while (0)
-#endif
-
-#endif
-
static inline void musb_platform_set_vbus(struct musb *musb, int is_on)
{
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)
return 0;
}
-#ifdef CONFIG_PM
-void musb_platform_save_context(struct musb *musb,
- struct musb_context_registers *musb_context)
+static void omap2430_save_context(struct musb *musb)
{
- musb_context->otg_sysconfig = musb_readl(musb->mregs, OTG_SYSCONFIG);
- musb_context->otg_forcestandby = musb_readl(musb->mregs, OTG_FORCESTDBY);
+ musb->context.otg_sysconfig = musb_readl(musb->mregs, OTG_SYSCONFIG);
+ musb->context.otg_forcestandby = musb_readl(musb->mregs, OTG_FORCESTDBY);
}
-void musb_platform_restore_context(struct musb *musb,
- struct musb_context_registers *musb_context)
+static void omap2430_restore_context(struct musb *musb)
{
- musb_writel(musb->mregs, OTG_SYSCONFIG, musb_context->otg_sysconfig);
- musb_writel(musb->mregs, OTG_FORCESTDBY, musb_context->otg_forcestandby);
+ musb_writel(musb->mregs, OTG_SYSCONFIG, musb->context.otg_sysconfig);
+ musb_writel(musb->mregs, OTG_FORCESTDBY, musb->context.otg_forcestandby);
}
-#endif
static int omap2430_musb_suspend(struct musb *musb)
{
@@ -287,6 +283,8 @@ static int omap2430_musb_suspend(struct musb *musb)
l |= ENABLEWAKEUP; /* enable wakeup */
musb_writel(musb->mregs, OTG_SYSCONFIG, l);
+ omap2430_save_context(musb);
+
otg_set_suspend(musb->xceiv, 1);
return 0;
@@ -298,6 +296,8 @@ static int omap2430_musb_resume(struct musb *musb)
otg_set_suspend(musb->xceiv, 0);
+ omap2430_restore_context(musb);
+
l = musb_readl(musb->mregs, OTG_SYSCONFIG);
l &= ~ENABLEWAKEUP; /* disable wakeup */
musb_writel(musb->mregs, OTG_SYSCONFIG, l);