usb: musb: move musb_start to musb_virthub.c
This function has its only user in musb_virthub.c, so let's move it there and make it static. Signed-off-by: Daniel Mack <zonque@gmail.com> Acked-by: Peter Korsgaard <jacmet@sunsite.dk> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
parent
fe4cb0912f
commit
69ae2a70bf
3 changed files with 44 additions and 46 deletions
|
@ -897,51 +897,6 @@ b_host:
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
/*
|
|
||||||
* Program the HDRC to start (enable interrupts, dma, etc.).
|
|
||||||
*/
|
|
||||||
void musb_start(struct musb *musb)
|
|
||||||
{
|
|
||||||
void __iomem *regs = musb->mregs;
|
|
||||||
u8 devctl = musb_readb(regs, MUSB_DEVCTL);
|
|
||||||
|
|
||||||
dev_dbg(musb->controller, "<== devctl %02x\n", devctl);
|
|
||||||
|
|
||||||
/* Set INT enable registers, enable interrupts */
|
|
||||||
musb->intrtxe = musb->epmask;
|
|
||||||
musb_writew(regs, MUSB_INTRTXE, musb->intrtxe);
|
|
||||||
musb->intrrxe = musb->epmask & 0xfffe;
|
|
||||||
musb_writew(regs, MUSB_INTRRXE, musb->intrrxe);
|
|
||||||
musb_writeb(regs, MUSB_INTRUSBE, 0xf7);
|
|
||||||
|
|
||||||
musb_writeb(regs, MUSB_TESTMODE, 0);
|
|
||||||
|
|
||||||
/* put into basic highspeed mode and start session */
|
|
||||||
musb_writeb(regs, MUSB_POWER, MUSB_POWER_ISOUPDATE
|
|
||||||
| MUSB_POWER_HSENAB
|
|
||||||
/* ENSUSPEND wedges tusb */
|
|
||||||
/* | MUSB_POWER_ENSUSPEND */
|
|
||||||
);
|
|
||||||
|
|
||||||
musb->is_active = 0;
|
|
||||||
devctl = musb_readb(regs, MUSB_DEVCTL);
|
|
||||||
devctl &= ~MUSB_DEVCTL_SESSION;
|
|
||||||
|
|
||||||
/* session started after:
|
|
||||||
* (a) ID-grounded irq, host mode;
|
|
||||||
* (b) vbus present/connect IRQ, peripheral mode;
|
|
||||||
* (c) peripheral initiates, using SRP
|
|
||||||
*/
|
|
||||||
if ((devctl & MUSB_DEVCTL_VBUS) == MUSB_DEVCTL_VBUS)
|
|
||||||
musb->is_active = 1;
|
|
||||||
else
|
|
||||||
devctl |= MUSB_DEVCTL_SESSION;
|
|
||||||
|
|
||||||
musb_platform_enable(musb);
|
|
||||||
musb_writeb(regs, MUSB_DEVCTL, devctl);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void musb_generic_disable(struct musb *musb)
|
static void musb_generic_disable(struct musb *musb)
|
||||||
{
|
{
|
||||||
void __iomem *mbase = musb->mregs;
|
void __iomem *mbase = musb->mregs;
|
||||||
|
|
|
@ -502,7 +502,6 @@ static inline void musb_configure_ep0(struct musb *musb)
|
||||||
|
|
||||||
extern const char musb_driver_name[];
|
extern const char musb_driver_name[];
|
||||||
|
|
||||||
extern void musb_start(struct musb *musb);
|
|
||||||
extern void musb_stop(struct musb *musb);
|
extern void musb_stop(struct musb *musb);
|
||||||
|
|
||||||
extern void musb_write_fifo(struct musb_hw_ep *ep, u16 len, const u8 *src);
|
extern void musb_write_fifo(struct musb_hw_ep *ep, u16 len, const u8 *src);
|
||||||
|
|
|
@ -44,6 +44,50 @@
|
||||||
|
|
||||||
#include "musb_core.h"
|
#include "musb_core.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Program the HDRC to start (enable interrupts, dma, etc.).
|
||||||
|
*/
|
||||||
|
static void musb_start(struct musb *musb)
|
||||||
|
{
|
||||||
|
void __iomem *regs = musb->mregs;
|
||||||
|
u8 devctl = musb_readb(regs, MUSB_DEVCTL);
|
||||||
|
|
||||||
|
dev_dbg(musb->controller, "<== devctl %02x\n", devctl);
|
||||||
|
|
||||||
|
/* Set INT enable registers, enable interrupts */
|
||||||
|
musb->intrtxe = musb->epmask;
|
||||||
|
musb_writew(regs, MUSB_INTRTXE, musb->intrtxe);
|
||||||
|
musb->intrrxe = musb->epmask & 0xfffe;
|
||||||
|
musb_writew(regs, MUSB_INTRRXE, musb->intrrxe);
|
||||||
|
musb_writeb(regs, MUSB_INTRUSBE, 0xf7);
|
||||||
|
|
||||||
|
musb_writeb(regs, MUSB_TESTMODE, 0);
|
||||||
|
|
||||||
|
/* put into basic highspeed mode and start session */
|
||||||
|
musb_writeb(regs, MUSB_POWER, MUSB_POWER_ISOUPDATE
|
||||||
|
| MUSB_POWER_HSENAB
|
||||||
|
/* ENSUSPEND wedges tusb */
|
||||||
|
/* | MUSB_POWER_ENSUSPEND */
|
||||||
|
);
|
||||||
|
|
||||||
|
musb->is_active = 0;
|
||||||
|
devctl = musb_readb(regs, MUSB_DEVCTL);
|
||||||
|
devctl &= ~MUSB_DEVCTL_SESSION;
|
||||||
|
|
||||||
|
/* session started after:
|
||||||
|
* (a) ID-grounded irq, host mode;
|
||||||
|
* (b) vbus present/connect IRQ, peripheral mode;
|
||||||
|
* (c) peripheral initiates, using SRP
|
||||||
|
*/
|
||||||
|
if ((devctl & MUSB_DEVCTL_VBUS) == MUSB_DEVCTL_VBUS) {
|
||||||
|
musb->is_active = 1;
|
||||||
|
} else {
|
||||||
|
devctl |= MUSB_DEVCTL_SESSION;
|
||||||
|
}
|
||||||
|
|
||||||
|
musb_platform_enable(musb);
|
||||||
|
musb_writeb(regs, MUSB_DEVCTL, devctl);
|
||||||
|
}
|
||||||
|
|
||||||
static void musb_port_suspend(struct musb *musb, bool do_suspend)
|
static void musb_port_suspend(struct musb *musb, bool do_suspend)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue