Hi George,No it doesn't.
On Mon, May 19, 2014 at 11:32 PM, George Cherian <george.cherian@xxxxxx> wrote:
Hi Bin,The code flow is a bit confusing, two if() handle the same interrupt.
On 5/19/2014 9:24 PM, Bin Liu wrote:
Hi,
On Mon, May 19, 2014 at 8:39 AM, George Cherian <george.cherian@xxxxxx>
wrote:
BABBLE and RESET share the same interrupt. The interruptI guess my following comments are for Daniel's patch as while which
is considered to be RESET if MUSB is in peripheral mode and
as a BABBLE if MUSB is in HOST mode.
Handle babble condition iff MUSB is in HOST mode.
Signed-off-by: George Cherian <george.cherian@xxxxxx>
---
drivers/usb/musb/musb_core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index 61da471..eff3c5c 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -849,7 +849,7 @@ b_host:
}
/* handle babble condition */
- if (int_usb & MUSB_INTR_BABBLE)
+ if (int_usb & MUSB_INTR_BABBLE && is_host_active(musb))
schedule_work(&musb->recover_work);
initially added the babble work.
Should this if statement be merged into the previous 'if(int_usb &
MUSB_INTR_RESET)' one, which handles the same interrupt and already
handles host and device mode respectively.
Initially I too had the babble handling as part of 'if(int_usb &
MUSB_INTR_RESET)'
one. But during my tests I hit a corner case where in we hit a BABBLE
condition
on disconnect. In such case the babble interrupt can be handled only if we
have a seperate
check, else its considered as a BUS RESET.
When all devices are disconnected MUSB_DEVCTL_HM = 0 and the code always
enter the
else path. In this path it treats the BABBLE as a BUS RESET.
The second one implied using 'handled = IRQ_HANDLED;' from the first
one.
Also does the switch() in else{} in the first if() cause any side effect?
Since this babble handing is AM335x specific, how about handle it inThat the reason we have platform specific callbacks added from the main interrupt handler.
dsps_interrupt() in musb_dsps.c, which already has an entry for babble
interrupt? TI 3.2 kernel does this way.
Regards,
-Bin.
Regards,
-Bin.
#if 0
--
1.8.3.1
--
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
--
-George