|
diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c |
|
index 3835106..dcba930 100644 |
|
--- a/drivers/usb/serial/cp210x.c |
|
+++ b/drivers/usb/serial/cp210x.c |
|
@@ -201,6 +201,8 @@ static struct usb_serial_driver cp210x_device = { |
|
#define CP210X_EMBED_EVENTS 0x15 |
|
#define CP210X_GET_EVENTSTATE 0x16 |
|
#define CP210X_SET_CHARS 0x19 |
|
+#define CP210X_GET_BAUDRATE 0x1d |
|
+#define CP210X_SET_BAUDRATE 0x1e |
|
|
|
/* CP210X_IFC_ENABLE */ |
|
#define UART_ENABLE 0x0001 |
|
@@ -459,16 +461,12 @@ static void cp210x_get_termios_port(struct usb_serial_port *port, |
|
unsigned int *cflagp, unsigned int *baudp) |
|
{ |
|
unsigned int cflag, modem_ctl[4]; |
|
- unsigned int baud; |
|
+ u32 baud; |
|
unsigned int bits; |
|
|
|
dbg("%s - port %d", __func__, port->number); |
|
|
|
- cp210x_get_config(port, CP210X_GET_BAUDDIV, &baud, 2); |
|
- /* Convert to baudrate */ |
|
- if (baud) |
|
- baud = cp210x_quantise_baudrate((BAUD_RATE_GEN_FREQ + baud/2)/ baud); |
|
- |
|
+ cp210x_get_config(port, CP210X_GET_BAUDRATE, &baud, sizeof(baud)); |
|
dbg("%s - baud rate = %d", __func__, baud); |
|
*baudp = baud; |
|
|
|
@@ -580,7 +578,8 @@ static void cp210x_set_termios(struct tty_struct *tty, |
|
struct usb_serial_port *port, struct ktermios *old_termios) |
|
{ |
|
unsigned int cflag, old_cflag; |
|
- unsigned int baud = 0, bits; |
|
+ u32 baud; |
|
+ unsigned int bits; |
|
unsigned int modem_ctl[4]; |
|
|
|
dbg("%s - port %d", __func__, port->number); |
|
@@ -595,8 +594,8 @@ static void cp210x_set_termios(struct tty_struct *tty, |
|
/* If the baud rate is to be updated*/ |
|
if (baud != tty_termios_baud_rate(old_termios) && baud != 0) { |
|
dbg("%s - Setting baud rate to %d baud", __func__, baud); |
|
- if (cp210x_set_config_single(port, CP210X_SET_BAUDDIV, |
|
- ((BAUD_RATE_GEN_FREQ + baud/2) / baud))) { |
|
+ if (cp210x_set_config(port, CP210X_SET_BAUDRATE, |
|
+ &baud, sizeof(baud))) { |
|
dbg("Baud rate requested not supported by device"); |
|
baud = tty_termios_baud_rate(old_termios); |
|
} |
|
-- |