#include <asm/cacheflush.h>
 
 #define MXS_AUART_PORTS 5
+#define MXS_AUART_FIFO_SIZE            16
 
 #define AUART_CTRL0                    0x00000000
 #define AUART_CTRL0_SET                        0x00000004
        s->flags |= MXS_AUART_DMA_ENABLED;
        dev_dbg(s->dev, "enabled the DMA support.");
 
+       /* The DMA buffer is now the FIFO the TTY subsystem can use */
+       s->port.fifosize = UART_XMIT_SIZE;
+
        return 0;
 
 err_out:
        writel(AUART_INTR_RXIEN | AUART_INTR_RTIEN | AUART_INTR_CTSMIEN,
                        u->membase + AUART_INTR);
 
+       /* Reset FIFO size (it could have changed if DMA was enabled) */
+       u->fifosize = MXS_AUART_FIFO_SIZE;
+
        /*
         * Enable fifo so all four bytes of a DMA word are written to
         * output (otherwise, only the LSB is written, ie. 1 in 4 bytes)
        s->port.membase = ioremap(r->start, resource_size(r));
        s->port.ops = &mxs_auart_ops;
        s->port.iotype = UPIO_MEM;
-       s->port.fifosize = 16;
+       s->port.fifosize = MXS_AUART_FIFO_SIZE;
        s->port.uartclk = clk_get_rate(s->clk);
        s->port.type = PORT_IMX;
        s->port.dev = s->dev = &pdev->dev;