Re: [PATCH 2/2] tty: serial: fsl_lpuart: improve lpuart32 registers clearing when shutdown

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

 



On Wed, 9 Nov 2022, Sherry Sun wrote:

> Need to clear the UARTSTAT and UARTMODIR registers when shutdown the
> uart port, also clear the Rx/Tx DMA enable bits and loopback
> configuration bit.

This lacks answer to "Why?" question. Think about somebody not as familiar 
with the HW as you are looking back to this very commit message like 5 
years from now and wondering why this change was made.

Preferrably make a separate change out of all these four changes if the 
answers to why question are different.

It would also help in deciding whether Fixes tag is necessary or not 
since you didn't seem to include.

-- 
 i.

> Signed-off-by: Sherry Sun <sherry.sun@xxxxxxx>
> ---
>  drivers/tty/serial/fsl_lpuart.c | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c
> index f5a0a14fa366..43d9d6a6e94a 100644
> --- a/drivers/tty/serial/fsl_lpuart.c
> +++ b/drivers/tty/serial/fsl_lpuart.c
> @@ -1771,11 +1771,22 @@ static void lpuart32_shutdown(struct uart_port *port)
>  
>  	spin_lock_irqsave(&port->lock, flags);
>  
> +	/* clear statue */
> +	temp = lpuart32_read(&sport->port, UARTSTAT);
> +	lpuart32_write(&sport->port, temp, UARTSTAT);
> +
> +	/* disable Rx/Tx DMA */
> +	temp = lpuart32_read(port, UARTBAUD);
> +	temp &= ~(UARTBAUD_TDMAE | UARTBAUD_RDMAE);
> +	lpuart32_write(port, temp, UARTBAUD);
> +
>  	/* disable Rx/Tx and interrupts */
>  	temp = lpuart32_read(port, UARTCTRL);
>  	temp &= ~(UARTCTRL_TE | UARTCTRL_RE | UARTCTRL_ILIE |
> -			UARTCTRL_TIE | UARTCTRL_TCIE | UARTCTRL_RIE);
> +			UARTCTRL_TIE | UARTCTRL_TCIE | UARTCTRL_RIE |
> +			UARTCTRL_LOOPS);
>  	lpuart32_write(port, temp, UARTCTRL);
> +	lpuart32_write(port, 0, UARTMODIR);
>  
>  	spin_unlock_irqrestore(&port->lock, flags);
>  
> 



[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