Re: [PATCH] serial: 8250_exar: Read INT0 from slave device, too

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2018-07-24 at 14:23 -0500, Aaron Sierra wrote:
> The sleep wake-up refactoring that I introduced in
> 
>   commit c7e1b4059075 ("tty: serial: exar: Relocate sleep wake-up
> handling")
> 
> did not account for devices with a slave device on the expansion port.
> This patch pokes the INT0 register in the slave device, if present, in
> order to ensure that MSI interrupts don't get permanently "stuck"
> because of a sleep wake-up interrupt as described here:
> 
>   commit 2c0ac5b48a35 ("serial: exar: Fix stuck MSIs")
> 
> This also converts an ioread8() to readb() in order to provide visual
> consistency with the MMIO-only accessors used elsewhere in the driver.

Thanks a lot!

Fixes: c7e1b4059075 ("tty: serial: exar: Relocate sleep wake-up
handling")

Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>

> Reported-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> Signed-off-by: Aaron Sierra <asierra@xxxxxxxxxxx>
> ---
>  drivers/tty/serial/8250/8250_exar.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/tty/serial/8250/8250_exar.c
> b/drivers/tty/serial/8250/8250_exar.c
> index 7a98acd..0089aa3 100644
> --- a/drivers/tty/serial/8250/8250_exar.c
> +++ b/drivers/tty/serial/8250/8250_exar.c
> @@ -445,7 +445,11 @@ static irqreturn_t exar_misc_handler(int irq,
> void *data)
>  	struct exar8250 *priv = data;
>  
>  	/* Clear all PCI interrupts by reading INT0. No effect on IIR
> */
> -	ioread8(priv->virt + UART_EXAR_INT0);
> +	readb(priv->virt + UART_EXAR_INT0);
> +
> +	/* Clear INT0 for Expansion Interface slave ports, too */
> +	if (priv->board->num_ports > 8)
> +		readb(priv->virt + 0x2000 + UART_EXAR_INT0);
>  
>  	return IRQ_HANDLED;
>  }

-- 
Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Intel Finland Oy
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux