Behavior of serial usb driver when unplugged

From: Byron Stanoszek
Date: Tue Jun 08 2004 - 10:52:10 EST


Hi all,

I'm currently using Linux (2.6.7-rc3) in an embedded system with a 8-port
Sealevel SeaLink 2802 USB device. This is a 8-port RS-232/422 device that
allocates /dev/ttyUSB0 through /dev/ttyUSB7 when plugged in.

If I have a process talking to one of the ports, e.g. 'cat < /dev/ttyUSB0', and
I unplug the USB hub, all ports except ttyUSB0 unregister properly.

Without killing the 'cat' process, plugging the hub back in will make it
allocate /dev/ttyUSB1 through /dev/ttyUSB8, thereby offsetting each USB port#
by 1.

When killing the 'cat' process at this point, the kernel reports:

drivers/usb/serial/ftdi_sio.c: error from flowcontrol urb
drivers/usb/serial/ftdi_sio.c: Error from DTR LOW urb
drivers/usb/serial/ftdi_sio.c: Error from RTS LOW urb

and then unregisters /dev/ttyUSB0.


Is there a way to allow "hotplug" of a USB device to reuse /dev/ttyUSB0
regardless if an application still has that particular tty open?

If not, is there a way I could make the serial subsystem can send an EIO errno
or some other notification when the serial device is disconnected?

Thanks for your help,
-Byron

--
Byron Stanoszek Ph: (330) 644-3059
Systems Programmer Fax: (330) 644-8110
Commercial Timesharing Inc. Email: byron@xxxxxxxxxxx
-
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/