Messages in this thread | | | Subject | Re: [PATCH V9 4/4] USB: serial: f81232: implement break control | From | "Ji-Ze Hong (Peter Hong)" <> | Date | Mon, 6 May 2019 10:52:27 +0800 |
| |
Hi Johan,
Johan Hovold 於 2019/5/3 下午 02:59 寫道: >> @@ -519,6 +530,7 @@ static int f81232_port_disable(struct usb_serial_port *port) >> static void f81232_set_termios(struct tty_struct *tty, >> struct usb_serial_port *port, struct ktermios *old_termios) >> { >> + struct f81232_private *priv = usb_get_serial_port_data(port); >> u8 new_lcr = 0; >> int status = 0; >> speed_t baudrate; >> @@ -572,11 +584,16 @@ static void f81232_set_termios(struct tty_struct *tty, >> break; >> } >> >> + mutex_lock(&priv->lock); >> + >> + new_lcr |= (priv->shadow_lcr & UART_LCR_SBC); >> status = f81232_set_register(port, LINE_CONTROL_REGISTER, new_lcr); >> if (status) { >> dev_err(&port->dev, "%s failed to set LCR: %d\n", >> __func__, status); >> } >> + >> + mutex_unlock(&priv->lock); > > You forgot to update shadow_lcr here so the line settings would be > corrupted (e.g set to 5 bit words) whenever a break is signalled. > > Did you not test this version of the patch? > > I added the missing update, but please test the code that's in my > usb-next branch in a minute and confirm everything works as expected. >
Thanks for mention and patch the lost parts. I had only tested the break signal and forgot to test full LCR. I'll add it to my test items and it tested well on new usb-next branch after your fix.
BTW, Should I disable break control when port close ?
Thanks.
-- With Best Regards, Peter Hong
| |