On Monday 03 March 2003 17:06, Ian Abbott wrote: > On Friday 28 February 2003 17:06, Greg KH wrote: > > On Fri, Feb 28, 2003 at 03:44:11PM +0000, Ian Abbott wrote: > > > when the FTDI USB to serial converter (I have tried FT8U232AM > > > and FT232BM) is connected to a UHCI hub using the "alternate" > > > UHCI driver (uhci.o). > > > > Does the same thing happen on 2.5? > > I'll let you know when/if I finally manage to get the kernel to > boot up! (I'm not getting much further than the "Okay, booting > the kernel" message at the moment.) If I don't get anywhere with > that soon, I'll try and delve a little deeper into where it's > going wrong on 2.4.
I've given up on 2.5 for now. I'll continue investigating on 2.4 for now. A cursory examination shows that usb-uhci.c does more fiddling about than uhci.c. I'll add some debugging messages to uhci.c to try and figure out where it's going wrong. Maybe an interrupt isn't being processed fully due to some race condition or something. (Well, it could be a FTDI-specific problem, but it seems to be tied to this particular UHCI driver.) When writing data to the serial port, version 1.3.1 of ftdi_sio submits bulk urbs more rapidly than the current 1.2.1 version. Here is a debug log produced from "dd if=/dev/zero of=/dev/usb/tts/0 bs=16k count=1" where /dev/usb/tts/0 is a FTDI FT8U232AM driven by ftdi_sio v1.3.1 with default stty settings (clocal, -crtscts, opost). I'm using kernel 2.4.21-pre5-ac1 with the stock ftdi_sio v1.2.1 replaced with ftdi_sio v1.3.1. The driver has a pool of 32 URBs it uses for bulk writing and puts at most 64 bytes in each one. I added some commentary at the point in the log where serial data transmission gets stuck: Mar 6 14:08:48 gentoo usbserial.c: serial_open Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_open Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_set_termios Mar 6 14:08:48 gentoo ftdi_sio.c: Setting CS8 Mar 6 14:08:48 gentoo ftdi_sio.c: get_ftdi_divisor - tty_get_baud_rate reports speed 9600 Mar 6 14:08:48 gentoo ftdi_sio.c: get_ftdi_divisor - Baud rate set to 9600 (divisor 0x4138) on chip FT8U232AM Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_set_termios Turning off hardware flow control Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 2048 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 80 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 80 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 64, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 16, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 80 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 1920 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 1 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 1 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 1, data = 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 1 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 1856 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 80 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 80 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 64, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 16, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 80 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 1728 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 1 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 1 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 1, data = 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 1 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 1664 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 80 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 80 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 64, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 16, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 80 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 1536 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 1 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 1 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 1, data = 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 1 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 1472 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 80 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 80 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 64, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 16, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 80 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 1344 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 1 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 1 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 1, data = 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 1 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 1280 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 80 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 80 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 64, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 16, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 80 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 1152 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 1 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 1 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 1, data = 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 1 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 1088 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 80 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 80 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 64, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 16, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 80 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 960 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 1 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 1 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 1, data = 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 1 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 896 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 80 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 80 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 64, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 16, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 80 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 768 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 1 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 1 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 1, data = 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 1 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 704 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 80 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 80 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 64, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 16, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 80 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 576 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 1 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 1 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 1, data = 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 1 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 512 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 80 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 80 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 64, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 16, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 80 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 384 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 1 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 1 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 1, data = 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 1 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 320 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 1 Mar 6 14:08:48 gentoo usbserial.c: port_softint - port 0 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 80 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 80 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 64, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 16, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 80 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 256 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 1 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 1 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 1, data = 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 1 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 192 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 80 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 80 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 64, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 16, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 80 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 64 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 1 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 1 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 1, data = 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 1 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 0 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 1 Mar 6 14:08:48 gentoo usbserial.c: port_softint - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_read_bulk_callback Mar 6 14:08:48 gentoo ftdi_sio.c: Status only: 001o 000o Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 64 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 64 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 64 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 64, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 64 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_read_bulk_callback Mar 6 14:08:48 gentoo ftdi_sio.c: Status only: 001o 000o Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_read_bulk_callback Mar 6 14:08:48 gentoo ftdi_sio.c: Status only: 001o 000o Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_read_bulk_callback Mar 6 14:08:48 gentoo ftdi_sio.c: Status only: 001o 000o Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 1 Mar 6 14:08:48 gentoo usbserial.c: port_softint - port 0 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 64 Mar 6 14:08:48 gentoo usbserial.c: serial_write - port 0, 64 byte(s) Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write port 0, 64 bytes Mar 6 14:08:48 gentoo ftdi_sio.c: data_offset set to 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write - length = 64, data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write write returning: 64 Mar 6 14:08:48 gentoo usbserial.c: serial_write_room - port 0 Mar 6 14:08:48 gentoo ftdi_sio.c: ftdi_write_room - returns 0 At this point, the driver has used up its pool of 32 URBs used for writing data to the serial port, however, the data isn't being sent to the serial port's TX line - it's stuck in the URBs. I left it a short while before interrupting the 'dd' command, thus closing the serial port. The ftdi_close call sends off a few USB control messages to turn off hardware flow control (though it is already off in this case) and drop DTR and RTS. Note that all the data in those 32 pending URBs starts appearing on the serial port's TX line now, i.e. the thing springs back to life: Mar 6 14:09:34 gentoo usbserial.c: serial_close - port 0 Mar 6 14:09:34 gentoo ftdi_sio.c: ftdi_close Mar 6 14:09:34 gentoo ftdi_sio.c: ftdi_read_bulk_callback Mar 6 14:09:34 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:34 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:34 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:34 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:34 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:34 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:34 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:34 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:34 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:34 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:34 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:34 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:34 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:34 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:34 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:34 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:34 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:34 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback Mar 6 14:09:35 gentoo ftdi_sio.c: ftdi_write_bulk_callback - port->open_count = 0 -- -=( Ian Abbott @ MEV Ltd. E-mail: <[EMAIL PROTECTED]> )=- -=( Tel: +44 (0)161 477 1898 FAX: +44 (0)161 718 3587 )=- ------------------------------------------------------- This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger for complex code. Debugging C/C++ programs can leave you feeling lost and disoriented. TotalView can help you find your way. Available on major UNIX and Linux platforms. Try it free. www.etnus.com _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
