diff options
author | Gary Robertson <gary.robertson@linaro.org> | 2014-03-03 06:42:33 +0800 |
---|---|---|
committer | Gary Robertson <gary.robertson@linaro.org> | 2014-03-03 06:42:33 +0800 |
commit | de4c0af15b38d383e79555be2d72e7958f1c0756 (patch) | |
tree | a2f299215c432fdf00354a1307e22f7b8b8c4e40 /drivers/tty/serial/amba-pl011.c | |
parent | 77fe582038582f6aa29a8e76ed319e05a69286e0 (diff) | |
parent | 61dde96f97bb5b1ed4c11caf9a857d55ad8f6e17 (diff) |
Merge tag 'v3.10.32' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into linux-lnglinux-lng-v3.10.32-final
This is the 3.10.32 stable release
Diffstat (limited to 'drivers/tty/serial/amba-pl011.c')
-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 e2774f9ecd59..7a55fe70434a 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c @@ -1543,6 +1543,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); @@ -1567,6 +1569,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 */ @@ -1636,11 +1640,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 |