summaryrefslogtreecommitdiff
path: root/drivers/tty/serial/sirfsoc_uart.c
diff options
context:
space:
mode:
authorQipan Li <Qipan.Li@csr.com>2015-05-14 06:45:22 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-05-24 12:50:41 -0700
commiteab192ae56fd52416af485e3d7ba2c6982200d71 (patch)
tree85ba7fc14ea669f07498e437239b6a1457405232 /drivers/tty/serial/sirfsoc_uart.c
parentc1b7ac6f4dab63e14ead6a715bc64d39f4a02b2b (diff)
serial: sirf: fix the issue that HW flow control doesn't work for BT
>From HW spec, when rxfifo's data is less than AFC_RX_THD(RX threshhold), RTS signal is active. otherwise, RTS signal is inactive. Crrently the RX threshhold is set as zero, so RTS has no chance to be active. This patch replaces the default 0 by a positive number. Signed-off-by: Qipan Li <Qipan.Li@csr.com> Signed-off-by: Barry Song <Baohua.Song@csr.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/sirfsoc_uart.c')
-rw-r--r--drivers/tty/serial/sirfsoc_uart.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/tty/serial/sirfsoc_uart.c b/drivers/tty/serial/sirfsoc_uart.c
index 1d0d47f2a8c2..48cceaf5338a 100644
--- a/drivers/tty/serial/sirfsoc_uart.c
+++ b/drivers/tty/serial/sirfsoc_uart.c
@@ -344,7 +344,8 @@ static void sirfsoc_uart_enable_ms(struct uart_port *port)
if (sirfport->uart_reg->uart_type == SIRF_REAL_UART) {
wr_regl(port, ureg->sirfsoc_afc_ctrl,
rd_regl(port, ureg->sirfsoc_afc_ctrl) |
- SIRFUART_AFC_TX_EN | SIRFUART_AFC_RX_EN);
+ SIRFUART_AFC_TX_EN | SIRFUART_AFC_RX_EN |
+ SIRFUART_AFC_CTRL_RX_THD);
if (!sirfport->is_atlas7)
wr_regl(port, ureg->sirfsoc_int_en_reg,
rd_regl(port, ureg->sirfsoc_int_en_reg)