diff options
author | Linus Walleij <[email protected]> | 2012-03-21 20:15:18 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <[email protected]> | 2012-04-06 14:04:33 -0700 |
commit | c3d8b76f61586714cdc5f219ba45592a54caaa55 (patch) | |
tree | adc17723f363e1f603947bf8bd76e378037ac960 | |
parent | dd775ae2549217d3ae09363e3edb305d0fa19928 (diff) |
serial: PL011: move interrupt clearing
Commit 360f748b204275229f8398cb2f9f53955db1503b
"serial: PL011: clear pending interrupts"
attempts to clear interrupts by writing to a
yet-unassigned memory address. This fixes the issue.
The breaking patch is marked for stable so should be
carried along with the other patch.
Cc: Shreshtha Kumar Sahu <[email protected]>
Cc: Russell King <[email protected]>
Cc: stable <[email protected]>
Cc: Nicolas Pitre <[email protected]>
Reported-by: Viresh Kumar <[email protected]>
Signed-off-by: Linus Walleij <[email protected]>
Tested-by: Grant Likely <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
-rw-r--r-- | drivers/tty/serial/amba-pl011.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c index 0c65c9e66986..3d569cd68f58 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c @@ -1946,10 +1946,6 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id) goto unmap; } - /* Ensure interrupts from this UART are masked and cleared */ - writew(0, uap->port.membase + UART011_IMSC); - writew(0xffff, uap->port.membase + UART011_ICR); - uap->vendor = vendor; uap->lcrh_rx = vendor->lcrh_rx; uap->lcrh_tx = vendor->lcrh_tx; @@ -1967,6 +1963,10 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id) uap->port.line = i; pl011_dma_probe(uap); + /* Ensure interrupts from this UART are masked and cleared */ + writew(0, uap->port.membase + UART011_IMSC); + writew(0xffff, uap->port.membase + UART011_ICR); + snprintf(uap->type, sizeof(uap->type), "PL011 rev%u", amba_rev(dev)); amba_ports[i] = uap; |