BeagleBoard USB Problem "Could not flush host TX0 fifo: csr: 000a"

Hi,

I'm using the beagle board to create a data logger.

Angstrom Linux beagleboard 2.6.29-omap1 #1 Thu Jun 18 04:02:19 CEST
2009 armv7l GNU/Linux

It uses a USB to Serial device to communicate to the devices I am
logging data from. I also have 2 other USB devices, A USB to Ethernet
and a USB Modem.

I have written a C program that talks to each external device using
the USB to serial adapter continuously. It runs fine for a few hours.
Then I start seeing this every few seconds ....

[87970.651153] ------------[ cut here ]------------
[87970.655792] WARNING: at drivers/usb/musb/musb_host.c:122
musb_h_tx_flush_fifo+0x94/0xd4()
[87970.664031] Could not flush host TX0 fifo: csr: 000a
[87970.669006] Modules linked in: ppp_generic slhc ftdi_sio option
mcs7830 usbserial ircomm_tty ircomm irda
[87970.678619] [<c04249f0>] (dump_stack+0x0/0x14) from [<c005e47c>]
(warn_slowpath+0x68/0x9c)
[87970.686981] [<c005e414>] (warn_slowpath+0x0/0x9c) from [<c02e6328>]
(musb_h_tx_flush_fifo+0x94/0xd4)
[87970.696228] r3:00000000 r2:c05309b2
[87970.699829] r7:d80ab102 r6:ffffffff r5:0000000a r4:0000000a
[87970.705566] [<c02e6294>] (musb_h_tx_flush_fifo+0x0/0xd4) from
[<c02e7034>] (musb_cleanup_urb+0xd8/0x124)
[87970.715118] [<c02e6f5c>] (musb_cleanup_urb+0x0/0x124) from
[<c02e76fc>] (musb_urb_dequeue+0x144/0x174)
[87970.724517] [<c02e75b8>] (musb_urb_dequeue+0x0/0x174) from
[<c02c4120>] (unlink1+0xb8/0xc4)
[87970.732971] [<c02c4068>] (unlink1+0x0/0xc4) from [<c02c4910>]
(usb_hcd_unlink_urb+0x58/0x74)
[87970.741485] r8:c7f99d1c r7:fffffffe r6:c7d824e0 r5:60000013
r4:00000000
[87970.748260] [<c02c48b8>] (usb_hcd_unlink_urb+0x0/0x74) from
[<c02c558c>] (usb_kill_urb+0x50/0xf0)
[87970.757232] r7:00001388 r6:c7d824e0 r5:00000000 r4:00000000
[87970.762939] [<c02c553c>] (usb_kill_urb+0x0/0xf0) from [<c02c6930>]
(usb_start_wait_urb+0x80/0xac)
[87970.771911] r7:00001388 r6:c7d824e0 r5:00000000 r4:00000000
[87970.777618] [<c02c68b0>] (usb_start_wait_urb+0x0/0xac) from
[<c02c6b44>] (usb_control_msg+0xc8/0xec)
[87970.786834] r8:00000002 r7:00000082 r6:00000000 r5:c7d36ae0
r4:00000000
[87970.793640] [<c02c6a7c>] (usb_control_msg+0x0/0xec) from
[<c02c6cf8>] (usb_clear_halt+0x5c/0x90)
[87970.802490] [<c02c6c9c>] (usb_clear_halt+0x0/0x90) from
[<bf05f89c>] (option_open+0x9c/0x168 [option])
[87970.811920] r7:c7c014e0 r6:00000003 r5:c7c2cac0 r4:c7c2c8c0
[87970.817657] [<bf05f800>] (option_open+0x0/0x168 [option]) from
[<bf04d1e8>] (serial_open+0x114/0x180 [usbserial])
[87970.828033] [<bf04d0d4>] (serial_open+0x0/0x180 [usbserial]) from
[<c01ffa44>] (tty_open+0x2cc/0x3e0)
[87970.837371] [<c01ff778>] (tty_open+0x0/0x3e0) from [<c00bd1a4>]
(chrdev_open+0x138/0x158)
[87970.845642] [<c00bd06c>] (chrdev_open+0x0/0x158) from [<c00b87f4>]
(__dentry_open+0x138/0x250)
[87970.854339] r8:c780a0a0 r7:00000000 r6:c00bd06c r5:c7c55b00
r4:c7cadac0
[87970.861114] [<c00b86bc>] (__dentry_open+0x0/0x250) from
[<c00b89ec>] (nameidata_to_filp+0x4c/0x64)
[87970.870178] [<c00b89a0>] (nameidata_to_filp+0x0/0x64) from
[<c00c5e34>] (do_filp_open+0x388/0x7ec)
[87970.879211] r5:c7f99ed8 r4:00000000
[87970.882812] [<c00c5aac>] (do_filp_open+0x0/0x7ec) from [<c00b8570>]
(do_sys_open+0x5c/0x150)
[87970.891357] [<c00b8514>] (do_sys_open+0x0/0x150) from [<c00b869c>]
(sys_open+0x24/0x28)
[87970.899414] [<c00b8678>] (sys_open+0x0/0x28) from [<c003be80>]
(ret_fast_syscall+0x0/0x2c)
[87970.907775] ---[ end trace e7a0421a227dc6fe ]---

This stops me from using the USB serial port. If I reboot the Beagle I
can use the serial port again, or if i run the line : "echo host> /sys/
devices/platform/musb_hdrc/mode" this resets the USB and Re-Enumerates
which again seems to let my program continue.

This log is from an Issue B7 Beagle using the OTG port.

Carl.