Message ID | 20230906151547.840302-1-valentin.caron@foss.st.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | serial: stm32: add support for break control | expand |
On 06. 09. 23, 17:15, Valentin Caron wrote: > From: Erwan Le Ray <erwan.leray@foss.st.com> > > Add support for break control to the stm32 serial driver. > > Signed-off-by: Erwan Le Ray <erwan.leray@foss.st.com> > Signed-off-by: Valentin Caron <valentin.caron@foss.st.com> LGTM Reviewed-by: Jiri Slaby <jirislaby@kernel.org>
diff --git a/drivers/tty/serial/stm32-usart.c b/drivers/tty/serial/stm32-usart.c index 5e9cf0c48813..d03ec69d79fc 100644 --- a/drivers/tty/serial/stm32-usart.c +++ b/drivers/tty/serial/stm32-usart.c @@ -1047,9 +1047,20 @@ static void stm32_usart_stop_rx(struct uart_port *port) stm32_usart_clr_bits(port, ofs->cr3, stm32_port->cr3_irq); } -/* Handle breaks - ignored by us */ static void stm32_usart_break_ctl(struct uart_port *port, int break_state) { + struct stm32_port *stm32_port = to_stm32_port(port); + const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; + unsigned long flags; + + spin_lock_irqsave(&port->lock, flags); + + if (break_state) + stm32_usart_set_bits(port, ofs->rqr, USART_RQR_SBKRQ); + else + stm32_usart_clr_bits(port, ofs->rqr, USART_RQR_SBKRQ); + + spin_unlock_irqrestore(&port->lock, flags); } static int stm32_usart_startup(struct uart_port *port)