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>
This commit is contained in:
Родитель
fa56df915d
Коммит
496351413a
|
@ -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,
|
||||
};
|
||||
|
||||
|
|
|
@ -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,
|
||||
};
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
|
Загрузка…
Ссылка в новой задаче