USB: serial: make use of UART_LCR_WLEN() + tty_get_char_size()
authorJiri Slaby <jslaby@suse.cz>
Thu, 24 Feb 2022 09:55:56 +0000 (10:55 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 28 Feb 2022 20:49:06 +0000 (21:49 +0100)
Having a generic UART_LCR_WLEN() macro and the tty_get_char_size()
helper, we can remove all those repeated switch-cases in drivers.

Cc: Johan Hovold <johan@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-usb@vger.kernel.org
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Link: https://lore.kernel.org/r/20220224095558.30929-3-jslaby@suse.cz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/serial/ark3116.c
drivers/usb/serial/f81232.c
drivers/usb/serial/f81534.c
drivers/usb/serial/mos7720.c
drivers/usb/serial/quatech2.c
drivers/usb/serial/ssu100.c

index 5dd710e..c0e4df8 100644 (file)
@@ -200,21 +200,8 @@ static void ark3116_set_termios(struct tty_struct *tty,
        __u8 lcr, hcr, eval;
 
        /* set data bit count */
-       switch (cflag & CSIZE) {
-       case CS5:
-               lcr = UART_LCR_WLEN5;
-               break;
-       case CS6:
-               lcr = UART_LCR_WLEN6;
-               break;
-       case CS7:
-               lcr = UART_LCR_WLEN7;
-               break;
-       default:
-       case CS8:
-               lcr = UART_LCR_WLEN8;
-               break;
-       }
+       lcr = UART_LCR_WLEN(tty_get_char_size(cflag));
+
        if (cflag & CSTOPB)
                lcr |= UART_LCR_STOP;
        if (cflag & PARENB)
index 3ad1f51..d9f2025 100644 (file)
@@ -643,21 +643,7 @@ static void f81232_set_termios(struct tty_struct *tty,
        if (C_CSTOPB(tty))
                new_lcr |= UART_LCR_STOP;
 
-       switch (C_CSIZE(tty)) {
-       case CS5:
-               new_lcr |= UART_LCR_WLEN5;
-               break;
-       case CS6:
-               new_lcr |= UART_LCR_WLEN6;
-               break;
-       case CS7:
-               new_lcr |= UART_LCR_WLEN7;
-               break;
-       default:
-       case CS8:
-               new_lcr |= UART_LCR_WLEN8;
-               break;
-       }
+       new_lcr |= UART_LCR_WLEN(tty_get_char_size(tty->termios.c_cflag));
 
        mutex_lock(&priv->lock);
 
index c0bca52..d789c1e 100644 (file)
@@ -970,21 +970,7 @@ static void f81534_set_termios(struct tty_struct *tty,
        if (C_CSTOPB(tty))
                new_lcr |= UART_LCR_STOP;
 
-       switch (C_CSIZE(tty)) {
-       case CS5:
-               new_lcr |= UART_LCR_WLEN5;
-               break;
-       case CS6:
-               new_lcr |= UART_LCR_WLEN6;
-               break;
-       case CS7:
-               new_lcr |= UART_LCR_WLEN7;
-               break;
-       default:
-       case CS8:
-               new_lcr |= UART_LCR_WLEN8;
-               break;
-       }
+       new_lcr |= UART_LCR_WLEN(tty_get_char_size(tty->termios.c_cflag));
 
        baud = tty_get_baud_rate(tty);
        if (!baud)
index 227f43d..1e12b5f 100644 (file)
@@ -1380,30 +1380,12 @@ static void change_port_settings(struct tty_struct *tty,
                return;
        }
 
-       lData = UART_LCR_WLEN8;
        lStop = 0x00;   /* 1 stop bit */
        lParity = 0x00; /* No parity */
 
        cflag = tty->termios.c_cflag;
 
-       /* Change the number of bits */
-       switch (cflag & CSIZE) {
-       case CS5:
-               lData = UART_LCR_WLEN5;
-               break;
-
-       case CS6:
-               lData = UART_LCR_WLEN6;
-               break;
-
-       case CS7:
-               lData = UART_LCR_WLEN7;
-               break;
-       default:
-       case CS8:
-               lData = UART_LCR_WLEN8;
-               break;
-       }
+       lData = UART_LCR_WLEN(tty_get_char_size(cflag));
 
        /* Change the Parity bit */
        if (cflag & PARENB) {
index 971907f..36b1e06 100644 (file)
@@ -281,21 +281,7 @@ static void qt2_set_termios(struct tty_struct *tty,
                        new_lcr |= SERIAL_EVEN_PARITY;
        }
 
-       switch (cflag & CSIZE) {
-       case CS5:
-               new_lcr |= UART_LCR_WLEN5;
-               break;
-       case CS6:
-               new_lcr |= UART_LCR_WLEN6;
-               break;
-       case CS7:
-               new_lcr |= UART_LCR_WLEN7;
-               break;
-       default:
-       case CS8:
-               new_lcr |= UART_LCR_WLEN8;
-               break;
-       }
+       new_lcr |= UART_LCR_WLEN(tty_get_char_size(cflag));
 
        baud = tty_get_baud_rate(tty);
        if (!baud)
index 3baf7c0..181e302 100644 (file)
@@ -231,21 +231,7 @@ static void ssu100_set_termios(struct tty_struct *tty,
                        urb_value |= SERIAL_EVEN_PARITY;
        }
 
-       switch (cflag & CSIZE) {
-       case CS5:
-               urb_value |= UART_LCR_WLEN5;
-               break;
-       case CS6:
-               urb_value |= UART_LCR_WLEN6;
-               break;
-       case CS7:
-               urb_value |= UART_LCR_WLEN7;
-               break;
-       default:
-       case CS8:
-               urb_value |= UART_LCR_WLEN8;
-               break;
-       }
+       urb_value |= UART_LCR_WLEN(tty_get_char_size(cflag));
 
        baud = tty_get_baud_rate(tty);
        if (!baud)