Re: [PATCH] serial: imx: mask RI interrupt at startup when in DTE mode

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

 



Hello Lucas,

On Thu, Aug 11, 2016 at 11:23:28AM +0200, Lucas Stach wrote:
> The driver doesn't handle this interrupt, so it should be disabled
> to avoid IRQ storms. This IRQ is only available if the UART is in
> DTE mode.
> 
> Signed-off-by: Lucas Stach <l.stach@xxxxxxxxxxxxxx>
> ---
>  drivers/tty/serial/imx.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
> index 0df2b1c091ae..9d2280a75e00 100644
> --- a/drivers/tty/serial/imx.c
> +++ b/drivers/tty/serial/imx.c
> @@ -2085,6 +2085,11 @@ static int serial_imx_probe(struct platform_device *pdev)
>  	reg &= ~(UCR1_ADEN | UCR1_TRDYEN | UCR1_IDEN | UCR1_RRDYEN |
>  		 UCR1_TXMPTYEN | UCR1_RTSDEN);
>  	writel_relaxed(reg, sport->port.membase + UCR1);
> +	if (sport->dte_mode) {
> +		reg = readl_relaxed(sport->port.membase + UCR3);
> +		reg &= ~UCR3_RI;
> +		writel_relaxed(reg, sport->port.membase + UCR3);
> +	}

imx_startup already has

	if (!is_imx1_uart(sport)) {
		temp = readl(sport->port.membase + UCR3);

		/*
		 * The effect of RI and DCD differs depending on the UFCR_DCEDTE
		 * bit. In DCE mode they control the outputs, in DTE mode they
		 * enable the respective irqs. At least the DCD irq cannot be
		 * cleared on i.MX25 at least, so it's not usable and must be
		 * disabled. I don't have test hardware to check if RI has the
		 * same problem but I consider this likely so it's disabled for
		 * now, too.
		 */
		temp |= IMX21_UCR3_RXDMUXSEL | UCR3_ADNIMP |
			UCR3_DTRDEN | UCR3_RI | UCR3_DCD;

		if (sport->dte_mode)
			temp &= ~(UCR3_RI | UCR3_DCD);

		writel(temp, sport->port.membase + UCR3);
	}

which looks very similar. I assume this is just too late?

Can you comment the comment? I.e. is it possible to handle RI?
Can you rework your patch to not have to places that handle unsetting
UCR3_RI? Which platform are you working with? Note that the existing
handling is more correct in regard to i.MX1 which doesn't have that
UCR3_RI bit.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
--
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