Patch "serial: efm32: Fix parity management in 'efm32_uart_console_get_options()'" has been added to the 4.11-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
serial: efm32: Fix parity management in 'efm32_uart_console_get_options()'
to the 4.11-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
serial-efm32-fix-parity-management-in-efm32_uart_console_get_options.patch
and it can be found in the queue-4.11 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
be40597a1bc173bf9dadccdf5388b956f620ae8fMon Sep 17 00:00:00 2001
From: Christophe JAILLET <[email protected]>
Date: Fri, 12 May 2017 16:35:45 +0200
Subject: serial: efm32: Fix parity management in 'efm32_uart_console_get_options()'
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From: Christophe JAILLET <[email protected]>
commit be40597a1bc173bf9dadccdf5388b956f620ae8f upstream.
UARTn_FRAME_PARITY_ODD is 0x0300UARTn_FRAME_PARITY_EVEN is 0x0200
So if the UART is configured for EVEN parity, it would be reported as ODD. Fix it by correctly testing if the 2 bits are set.
--- drivers/tty/serial/efm32-uart.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)
drivers/tty/serial/efm32-uart.c +8 -3
@@ -27,6 +27,7 @@#define UARTn_FRAME 0x04#define UARTn_FRAME_DATABITS__MASK 0x000f#define UARTn_FRAME_DATABITS (n) ((n) - 3) +#define UARTn_FRAME_PARITY__MASK 0x0300#define UARTn_FRAME_PARITY_NONE 0x0000#define UARTn_FRAME_PARITY_EVEN 0x0200#define UARTn_FRAME_PARITY_ODD 0x0300
@@ -572,12 +573,16 @@ static void efm32_uart_console_get_optio 16 * (4 + (clkdiv >> 6))); frame =efm32_uart_read32 (efm_port, UARTn_FRAME); -if (frame & UARTn_FRAME_PARITY_ODD) +switch (frame & UARTn_FRAME_PARITY__MASK) { +case UARTn_FRAME_PARITY_ODD: *parity ='o' ; -else if (frame & UARTn_FRAME_PARITY_EVEN) +break ; +case UARTn_FRAME_PARITY_EVEN: *parity ='e' ; -else +break ; +default : *parity ='n' ; + } *bits = (frame & UARTn_FRAME_DATABITS__MASK) -UARTn_FRAME_DATABITS (4 ) +4 ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.11/vb2-fix-an-off-by-one-error-in-vb2_plane_vaddr.patch queue-4.11/serial-efm32-fix-parity-management-in-efm32_uart_console_get_options.patch