[PATCH] serial: PL011: move interrupt clearing
viresh kumar
viresh.linux at gmail.com
Wed Mar 21 21:04:37 EDT 2012
On Thu, Mar 22, 2012 at 12:45 AM, Linus Walleij
<linus.walleij at linaro.org> wrote:
> 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 <shreshthakumar.sahu at stericsson.com>
> Cc: Russell King <linux at arm.linux.org.uk>
> Cc: stable <stable at vger.kernel.org>
> Reported-by: Viresh Kumar <viresh.kumar at st.com>
> Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
> ---
> drivers/tty/serial/amba-pl011.c | 8 ++++----
> 1 files changed, 4 insertions(+), 4 deletions(-)
You missed me in CC??
>
> diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
> index 7e01399..4ed35c5 100644
> --- a/drivers/tty/serial/amba-pl011.c
> +++ b/drivers/tty/serial/amba-pl011.c
> @@ -1930,10 +1930,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;
> @@ -1951,6 +1947,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;
Reviewed-by: Viresh Kumar <viresh.kumar at st.com>
--
viresh
More information about the linux-arm-kernel
mailing list