]> git.ipfire.org Git - thirdparty/linux.git/commit - drivers/tty/serial/stm32-usart.c
serial: stm32-usart: Correct CSIZE, bits, and parity
authorIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Thu, 19 May 2022 08:18:07 +0000 (11:18 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 May 2022 16:32:40 +0000 (18:32 +0200)
commit1deeda8d2877c18bc2b9eeee10dd6d2628852848
tree470b7755127ee0151c42a870f449e44b017a7884
parent52bb1cb7118564166b04d52387bd8403632f5190
serial: stm32-usart: Correct CSIZE, bits, and parity

Add CSIZE sanitization for unsupported CSIZE configurations. In
addition, if parity is asked for but CSx was unsupported, the sensible
result is CS8+parity which requires setting USART_CR1_M0 like with 9
bits.

Incorrect CSIZE results in miscalculation of the frame bits in
tty_get_char_size() or in its predecessor where the roughly the same
code is directly within uart_update_timeout().

Fixes: c8a9d043947b (serial: stm32: fix word length configuration)
Cc: Erwan Le Ray <erwan.leray@st.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/r/20220519081808.3776-9-ilpo.jarvinen@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/stm32-usart.c