]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/serial/atmel_serial.c
atmel_serial might lose modem status change
[mv-sheeva.git] / drivers / serial / atmel_serial.c
index d5efd6c77904aef0dbb74641820b8937890f4ae5..8f58f7ff0dd7db29af5c749dbeda386b8c6c10b9 100644 (file)
@@ -579,7 +579,7 @@ static void atmel_tx_dma(struct uart_port *port)
        /* disable PDC transmit */
        UART_PUT_PTCR(port, ATMEL_PDC_TXTDIS);
 
-       if (!uart_circ_empty(xmit)) {
+       if (!uart_circ_empty(xmit) && !uart_tx_stopped(port)) {
                dma_sync_single_for_device(port->dev,
                                           pdc->dma_addr,
                                           pdc->dma_size,
@@ -877,6 +877,10 @@ static int atmel_startup(struct uart_port *port)
                }
        }
 
+       /* Save current CSR for comparison in atmel_tasklet_func() */
+       atmel_port->irq_status_prev = UART_GET_CSR(port);
+       atmel_port->irq_status = atmel_port->irq_status_prev;
+
        /*
         * Finally, enable the serial port
         */