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

Reply via email to