Felipe,

On Thu, Feb 26, 2015 at 12:25 PM, Felipe Balbi <ba...@ti.com> 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 <ba...@ti.com>
> ---
>  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 majord...@vger.kernel.org
> 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to