|
@@ -1639,6 +1639,9 @@ static int pl011_startup(struct uart_port *port)
|
|
|
|
|
|
writew(uap->vendor->ifls, uap->port.membase + UART011_IFLS);
|
|
|
|
|
|
+ /* Assume that TX IRQ doesn't work until we see one: */
|
|
|
+ uap->tx_irq_seen = 0;
|
|
|
+
|
|
|
spin_lock_irq(&uap->port.lock);
|
|
|
|
|
|
/* restore RTS and DTR */
|
|
@@ -1702,7 +1705,7 @@ static void pl011_shutdown(struct uart_port *port)
|
|
|
spin_lock_irq(&uap->port.lock);
|
|
|
uap->im = 0;
|
|
|
writew(uap->im, uap->port.membase + UART011_IMSC);
|
|
|
- writew(0xffff & ~UART011_TXIS, uap->port.membase + UART011_ICR);
|
|
|
+ writew(0xffff, uap->port.membase + UART011_ICR);
|
|
|
spin_unlock_irq(&uap->port.lock);
|
|
|
|
|
|
pl011_dma_shutdown(uap);
|