summaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorJohan Hovold <jhovold@gmail.com>2012-01-16 00:36:53 +0100
committerGreg Kroah-Hartman <gregkh@suse.de>2012-01-24 20:58:46 +0100
commitd1620ca9e7bb0030068c3b45b653defde8839dac (patch)
tree57d4cb2495f0a6e3aea9aa1635a4112a86f3378a /drivers/usb
parentUSB: cp210x: initialise baud rate at open (diff)
downloadlinux-d1620ca9e7bb0030068c3b45b653defde8839dac.tar.xz
linux-d1620ca9e7bb0030068c3b45b653defde8839dac.zip
USB: cp210x: allow more baud rates above 1Mbaud
Allow more baud rates to be set in [1M,2M] baud. Signed-off-by: Johan Hovold <jhovold@gmail.com> Cc: Preston Fick <preston.fick@silabs.com> Cc: stable <stable@vger.kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/serial/cp210x.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
index 5c3e8592fd22..8dbf51a43c45 100644
--- a/drivers/usb/serial/cp210x.c
+++ b/drivers/usb/serial/cp210x.c
@@ -394,10 +394,10 @@ static unsigned int cp210x_quantise_baudrate(unsigned int baud) {
else if (baud <= 491520) baud = 460800;
else if (baud <= 567138) baud = 500000;
else if (baud <= 670254) baud = 576000;
- else if (baud <= 1053257) baud = 921600;
- else if (baud <= 1474560) baud = 1228800;
- else if (baud <= 2457600) baud = 1843200;
- else baud = 3686400;
+ else if (baud < 1000000)
+ baud = 921600;
+ else if (baud > 2000000)
+ baud = 2000000;
return baud;
}
@@ -615,7 +615,8 @@ static void cp210x_change_speed(struct tty_struct *tty,
baud = tty->termios->c_ospeed;
- /* This maps the requested rate to a rate valid on cp2102 or cp2103.
+ /* This maps the requested rate to a rate valid on cp2102 or cp2103,
+ * or to an arbitrary rate in [1M,2M].
*
* NOTE: B0 is not implemented.
*/