diff options
author | Jon Medhurst <tixy@linaro.org> | 2013-12-03 17:38:17 +0000 |
---|---|---|
committer | Jon Medhurst <tixy@linaro.org> | 2013-12-03 17:38:17 +0000 |
commit | 617c7595a30cccd12142e821b5764b49dc21a153 (patch) | |
tree | 3c1c185302431208ca5012a542493b2060f42aff | |
parent | 9a6225f339bcb90013586d9e5e2e2e28fff8e22a (diff) | |
parent | d77ae2c81518b1044df1d0df92fd8da5a180502f (diff) |
Merge branch 'tracking-armlt-misc-fixes' into integration-linaro-vexpresstracking-integration-linaro-vexpress-ll-20131204.0tracking-integration-linaro-vexpress-ll-20131203.0
-rw-r--r-- | drivers/tty/serial/amba-pl011.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c index 7203864992a5..a0dfb86f9880 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c @@ -1537,6 +1537,8 @@ static int pl011_startup(struct uart_port *port) /* * Provoke TX FIFO interrupt into asserting. */ + spin_lock_irq(&uap->port.lock); + cr = UART01x_CR_UARTEN | UART011_CR_TXE | UART011_CR_LBE; writew(cr, uap->port.membase + UART011_CR); writew(0, uap->port.membase + UART011_FBRD); @@ -1561,6 +1563,8 @@ static int pl011_startup(struct uart_port *port) cr |= UART01x_CR_UARTEN | UART011_CR_RXE | UART011_CR_TXE; writew(cr, uap->port.membase + UART011_CR); + spin_unlock_irq(&uap->port.lock); + /* * initialise the old status of the modem signals */ @@ -1629,11 +1633,13 @@ static void pl011_shutdown(struct uart_port *port) * it during startup(). */ uap->autorts = false; + spin_lock_irq(&uap->port.lock); cr = readw(uap->port.membase + UART011_CR); uap->old_cr = cr; cr &= UART011_CR_RTS | UART011_CR_DTR; cr |= UART01x_CR_UARTEN | UART011_CR_TXE; writew(cr, uap->port.membase + UART011_CR); + spin_unlock_irq(&uap->port.lock); /* * disable break condition and fifos |