serial: omap: fix software flow control
Software flow control register bits were not defined correctly. Also clarify the IXON and IXOFF logic to reflect what userspace wants. Cc: stable@vger.kernel.org Tested-by: Shubhrajyoti D <shubhrajyoti@ti.com> Signed-off-by: Vikram Pandita <vikram.pandita@ti.com> Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com> Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
a6b19c333c
commit
957ee7270d
@@ -42,10 +42,10 @@
|
|||||||
#define OMAP_UART_WER_MOD_WKUP 0X7F
|
#define OMAP_UART_WER_MOD_WKUP 0X7F
|
||||||
|
|
||||||
/* Enable XON/XOFF flow control on output */
|
/* Enable XON/XOFF flow control on output */
|
||||||
#define OMAP_UART_SW_TX 0x04
|
#define OMAP_UART_SW_TX 0x8
|
||||||
|
|
||||||
/* Enable XON/XOFF flow control on input */
|
/* Enable XON/XOFF flow control on input */
|
||||||
#define OMAP_UART_SW_RX 0x04
|
#define OMAP_UART_SW_RX 0x2
|
||||||
|
|
||||||
#define OMAP_UART_SYSC_RESET 0X07
|
#define OMAP_UART_SYSC_RESET 0X07
|
||||||
#define OMAP_UART_TCR_TRIG 0X0F
|
#define OMAP_UART_TCR_TRIG 0X0F
|
||||||
|
@@ -617,19 +617,19 @@ serial_omap_configure_xonxoff
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* IXON Flag:
|
* IXON Flag:
|
||||||
* Enable XON/XOFF flow control on output.
|
* Flow control for OMAP.TX
|
||||||
* Transmit XON1, XOFF1
|
* OMAP.RX should listen for XON/XOFF
|
||||||
*/
|
*/
|
||||||
if (termios->c_iflag & IXON)
|
if (termios->c_iflag & IXON)
|
||||||
up->efr |= OMAP_UART_SW_TX;
|
up->efr |= OMAP_UART_SW_RX;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* IXOFF Flag:
|
* IXOFF Flag:
|
||||||
* Enable XON/XOFF flow control on input.
|
* Flow control for OMAP.RX
|
||||||
* Receiver compares XON1, XOFF1.
|
* OMAP.TX should send XON/XOFF
|
||||||
*/
|
*/
|
||||||
if (termios->c_iflag & IXOFF)
|
if (termios->c_iflag & IXOFF)
|
||||||
up->efr |= OMAP_UART_SW_RX;
|
up->efr |= OMAP_UART_SW_TX;
|
||||||
|
|
||||||
serial_out(up, UART_EFR, up->efr | UART_EFR_ECB);
|
serial_out(up, UART_EFR, up->efr | UART_EFR_ECB);
|
||||||
serial_out(up, UART_LCR, UART_LCR_CONF_MODE_A);
|
serial_out(up, UART_LCR, UART_LCR_CONF_MODE_A);
|
||||||
|
Reference in New Issue
Block a user