Commit 49635141 authored by Felipe Balbi's avatar Felipe Balbi

usb: musb: drop musb_platform_save/restore_context

... that can be easily folded into the
musb_platform_suspend/resume calls.
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent fa56df91
...@@ -462,19 +462,19 @@ static int am35x_musb_exit(struct musb *musb) ...@@ -462,19 +462,19 @@ static int am35x_musb_exit(struct musb *musb)
return 0; return 0;
} }
#ifdef CONFIG_PM static int am35x_musb_suspend(struct musb *musb)
void musb_platform_save_context(struct musb *musb,
struct musb_context_registers *musb_context)
{ {
phy_off(); phy_off();
return 0;
} }
void musb_platform_restore_context(struct musb *musb, static int am35x_musb_resume(struct musb *musb)
struct musb_context_registers *musb_context)
{ {
phy_on(); phy_on();
return 0;
} }
#endif
/* AM35x supports only 32bit read operation */ /* AM35x supports only 32bit read operation */
void musb_read_fifo(struct musb_hw_ep *hw_ep, u16 len, u8 *dst) 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,6 +516,9 @@ static const struct musb_platform_ops am35x_ops = {
.set_mode = am35x_musb_set_mode, .set_mode = am35x_musb_set_mode,
.try_idle = am35x_musb_try_idle, .try_idle = am35x_musb_try_idle,
.suspend = am35x_musb_suspend,
.resume = am35x_musb_resume,
.set_vbus = am35x_musb_set_vbus, .set_vbus = am35x_musb_set_vbus,
}; };
......
...@@ -406,9 +406,7 @@ static int bfin_musb_init(struct musb *musb) ...@@ -406,9 +406,7 @@ static int bfin_musb_init(struct musb *musb)
return 0; return 0;
} }
#ifdef CONFIG_PM static int bfin_musb_suspend(struct musb *musb)
void musb_platform_save_context(struct musb *musb,
struct musb_context_registers *musb_context)
{ {
if (is_host_active(musb)) if (is_host_active(musb))
/* /*
...@@ -418,14 +416,16 @@ void musb_platform_save_context(struct musb *musb, ...@@ -418,14 +416,16 @@ void musb_platform_save_context(struct musb *musb,
* wakeup event. * wakeup event.
*/ */
gpio_set_value(musb->config->gpio_vrsel, 0); gpio_set_value(musb->config->gpio_vrsel, 0);
return 0;
} }
void musb_platform_restore_context(struct musb *musb, static int bfin_musb_resume(struct musb *musb)
struct musb_context_registers *musb_context)
{ {
bfin_musb_reg_init(musb); bfin_musb_reg_init(musb);
return 0;
} }
#endif
static int bfin_musb_exit(struct musb *musb) static int bfin_musb_exit(struct musb *musb)
{ {
...@@ -446,6 +446,9 @@ static const struct musb_platform_ops bfin_ops = { ...@@ -446,6 +446,9 @@ static const struct musb_platform_ops bfin_ops = {
.set_mode = bfin_musb_set_mode, .set_mode = bfin_musb_set_mode,
.try_idle = bfin_musb_try_idle, .try_idle = bfin_musb_try_idle,
.suspend = bfin_musb_suspend,
.resume = bfin_musb_resume,
.vbus_status = bfin_musb_vbus_status, .vbus_status = bfin_musb_vbus_status,
.set_vbus = bfin_musb_set_vbus, .set_vbus = bfin_musb_set_vbus,
}; };
......
...@@ -2307,7 +2307,7 @@ void musb_save_context(struct musb *musb) ...@@ -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) void musb_restore_context(struct musb *musb)
...@@ -2317,7 +2317,7 @@ 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 *ep_target_regs;
void __iomem *epio; void __iomem *epio;
musb_platform_restore_context(musb, &musb->context); musb_platform_resume(musb);
if (is_host_enabled(musb)) { if (is_host_enabled(musb)) {
musb_writew(musb_base, MUSB_FRAME, musb->context.frame); musb_writew(musb_base, MUSB_FRAME, musb->context.frame);
......
...@@ -603,20 +603,6 @@ extern irqreturn_t musb_interrupt(struct musb *); ...@@ -603,20 +603,6 @@ extern irqreturn_t musb_interrupt(struct musb *);
extern void musb_hnp_stop(struct musb *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) static inline void musb_platform_set_vbus(struct musb *musb, int is_on)
{ {
if (musb->ops->set_vbus) if (musb->ops->set_vbus)
......
...@@ -258,21 +258,17 @@ static int omap2430_musb_init(struct musb *musb) ...@@ -258,21 +258,17 @@ static int omap2430_musb_init(struct musb *musb)
return 0; return 0;
} }
#ifdef CONFIG_PM static void omap2430_save_context(struct musb *musb)
void musb_platform_save_context(struct musb *musb,
struct musb_context_registers *musb_context)
{ {
musb_context->otg_sysconfig = musb_readl(musb->mregs, OTG_SYSCONFIG); musb->context.otg_sysconfig = musb_readl(musb->mregs, OTG_SYSCONFIG);
musb_context->otg_forcestandby = musb_readl(musb->mregs, OTG_FORCESTDBY); musb->context.otg_forcestandby = musb_readl(musb->mregs, OTG_FORCESTDBY);
} }
void musb_platform_restore_context(struct musb *musb, static void omap2430_restore_context(struct musb *musb)
struct musb_context_registers *musb_context)
{ {
musb_writel(musb->mregs, OTG_SYSCONFIG, musb_context->otg_sysconfig); 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_FORCESTDBY, musb->context.otg_forcestandby);
} }
#endif
static int omap2430_musb_suspend(struct musb *musb) static int omap2430_musb_suspend(struct musb *musb)
{ {
...@@ -287,6 +283,8 @@ static int omap2430_musb_suspend(struct musb *musb) ...@@ -287,6 +283,8 @@ static int omap2430_musb_suspend(struct musb *musb)
l |= ENABLEWAKEUP; /* enable wakeup */ l |= ENABLEWAKEUP; /* enable wakeup */
musb_writel(musb->mregs, OTG_SYSCONFIG, l); musb_writel(musb->mregs, OTG_SYSCONFIG, l);
omap2430_save_context(musb);
otg_set_suspend(musb->xceiv, 1); otg_set_suspend(musb->xceiv, 1);
return 0; return 0;
...@@ -298,6 +296,8 @@ static int omap2430_musb_resume(struct musb *musb) ...@@ -298,6 +296,8 @@ static int omap2430_musb_resume(struct musb *musb)
otg_set_suspend(musb->xceiv, 0); otg_set_suspend(musb->xceiv, 0);
omap2430_restore_context(musb);
l = musb_readl(musb->mregs, OTG_SYSCONFIG); l = musb_readl(musb->mregs, OTG_SYSCONFIG);
l &= ~ENABLEWAKEUP; /* disable wakeup */ l &= ~ENABLEWAKEUP; /* disable wakeup */
musb_writel(musb->mregs, OTG_SYSCONFIG, l); musb_writel(musb->mregs, OTG_SYSCONFIG, l);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment