Re: [PATCH V9 4/4] USB: serial: f81232: implement break control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux