Felipe, On Thu, Feb 26, 2015 at 12:25 PM, Felipe Balbi <balbi@xxxxxx> wrote: > musb->int_usb already contains the correct > information for musb-core to handle babble. > > In fact, this very check was just causing a > nonsensical babble interrupt storm because. I guess this is my English problem. I thought you miss the reason after 'because'? That was the intention of my quesiton in v1. > > With this I can get test.sh to run and, even though > all tests fail with timeout, that's still better > than locking up the system due to IRQ storm. > > Also, if I remove g_zero and load g_mass_storage, > then everything works fine again. > > Signed-off-by: Felipe Balbi <balbi@xxxxxx> > --- > drivers/usb/musb/musb_dsps.c | 22 ---------------------- > 1 file changed, 22 deletions(-) > > diff --git a/drivers/usb/musb/musb_dsps.c b/drivers/usb/musb/musb_dsps.c > index 7584601c96f3..b79202c3dd65 100644 > --- a/drivers/usb/musb/musb_dsps.c > +++ b/drivers/usb/musb/musb_dsps.c > @@ -330,28 +330,6 @@ static irqreturn_t dsps_interrupt(int irq, void *hci) > > dev_dbg(musb->controller, "usbintr (%x) epintr(%x)\n", > usbintr, epintr); > - /* > - * DRVVBUS IRQs are the only proxy we have (a very poor one!) for > - * DSPS IP's missing ID change IRQ. We need an ID change IRQ to > - * switch appropriately between halves of the OTG state machine. > - * Managing DEVCTL.SESSION per Mentor docs requires that we know its > - * value but DEVCTL.BDEVICE is invalid without DEVCTL.SESSION set. > - * Also, DRVVBUS pulses for SRP (but not at 5V) ... > - */ > - if (is_host_active(musb) && usbintr & MUSB_INTR_BABBLE) { > - pr_info("CAUTION: musb: Babble Interrupt Occurred\n"); > - > - /* > - * When a babble condition occurs, the musb controller removes > - * the session and is no longer in host mode. Hence, all > - * devices connected to its root hub get disconnected. > - * > - * Hand this error down to the musb core isr, so it can > - * recover. > - */ > - musb->int_usb = MUSB_INTR_BABBLE | MUSB_INTR_DISCONNECT; > - musb->int_tx = musb->int_rx = 0; > - } > > if (usbintr & ((1 << wrp->drvvbus) << wrp->usb_shift)) { > int drvvbus = dsps_readl(reg_base, wrp->status); > -- > 2.3.0 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-usb" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html