Trouble with USB serial driver (ftdi_sio.c) on 2.6.31

From: e9hack
Date: Sat Sep 12 2009 - 08:16:35 EST


Hi,

I've some trouble with the USB serial driver (ftdi_sio.c for a FT232RL from FTDI). If the port is opened for the first time, the driver works perfectly. If the port is closed and open again, it isn't possible to read any data from port. Writing data to the port works. The FT232RL must be reconnect to get it working again. A reboot without reconnect doesn't solve this problem. If I look at the debug output, I don't see read requests from ftdi_sio.c. If reading is possible, I see this read messages:

...
Sep 12 13:36:21 vdr kernel: [ 147.338926] /usr/src/linux-2.6.31-rc3/drivers/usb/serial/ftdi_sio.c: Status only: 001o 000o
Sep 12 13:36:21 vdr kernel: [ 147.339921] /usr/src/linux-2.6.31-rc3/drivers/usb/serial/ftdi_sio.c: ftdi_read_bulk_callback - port 0
Sep 12 13:36:21 vdr kernel: [ 147.339927] /usr/src/linux-2.6.31-rc3/drivers/usb/serial/ftdi_sio.c: ftdi_process_read - port 0
Sep 12 13:36:21 vdr kernel: [ 147.339930] /usr/src/linux-2.6.31-rc3/drivers/usb/serial/ftdi_sio.c: Status only: 001o 000o
Sep 12 13:36:21 vdr kernel: [ 147.340931] /usr/src/linux-2.6.31-rc3/drivers/usb/serial/ftdi_sio.c: ftdi_read_bulk_callback - port 0
Sep 12 13:36:21 vdr kernel: [ 147.340936] /usr/src/linux-2.6.31-rc3/drivers/usb/serial/ftdi_sio.c: ftdi_process_read - port 0
Sep 12 13:36:21 vdr kernel: [ 147.340940] /usr/src/linux-2.6.31-rc3/drivers/usb/serial/ftdi_sio.c: Status only: 001o 000o
Sep 12 13:36:21 vdr kernel: [ 147.341927] /usr/src/linux-2.6.31-rc3/drivers/usb/serial/ftdi_sio.c: ftdi_read_bulk_callback - port 0
Sep 12 13:36:21 vdr kernel: [ 147.341932] /usr/src/linux-2.6.31-rc3/drivers/usb/serial/ftdi_sio.c: ftdi_process_read - port 0
Sep 12 13:36:21 vdr kernel: [ 147.341936] /usr/src/linux-2.6.31-rc3/drivers/usb/serial/ftdi_sio.c: Status only: 001o 000o
Sep 12 13:36:21 vdr kernel: [ 147.342924] /usr/src/linux-2.6.31-rc3/drivers/usb/serial/ftdi_sio.c: ftdi_read_bulk_callback - port 0
Sep 12 13:36:21 vdr kernel: [ 147.342928] /usr/src/linux-2.6.31-rc3/drivers/usb/serial/ftdi_sio.c: ftdi_process_read - port 0
Sep 12 13:36:21 vdr kernel: [ 147.342932] /usr/src/linux-2.6.31-rc3/drivers/usb/serial/ftdi_sio.c: Status only: 001o 000o
Sep 12 13:36:21 vdr kernel: [ 147.343924] /usr/src/linux-2.6.31-rc3/drivers/usb/serial/ftdi_sio.c: ftdi_read_bulk_callback - port 0
Sep 12 13:36:21 vdr kernel: [ 147.343929] /usr/src/linux-2.6.31-rc3/drivers/usb/serial/ftdi_sio.c: ftdi_process_read - port 0
Sep 12 13:36:21 vdr kernel: [ 147.343933] ftdi_sio ttyUSB0: ftdi_process_read - length = 7, data = 01 00 aa 40 0a 00 64
Sep 12 13:36:21 vdr kernel: [ 147.344930] /usr/src/linux-2.6.31-rc3/drivers/usb/serial/ftdi_sio.c: ftdi_read_bulk_callback - port 0
Sep 12 13:36:21 vdr kernel: [ 147.344936] /usr/src/linux-2.6.31-rc3/drivers/usb/serial/ftdi_sio.c: ftdi_process_read - port 0
Sep 12 13:36:21 vdr kernel: [ 147.344940] /usr/src/linux-2.6.31-rc3/drivers/usb/serial/ftdi_sio.c: Status only: 001o 000o
Sep 12 13:36:21 vdr kernel: [ 147.345923] /usr/src/linux-2.6.31-rc3/drivers/usb/serial/ftdi_sio.c: ftdi_read_bulk_callback - port 0
Sep 12 13:36:21 vdr kernel: [ 147.345928] /usr/src/linux-2.6.31-rc3/drivers/usb/serial/ftdi_sio.c: ftdi_process_read - port 0
...

This occurs with 2.6.31 and 2.6.31-rc3. I don't see this problem with 2.6.30.5. It exist one exception: If I reboot from 2.6.31 to 2.6.30.5, I get the same problem. If I reconnect the FT232RL, the FT232RL works perfectly. I don't see any problems after closing and reopening.

Regards,
Hartmut
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/