Commit 5e1440bc authored by Jiri Slaby's avatar Jiri Slaby Committed by Greg Kroah-Hartman
Browse files

USB: serial: make use of UART_LCR_WLEN() + tty_get_char_size()



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: default avatarJiri Slaby <jslaby@suse.cz>
Link: https://lore.kernel.org/r/20220224095558.30929-3-jslaby@suse.cz


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 988c5bbe
Loading
Loading
Loading
Loading
+2 −15
Original line number Diff line number Diff line
@@ -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)
+1 −15
Original line number Diff line number Diff line
@@ -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);

+1 −15
Original line number Diff line number Diff line
@@ -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)
+1 −19
Original line number Diff line number Diff line
@@ -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) {
+1 −15
Original line number Diff line number Diff line
@@ -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)
Loading