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:
committed by
Felipe Balbi
parent
b212091474
commit
19aab56c7f
@@ -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;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user