From: Tony Lindgren Date: Mon, 18 Jun 2007 12:53:40 +0000 (-0700) Subject: musb_hdrc: Allow BABBLE for non-HS host X-Git-Tag: v2.6.22-omap1~16 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=cb7eac8de26e350d37b1306aa3e96c57e19e1a3e;p=linux-2.6-omap-h63xx.git musb_hdrc: Allow BABBLE for non-HS host Looks like we can ignore LS and FS BABBLE. Only HS BABBLE cannot be ignored. Signed-off-by: Tony Lindgren --- diff --git a/drivers/usb/musb/plat_uds.c b/drivers/usb/musb/plat_uds.c index 6c9efd51e7e..1b7d9669711 100644 --- a/drivers/usb/musb/plat_uds.c +++ b/drivers/usb/musb/plat_uds.c @@ -538,13 +538,18 @@ static irqreturn_t musb_stage0_irq(struct musb * pThis, u8 bIntrUSB, if (bIntrUSB & MGC_M_INTR_RESET) { if (devctl & MGC_M_DEVCTL_HM) { /* - * BABBLE is an error condition, so the solution is - * to avoid babble in the first place and fix whatever - * causes BABBLE. When BABBLE happens we can only stop + * Looks like non-HS BABBLE can be ignored, but + * HS BABBLE is an error condition. For HS the solution + * is to avoid babble in the first place and fix whatever + * causes BABBLE. When HS BABBLE happens we can only stop * the session. */ - ERR("Stopping host session because of babble\n"); - musb_writeb(pBase, MGC_O_HDRC_DEVCTL, 0); + if (devctl & (MGC_M_DEVCTL_FSDEV | MGC_M_DEVCTL_LSDEV)) + DBG(1, "BABBLE devctl: %02x\n", devctl); + else { + ERR("Stopping host session because of babble\n"); + musb_writeb(pBase, MGC_O_HDRC_DEVCTL, 0); + } } else { DBG(1, "BUS RESET\n");