USB: serial: xr: fix CSIZE handling
Subsystems (2)
Johan Hovold
maintainerPATCH 1/1 USB: serial: xr: fix CSIZE handling
The XR21V141X does not have a 5- or 6-bit mode, but the current implementation failed to properly restore the old setting when CS5 or CS6 was requested. Instead an invalid request would be sent to the device.
Fixes c2d405aa86b4 ("USB: serial: add MaxLinear/Exar USB to Serial driver")
Signed-off-by Johan Hovold <[email protected]>
--- drivers/usb/serial/xr_serial.c | 5 +++++ 1 file changed, 5 insertions(+)
drivers/usb/serial/xr_serial.c +5 -0
@@ -467,6 +467,11 @@ static void xr_set_termios(struct tty_struct *tty, termios->c_cflag &= ~CSIZE ;if (old_termios) termios->c_cflag |= old_termios->c_cflag &CSIZE ; +else + termios->c_cflag |=CS8 ; + +if (C_CSIZE (tty) ==CS7 ) + bits |=XR21V141X_UART_DATA_7 ;else bits |=XR21V141X_UART_DATA_8 ;break ;
Signature · 1 line
2.26.3
Quoted 7 lines · Johan Hovold
The XR21V141X does not have a 5- or 6-bit mode, but the current implementation failed to properly restore the old setting when CS5 or CS6 was requested. Instead an invalid request would be sent to the device.
Fixes c2d405aa86b4 ("USB: serial: add MaxLinear/Exar USB to Serial driver")Signed-off-by Johan Hovold <[email protected]>
Reviewed-by Manivannan Sadhasivam <[email protected]>
Thanks,
Mani
Quoted 23 lines
--- drivers/usb/serial/xr_serial.c | 5 +++++ 1 file changed, 5 insertions(+)drivers/usb/serial/xr_serial.c +5
-0@@ -467,6 +467,11 @@ static void xr_set_termios(struct tty_struct *tty, termios->c_cflag &= ~CSIZE ;if (old_termios) termios->c_cflag |= old_termios->c_cflag &CSIZE ; +else + termios->c_cflag |=CS8 ; + +if (C_CSIZE (tty) ==CS7 ) + bits |=XR21V141X_UART_DATA_7 ;else bits |=XR21V141X_UART_DATA_8 ;break ;Signature · 1 line
2.26.3