usb: musb: Fix handling of spurious SESSREQ

Rely on VBUS being valid on top off B device.

Signed-off-by: Heikki Krogerus <heikki.krogerus@nokia.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
Heikki Krogerus
2010-10-29 04:23:27 -05:00
committed by Felipe Balbi
parent b212091474
commit 19aab56c7f

View File

@@ -552,7 +552,8 @@ static irqreturn_t musb_stage0_irq(struct musb *musb, u8 int_usb,
if (int_usb & MUSB_INTR_SESSREQ) { if (int_usb & MUSB_INTR_SESSREQ) {
void __iomem *mbase = musb->mregs; void __iomem *mbase = musb->mregs;
if (devctl & MUSB_DEVCTL_BDEVICE) { if ((devctl & MUSB_DEVCTL_VBUS) == MUSB_DEVCTL_VBUS
&& (devctl & MUSB_DEVCTL_BDEVICE)) {
DBG(3, "SessReq while on B state\n"); DBG(3, "SessReq while on B state\n");
return IRQ_HANDLED; return IRQ_HANDLED;
} }