aboutsummaryrefslogtreecommitdiff
path: root/drivers/tty/serial/efm32-uart.c
diff options
context:
space:
mode:
authorAlex Shi <alex.shi@linaro.org>2017-06-30 14:26:31 +0800
committerAlex Shi <alex.shi@linaro.org>2017-06-30 14:26:31 +0800
commit78278fb152735c686cb13e1ae3bcee78fc2cd154 (patch)
treeed3f669fbb4422bf3dfaa6b20ea992c04c1eac01 /drivers/tty/serial/efm32-uart.c
parent084eedbddaa526f53b20291ee7176be269620301 (diff)
parent92905e331aea278665c4b27fbb13c4547a8bcbb0 (diff)
Merge tag 'v4.9.35' into linux-linaro-lsk-v4.9lsk-v4.9-17.06
This is the 4.9.35 stable release
Diffstat (limited to 'drivers/tty/serial/efm32-uart.c')
-rw-r--r--drivers/tty/serial/efm32-uart.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/tty/serial/efm32-uart.c b/drivers/tty/serial/efm32-uart.c
index 195acc868763..5d476916191b 100644
--- a/drivers/tty/serial/efm32-uart.c
+++ b/drivers/tty/serial/efm32-uart.c
@@ -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_options(struct efm32_uart_port *efm_port,
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;