diff options
author | Johan Hovold <jhovold@gmail.com> | 2009-11-22 21:25:20 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-03-02 14:53:04 -0800 |
commit | 8c4f99cd54469d643e27a743045da848f7b63fe5 (patch) | |
tree | 99ceced5dcbba8a1f5dfd6c77371963a399ddbc8 /drivers/usb/serial | |
parent | b4fc2aeef23b4b35809054ddf495f9efdc3ac9d6 (diff) |
USB: ftdi_sio: fix initialisation of latency timeout
Latency timeout was read but never stored on port probe. When
ASYNC_LOW_LATENCY was cleared the device timeout would get set to 0
rather than the default 16ms.
Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/serial')
-rw-r--r-- | drivers/usb/serial/ftdi_sio.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c index ffc79eea963..9979d4920a3 100644 --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c @@ -1184,7 +1184,6 @@ static int read_latency_timer(struct usb_serial_port *port) unsigned short latency = 0; int rv = 0; - dbg("%s", __func__); rv = usb_control_msg(udev, @@ -1197,8 +1196,9 @@ static int read_latency_timer(struct usb_serial_port *port) if (rv < 0) { dev_err(&port->dev, "Unable to read latency timer: %i\n", rv); return -EIO; - } - return latency; + } else + priv->latency = latency; + return rv; } static int get_serial_info(struct usb_serial_port *port, @@ -1584,7 +1584,8 @@ static int ftdi_sio_port_probe(struct usb_serial_port *port) ftdi_determine_type(port); ftdi_set_max_packet_size(port); - read_latency_timer(port); + if (read_latency_timer(port) < 0) + priv->latency = 16; create_sysfs_attrs(port); return 0; } |