Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 49635141 authored by Felipe Balbi's avatar Felipe Balbi
Browse files

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
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -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,
};

+9 −6
Original line number Diff line number Diff line
@@ -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,
};
+2 −2
Original line number Diff line number Diff line
@@ -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);
+0 −14
Original line number Diff line number Diff line
@@ -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)
+10 −10
Original line number Diff line number Diff line
@@ -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);