Re: [PATCH] Bugfix RTS line config in RS485 mode is overwritten in pl011_set_mctrl() function.

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

 



On Fri, Dec 31, 2021 at 05:15:14PM +0000, jmades wrote:
> Based on the "0001-serial-amba-pl011-add-RS485-support.patch" this change is necesarry otherwise the RTS-line will be pulled up in SER_RS485_RTS_BEFORE_SEND mode before sending data. This hinders the driver to receive data, f.ex. when the device is an RS485 slave device.
> 
> Signed-off-by: jmades <jochen@xxxxxxxxx>

Patch is correct, but commit message could be improved:

* Subject should be in imperative mood (by convention), it should be
  prepended by "serial: pl011: " (in line with previous commits touching
  this driver, use "git log --oneline amba-pl011.c") and the trailing dot
  is unnecessary, e.g.:

  "serial: pl011: Fix incorrect rs485 RTS polarity on set_mctrl"

* Commit message should be wrapped at 72 characters (so that it appears
  centered when displayed with "git log" on an 80 chars terminal).
  The reference to "0001-serial-amba-pl011-add-RS485-support.patch"
  should be replaced with a reference to the offending commit, e.g.:

  "Commit 8d479237727c ("serial: amba-pl011: add RS485 support") sought
  to keep RTS deasserted on set_mctrl if rs485 is enabled.  However it
  did so only if deasserted RTS polarity is high.  Fix it in case it's
  low."

  Feel free to copy this to a v2 of your patch and amend as you see fit.

* Add tags for the offending commit:

  Fixes: 8d479237727c ("serial: amba-pl011: add RS485 support")
  Cc: stable@xxxxxxxxxxxxxxx # v5.15+

* Be sure to cc the author of the offending commit.

Thanks,

Lukas

> ---
>  drivers/tty/serial/amba-pl011.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
> index 537f37ac4..1749c1498 100644
> --- a/drivers/tty/serial/amba-pl011.c
> +++ b/drivers/tty/serial/amba-pl011.c
> @@ -1646,8 +1646,12 @@ static void pl011_set_mctrl(struct uart_port *port, unsigned int mctrl)
>  	    container_of(port, struct uart_amba_port, port);
>  	unsigned int cr;
>  
> -	if (port->rs485.flags & SER_RS485_ENABLED)
> -		mctrl &= ~TIOCM_RTS;
> +	if (port->rs485.flags & SER_RS485_ENABLED) {
> +		if (port->rs485.flags & SER_RS485_RTS_AFTER_SEND)
> +			mctrl &= ~TIOCM_RTS;
> +		else
> +			mctrl |= TIOCM_RTS;
> +	}
>  
>  	cr = pl011_read(uap, REG_CR);



[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