public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] usb: musb: core: Disable the Interrupts till BABBLE is fully handled
@ 2014-11-14  8:24 George Cherian
  2014-11-14  8:42 ` Sebastian Andrzej Siewior
  2014-11-18 21:17 ` Felipe Balbi
  0 siblings, 2 replies; 15+ messages in thread
From: George Cherian @ 2014-11-14  8:24 UTC (permalink / raw)
  To: balbi; +Cc: gregkh, linux-usb, linux-kernel, bigeasy, George Cherian

Disable the MUSB interrupts till MUSB is recovered fully from BABBLE
condition. There are chances that we could get multiple interrupts
till the time the babble recover work gets scheduled. Sometimes
this could even end up in an endless loop making MUSB itself unusable.

Reported-by: Felipe Balbi <balbi@ti.com>	
Signed-off-by: George Cherian <george.cherian@ti.com>
---
 drivers/usb/musb/musb_core.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index 3345c94..992c768 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -423,6 +423,7 @@ void musb_hnp_stop(struct musb *musb)
 	musb->port1_status &= ~(USB_PORT_STAT_C_CONNECTION << 16);
 }
 
+static void musb_generic_disable(struct musb *musb);
 /*
  * Interrupt Service Routine to record USB "global" interrupts.
  * Since these do not happen often and signify things of
@@ -846,9 +847,11 @@ b_host:
 	}
 
 	/* handle babble condition */
-	if (int_usb & MUSB_INTR_BABBLE && is_host_active(musb))
+	if (int_usb & MUSB_INTR_BABBLE && is_host_active(musb)) {
+		musb_generic_disable(musb);
 		schedule_delayed_work(&musb->recover_work,
 				      msecs_to_jiffies(100));
+	}
 
 #if 0
 /* REVISIT ... this would be for multiplexing periodic endpoints, or
-- 
1.8.3.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2014-11-25 14:49 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-14  8:24 [PATCH] usb: musb: core: Disable the Interrupts till BABBLE is fully handled George Cherian
2014-11-14  8:42 ` Sebastian Andrzej Siewior
2014-11-14  9:11   ` George Cherian
2014-11-14 21:02     ` Felipe Balbi
2014-11-18 21:17 ` Felipe Balbi
2014-11-19  0:44   ` Bin Liu
2014-11-19  3:12     ` Felipe Balbi
2014-11-24 17:47   ` Sebastian Andrzej Siewior
2014-11-24 17:49   ` Sebastian Andrzej Siewior
2014-11-24 18:20     ` Felipe Balbi
2014-11-24 20:39       ` Peter Stuge
2014-11-24 20:56         ` Sebastian Andrzej Siewior
2014-11-25  1:09           ` Felipe Balbi
2014-11-25  8:24             ` Sebastian Andrzej Siewior
2014-11-25 14:49               ` Felipe Balbi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox