From: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
To: Jiri Slaby <jslaby@suse.cz>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-serial <linux-serial@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v4 08/10] tty: serial: introduce transmit helpers
Date: Tue, 20 Sep 2022 11:43:04 +0300 (EEST) [thread overview]
Message-ID: <962593ae-e38-70ba-1e85-ee5e6b231856@linux.intel.com> (raw)
In-Reply-To: <20220920052049.20507-9-jslaby@suse.cz>
[-- Attachment #1: Type: text/plain, Size: 1615 bytes --]
On Tue, 20 Sep 2022, Jiri Slaby wrote:
> Many serial drivers do the same thing:
> * send x_char if set
> * keep sending from the xmit circular buffer until either
> - the loop reaches the end of the xmit buffer
> - TX is stopped
> - HW fifo is full
> * check for pending characters and:
> - wake up tty writers to fill for more data into xmit buffer
> - stop TX if there is nothing in the xmit buffer
>
> The only differences are:
> * how to write the character to the HW fifo
> * the check of the end condition:
> - is the HW fifo full?
> - is limit of the written characters reached?
>
> So unify the above into two helpers:
> * uart_port_tx_limited() -- it performs the above taking the written
> characters limit into account, and
> * uart_port_tx() -- the same as above, except it only checks the HW
> readiness, not the characters limit.
>
> The HW specific operations (as stated as "differences" above) are passed
> as arguments to the macros. They are:
> * tx_ready -- returns true if HW can accept more data.
> * put_char -- write a character to the device.
> * tx_done -- when the write loop is done, perform arbitrary action
> before potential invocation of ops->stop_tx() happens.
>
> Note that the above are macros. This means the code is generated in
> place and the above 3 arguments are "inlined". I.e. no added penalty by
> generating call instructions for every single character. Nor any
> indirect calls. (As in some previous versions of this patchset.)
>
> Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
--
i.
next prev parent reply other threads:[~2022-09-20 8:44 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-20 5:20 [PATCH v4 00/10] tty: TX helpers Jiri Slaby
2022-09-20 5:20 ` [PATCH v4 01/10] tty: serial: move and cleanup vt8500_tx_empty() Jiri Slaby
2022-09-20 7:53 ` Ilpo Järvinen
2022-09-20 5:20 ` [PATCH v4 02/10] tty: serial: clean up stop-tx part in altera_uart_tx_chars() Jiri Slaby
2022-09-20 8:03 ` Ilpo Järvinen
2022-09-20 14:17 ` Tobias Klauser
2022-09-20 5:20 ` [PATCH v4 03/10] tty: serial: altera_uart_{r,t}x_chars() need only uart_port Jiri Slaby
2022-09-20 8:04 ` Ilpo Järvinen
2022-09-20 14:15 ` Tobias Klauser
2022-09-20 5:20 ` [PATCH v4 04/10] tty: serial: extract lqasc_tx_ready() from lqasc_tx_chars() Jiri Slaby
2022-09-20 8:03 ` Ilpo Järvinen
2022-09-20 5:20 ` [PATCH v4 05/10] tty: serial: extract tx_ready() from __serial_lpc32xx_tx() Jiri Slaby
2022-09-20 8:11 ` Ilpo Järvinen
2022-09-20 5:20 ` [PATCH v4 06/10] tty: serial: switch mpc52xx_uart_int_{r,t}x_chars() to bool Jiri Slaby
2022-09-20 8:37 ` Ilpo Järvinen
2022-09-20 5:20 ` [PATCH v4 07/10] tty: serial: extract serial_omap_put_char() from transmit_chars() Jiri Slaby
2022-09-20 8:37 ` Ilpo Järvinen
2022-09-20 5:20 ` [PATCH v4 08/10] tty: serial: introduce transmit helpers Jiri Slaby
2022-09-20 8:43 ` Ilpo Järvinen [this message]
2022-09-20 5:20 ` [PATCH v4 09/10] tty: serial: use uart_port_tx() helper Jiri Slaby
2022-09-20 8:54 ` Ilpo Järvinen
2022-09-20 8:56 ` Jiri Slaby
2022-09-20 7:58 ` [PATCH v4 10/10] tty: serial: use uart_port_tx_limited() Jiri Slaby
2022-09-20 9:19 ` Ilpo Järvinen
2022-09-20 10:58 ` Jiri Slaby
2022-09-22 14:15 ` [PATCH v4 00/10] tty: TX helpers Greg KH
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=962593ae-e38-70ba-1e85-ee5e6b231856@linux.intel.com \
--to=ilpo.jarvinen@linux.intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=jslaby@suse.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).