All of lore.kernel.org
 help / color / mirror / Atom feed
From: Biju Das <biju.das.jz@bp.renesas.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Slaby <jirislaby@kernel.org>,
	Geert Uytterhoeven <geert+renesas@glider.be>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	"linux-serial@vger.kernel.org" <linux-serial@vger.kernel.org>,
	Prabhakar Mahadev Lad <prabhakar.mahadev-lad.rj@bp.renesas.com>,
	"linux-renesas-soc@vger.kernel.org" 
	<linux-renesas-soc@vger.kernel.org>,
	"stable@vger.kernel.org" <stable@vger.kernel.org>
Subject: RE: [PATCH v4 3/5] tty: serial: sh-sci: Fix Tx on SCI IP
Date: Thu, 6 Apr 2023 06:50:46 +0000	[thread overview]
Message-ID: <OS0PR01MB59220B26E3627CF3EFC94D5E86919@OS0PR01MB5922.jpnprd01.prod.outlook.com> (raw)
In-Reply-To: <20230321114753.75038-4-biju.das.jz@bp.renesas.com>

Hi All,

I split this patch into 2([1] & [2]) after fixing commit message
and merged with the series[3] to avoid any dependencies.

[1] https://lore.kernel.org/linux-renesas-soc/20230331113346.170602-4-biju.das.jz@bp.renesas.com/T/#u
[2] https://lore.kernel.org/linux-renesas-soc/20230331113346.170602-4-biju.das.jz@bp.renesas.com/T/#md8ae156345aed10bdeba764dcf2253f00b02e38c

[3] https://lore.kernel.org/linux-renesas-soc/20230331113346.170602-4-biju.das.jz@bp.renesas.com/T/#me7f60560fbf24bf361d70ccb6ba223e92a60de9b

Cheers,
Biju


> Subject: [PATCH v4 3/5] tty: serial: sh-sci: Fix Tx on SCI IP
> 
> For SCI, the TE (transmit enable) must be set after setting TIE (transmit
> interrupt enable) or in the same instruction to start the transmission.
> Set TE bit in sci_start_tx() instead of set_termios() for SCI and clear TE
> bit, if circular buffer is empty in sci_transmit_chars().
> 
> Fixes: 93bcefd4c6ba ("serial: sh-sci: Fix setting SCSCR_TIE while
> transferring data")
> Cc: stable@vger.kernel.org
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> ---
> v3->v4:
>  * Updated fixes tag.
> v3:
>  * New patch
> ---
>  drivers/tty/serial/sh-sci.c | 25 +++++++++++++++++++++++--
>  1 file changed, 23 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c index
> 15954ca3e9dc..bcc4152ce043 100644
> --- a/drivers/tty/serial/sh-sci.c
> +++ b/drivers/tty/serial/sh-sci.c
> @@ -596,6 +596,15 @@ static void sci_start_tx(struct uart_port *port)
>  	if (!s->chan_tx || port->type == PORT_SCIFA || port->type ==
> PORT_SCIFB) {
>  		/* Set TIE (Transmit Interrupt Enable) bit in SCSCR */
>  		ctrl = serial_port_in(port, SCSCR);
> +
> +		/*
> +		 * For SCI, TE (transmit enable) must be set after setting TIE
> +		 * (transmit interrupt enable) or in the same instruction to
> start
> +		 * the transmit process.
> +		 */
> +		if (port->type == PORT_SCI)
> +			ctrl |= SCSCR_TE;
> +
>  		serial_port_out(port, SCSCR, ctrl | SCSCR_TIE);
>  	}
>  }
> @@ -834,6 +843,12 @@ static void sci_transmit_chars(struct uart_port *port)
>  			c = xmit->buf[xmit->tail];
>  			xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
>  		} else {
> +			if (port->type == PORT_SCI) {
> +				ctrl = serial_port_in(port, SCSCR);
> +				ctrl &= ~SCSCR_TE;
> +				serial_port_out(port, SCSCR, ctrl);
> +				return;
> +			}
>  			break;
>  		}
> 
> @@ -2580,8 +2595,14 @@ static void sci_set_termios(struct uart_port *port,
> struct ktermios *termios,
>  		sci_set_mctrl(port, port->mctrl);
>  	}
> 
> -	scr_val |= SCSCR_RE | SCSCR_TE |
> -		   (s->cfg->scscr & ~(SCSCR_CKE1 | SCSCR_CKE0));
> +	/*
> +	 * For SCI, TE (transmit enable) must be set after setting TIE
> +	 * (transmit interrupt enable) or in the same instruction to
> +	 * start the transmitting process. So skip setting TE here for SCI.
> +	 */
> +	if (port->type != PORT_SCI)
> +		scr_val |= SCSCR_TE;
> +	scr_val |= SCSCR_RE | (s->cfg->scscr & ~(SCSCR_CKE1 | SCSCR_CKE0));
>  	serial_port_out(port, SCSCR, scr_val | s->hscif_tot);
>  	if ((srr + 1 == 5) &&
>  	    (port->type == PORT_SCIFA || port->type == PORT_SCIFB)) {
> --
> 2.25.1


  reply	other threads:[~2023-04-06  6:51 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-21 11:47 [PATCH v4 0/5] Renesas SCI fixes Biju Das
2023-03-21 11:47 ` [PATCH v4 1/5] tty: serial: sh-sci: Fix transmit end interrupt handler Biju Das
2023-03-27  9:12   ` Geert Uytterhoeven
2023-03-21 11:47 ` [PATCH v4 2/5] tty: serial: sh-sci: Fix Rx on RZ/G2L SCI Biju Das
2023-03-27  9:15   ` Geert Uytterhoeven
2023-03-28 11:32     ` Biju Das
2023-03-29  9:01       ` Greg Kroah-Hartman
2023-03-29  9:06         ` Biju Das
2023-03-29  9:20           ` Greg Kroah-Hartman
2023-03-29  9:31             ` Biju Das
2023-03-21 11:47 ` [PATCH v4 3/5] tty: serial: sh-sci: Fix Tx on SCI IP Biju Das
2023-04-06  6:50   ` Biju Das [this message]
2023-03-21 11:47 ` [PATCH v4 4/5] tty: serial: sh-sci: Add support for tx end interrupt handling Biju Das
2023-03-21 11:47 ` [PATCH v4 5/5] arm64: dts: renesas: r9a07g044: Enable sci0 node using dt overlay Biju Das
2023-03-30 10:03   ` Geert Uytterhoeven
2023-03-30 10:06     ` Biju Das

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=OS0PR01MB59220B26E3627CF3EFC94D5E86919@OS0PR01MB5922.jpnprd01.prod.outlook.com \
    --to=biju.das.jz@bp.renesas.com \
    --cc=geert+renesas@glider.be \
    --cc=gregkh@linuxfoundation.org \
    --cc=jirislaby@kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=prabhakar.mahadev-lad.rj@bp.renesas.com \
    --cc=stable@vger.kernel.org \
    --cc=ysato@users.sourceforge.jp \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.