aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty/serial/mxs-auart.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/tty/serial/mxs-auart.c')
-rw-r--r--drivers/tty/serial/mxs-auart.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c
index 736e95c1ac4e..eac7b585bc0c 100644
--- a/drivers/tty/serial/mxs-auart.c
+++ b/drivers/tty/serial/mxs-auart.c
@@ -137,6 +137,7 @@ struct mxs_auart_port {
137#define MXS_AUART_DMA_ENABLED 0x2 137#define MXS_AUART_DMA_ENABLED 0x2
138#define MXS_AUART_DMA_TX_SYNC 2 /* bit 2 */ 138#define MXS_AUART_DMA_TX_SYNC 2 /* bit 2 */
139#define MXS_AUART_DMA_RX_READY 3 /* bit 3 */ 139#define MXS_AUART_DMA_RX_READY 3 /* bit 3 */
140#define MXS_AUART_RTSCTS 4 /* bit 4 */
140 unsigned long flags; 141 unsigned long flags;
141 unsigned int ctrl; 142 unsigned int ctrl;
142 enum mxs_auart_type devtype; 143 enum mxs_auart_type devtype;
@@ -639,7 +640,8 @@ static void mxs_auart_settermios(struct uart_port *u,
639 * we can only implement the DMA support for auart 640 * we can only implement the DMA support for auart
640 * in mx28. 641 * in mx28.
641 */ 642 */
642 if (is_imx28_auart(s) && (s->flags & MXS_AUART_DMA_CONFIG)) { 643 if (is_imx28_auart(s) && (s->flags & MXS_AUART_DMA_CONFIG)
644 && test_bit(MXS_AUART_RTSCTS, &s->flags)) {
643 if (!mxs_auart_dma_init(s)) 645 if (!mxs_auart_dma_init(s))
644 /* enable DMA tranfer */ 646 /* enable DMA tranfer */
645 ctrl2 |= AUART_CTRL2_TXDMAE | AUART_CTRL2_RXDMAE 647 ctrl2 |= AUART_CTRL2_TXDMAE | AUART_CTRL2_RXDMAE
@@ -1009,6 +1011,9 @@ static int serial_mxs_probe_dt(struct mxs_auart_port *s,
1009 1011
1010 s->flags |= MXS_AUART_DMA_CONFIG; 1012 s->flags |= MXS_AUART_DMA_CONFIG;
1011 1013
1014 if (of_get_property(np, "fsl,uart-has-rtscts", NULL))
1015 set_bit(MXS_AUART_RTSCTS, &s->flags);
1016
1012 return 0; 1017 return 0;
1013} 1018}
1014 1019