Skip to content

Commit

Permalink
serial: bfin_uart: Make MMR access compatible with 32 bits bf609 styl…
Browse files Browse the repository at this point in the history
…e controller.

Simplify serial data width calculation and adapt to bf609 LCR bit mask.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Sonic Zhang authored and Greg Kroah-Hartman committed May 17, 2012
1 parent 3c2d0ed commit 59bd234
Showing 1 changed file with 4 additions and 16 deletions.
20 changes: 4 additions & 16 deletions drivers/tty/serial/bfin_uart.c
Original file line number Diff line number Diff line change
Expand Up @@ -594,7 +594,7 @@ static unsigned int bfin_serial_tx_empty(struct uart_port *port)
static void bfin_serial_break_ctl(struct uart_port *port, int break_state)
{
struct bfin_serial_port *uart = (struct bfin_serial_port *)port;
u16 lcr = UART_GET_LCR(uart);
u32 lcr = UART_GET_LCR(uart);
if (break_state)
lcr |= SB;
else
Expand Down Expand Up @@ -1068,7 +1068,7 @@ bfin_serial_console_get_options(struct bfin_serial_port *uart, int *baud,
status = UART_GET_IER(uart) & (ERBFI | ETBEI);
if (status == (ERBFI | ETBEI)) {
/* ok, the port was enabled */
u16 lcr, clk;
u32 lcr, clk;

lcr = UART_GET_LCR(uart);

Expand All @@ -1079,20 +1079,8 @@ bfin_serial_console_get_options(struct bfin_serial_port *uart, int *baud,
else
*parity = 'o';
}
switch (lcr & 0x03) {
case 0:
*bits = 5;
break;
case 1:
*bits = 6;
break;
case 2:
*bits = 7;
break;
case 3:
*bits = 8;
break;
}
*bits = ((lcr & WLS_MASK) >> WLS_OFFSET) + 5;

/* Set DLAB in LCR to Access CLK */
UART_SET_DLAB(uart);

Expand Down

0 comments on commit 59bd234

Please sign in to comment.