On an AM335x platform, I'm seeing babble interrupts occuring when one specific mass storage device is disconnected from the bus. The device identfies itself as: idVendor 0x1e3d Chipsbank Microelectronics Co., Ltd idProduct 0x2093 bcdDevice 1.00 iManufacturer 1 CHIPSBNK iProduct 2 v3.3.9.1 iSerial 3 2115370076435400 I took the logic Ravi Babu implemented in May 2013, and addressed Felipe's comments on the thread back then. The result very much differs from the original implemention. I also factored out the actual recovery to a work struct, so we don't re-introduce 'scheduling while atomic' trouble. The platform layer reset is in fact necessary according to my tests. Let me know what you think. Thanks, Daniel Daniel Mack (3): USB: musb: add reset hook to platform ops USB: musb: Add a work_struct to recover from babble errors USB: musb: dsps: handle babble interrupts drivers/usb/musb/musb_core.c | 35 +++++++++++++++++++++++++++++++++++ drivers/usb/musb/musb_core.h | 8 ++++++++ drivers/usb/musb/musb_dsps.c | 25 ++++++++++++++++++++++++- 3 files changed, 67 insertions(+), 1 deletion(-) -- 1.8.5.3 -- 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