I noticed on this website: http://comments.gmane.org/gmane.linux.usb.general/87138 that there is published a driver update to the kernel to allow for musb recovery from a Babble Interrupt. I am using the Beaglebone Black running Ubuntu 13.10 Saucy and I'm pretty sure it is using the musb driver (But an older version, maybe).
I keep getting the USB Babble Interrupt and cannot recover without cycling power. How do I apply this patch to my board? It looks like it is compiled into the kernel, but I'm not sure how to apply patches such as this.
Output of dmesg after the Babble Interrupt occurs and crashes the driver:
[ 574.616465] CAUTION: musb: Babble Interrupt Occurred
[ 3603.475303] usb 1-1: stty timed out on ep0out len=0/0
[ 3604.475297] usb 1-1: stty timed out on ep0out len=0/0
[ 3604.475365] ftdi_sio ttyUSB0: ftdi_set_termios FAILED to set databits/stopbits/parity
[ 3605.485044] usb 1-1: stty timed out on ep0out len=0/0
[ 3605.485109] ftdi_sio ttyUSB0: ftdi_set_termios urb failed to set baudrate
[ 3610.492868] usb 1-1: stty timed out on ep0out len=0/0
[ 3615.492831] usb 1-1: stty timed out on ep0out len=0/0
[ 3615.492895] ftdi_sio ttyUSB0: urb failed to clear flow control
[ 3620.500649] usb 1-1: stty timed out on ep0out len=0/0
[ 3625.500708] usb 1-1: stty timed out on ep0in len=0/2
[ 3625.500775] ftdi_sio ttyUSB0: failed to get modem status: -110
Then, further down:
[ 3711.583385] ------------[ cut here ]------------
[ 3711.583453] WARNING: at drivers/usb/musb/musb_host.c:125 musb_h_tx_flush_fifo+0x58/0x84()
[ 3711.583480] Could not flush host TX10 fifo: csr: 2003
[ 3711.583502] Modules linked in: ftdi_sio usbserial g_multi libcomposite
[ 3711.583630] [<c0012f44>] (unwind_backtrace+0x0/0xdc) from [<c003b3e8>] (warn_slowpath_common+0x4c/0x64)
[ 3711.583683] [<c003b3e8>] (warn_slowpath_common+0x4c/0x64) from [<c003b42c>] (warn_slowpath_fmt+0x2c/0x3c)
[ 3711.583734] [<c003b42c>] (warn_slowpath_fmt+0x2c/0x3c) from [<c041af24>] (musb_h_tx_flush_fifo+0x58/0x84)
[ 3711.583789] [<c041af24>] (musb_h_tx_flush_fifo+0x58/0x84) from [<c041bad4>] (musb_cleanup_urb.isra.8+0x44/0x9c)
[ 3711.583842] [<c041bad4>] (musb_cleanup_urb.isra.8+0x44/0x9c) from [<c041bc20>] (musb_urb_dequeue+0xf4/0x114)
[ 3711.583902] [<c041bc20>] (musb_urb_dequeue+0xf4/0x114) from [<c040177c>] (usb_hcd_unlink_urb+0x5c/0xb4)
[ 3711.583956] [<c040177c>] (usb_hcd_unlink_urb+0x5c/0xb4) from [<c04028b8>] (usb_kill_urb+0x54/0xec)
[ 3711.584062] [<c04028b8>] (usb_kill_urb+0x54/0xec) from [<bf02209c>] (generic_cleanup+0x30/0x74 [usbserial])
[ 3711.584168] [<bf02209c>] (generic_cleanup+0x30/0x74 [usbserial]) from [<bf02d120>] (ftdi_close+0x1c/0x4c [ftdi_sio])
[ 3711.584246] [<bf02d120>] (ftdi_close+0x1c/0x4c [ftdi_sio]) from [<c033b3e8>] (tty_port_shutdown+0x54/0x60)
[ 3711.584301] [<c033b3e8>] (tty_port_shutdown+0x54/0x60) from [<c033ba80>] (tty_port_close+0x20/0x48)
[ 3711.584351] [<c033ba80>] (tty_port_close+0x20/0x48) from [<c0334968>] (tty_release+0x130/0x424)
[ 3711.584410] [<c0334968>] (tty_release+0x130/0x424) from [<c00f42f0>] (__fput+0xec/0x1ec)
[ 3711.584470] [<c00f42f0>] (__fput+0xec/0x1ec) from [<c00563f8>] (task_work_run+0xac/0xcc)
[ 3711.584536] [<c00563f8>] (task_work_run+0xac/0xcc) from [<c0010a50>] (do_work_pending+0x470/0x4c8)
[ 3711.584591] [<c0010a50>] (do_work_pending+0x470/0x4c8) from [<c000d420>] (work_pending+0xc/0x20)
[ 3711.584621] ---[ end trace 001b13940be2c056 ]---