From: Johan Hovold <johan@kernel.org>
To: Jiri Slaby <jirislaby@kernel.org>
Cc: "Arnd Bergmann" <arnd@arndb.de>,
"Russell King" <linux@armlinux.org.uk>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
linux-serial <linux-serial@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
"Tobias Klauser" <tklauser@distanz.ch>,
"Richard Genoud" <richard.genoud@gmail.com>,
"Nicolas Ferre" <nicolas.ferre@microchip.com>,
"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
"Claudiu Beznea" <claudiu.beznea@microchip.com>,
"Vladimir Zapolskiy" <vz@mleia.com>,
"Liviu Dudau" <liviu.dudau@arm.com>,
"Sudeep Holla" <sudeep.holla@arm.com>,
"Lorenzo Pieralisi" <lorenzo.pieralisi@arm.com>,
"Shawn Guo" <shawnguo@kernel.org>,
"Sascha Hauer" <s.hauer@pengutronix.de>,
"Pengutronix Kernel Team" <kernel@pengutronix.de>,
"Fabio Estevam" <festevam@gmail.com>,
"NXP Linux Team" <linux-imx@nxp.com>,
"Andreas Färber" <afaerber@suse.de>,
"Manivannan Sadhasivam" <mani@kernel.org>,
"Florian Fainelli" <f.fainelli@gmail.com>,
bcm-kernel-feedback-list@broadcom.com,
"Pali Rohár" <pali@kernel.org>,
"Kevin Cernekee" <cernekee@gmail.com>,
"Palmer Dabbelt" <palmer@dabbelt.com>,
"Paul Walmsley" <paul.walmsley@sifive.com>,
"Orson Zhai" <orsonzhai@gmail.com>,
"Baolin Wang" <baolin.wang7@gmail.com>,
"Chunyan Zhang" <zhang.lyra@gmail.com>,
"Patrice Chotard" <patrice.chotard@foss.st.com>,
linux-riscv@lists.infradead.org
Subject: Re: [PATCH v3 0/4] tty: TX helpers
Date: Fri, 9 Sep 2022 14:41:41 +0200 [thread overview]
Message-ID: <Yxs0heIbpyVmSWWY@hovoldconsulting.com> (raw)
In-Reply-To: <5feff23c-9458-616c-66ce-13cca5829162@kernel.org>
On Fri, Sep 09, 2022 at 12:53:04PM +0200, Jiri Slaby wrote:
> On 07. 09. 22, 16:56, Arnd Bergmann wrote:
> > On Wed, Sep 7, 2022, at 3:52 PM, Russell King (Oracle) wrote:
> >> On Wed, Sep 07, 2022 at 02:36:37PM +0200, Greg Kroah-Hartman wrote:
> >>
> >> Of course, it would have been nicer to see the definition of this
> >> macro, because then we can understand what the "ch" argument is to
> >> this macro, and how that relates to the macro argument that is
> >> shown in the example as a writel().
> >
> > I pulled out the 'ch' variable from the macro to avoid having
> > the macro define local variables that are then passed to the
> > inner expressions.
>
> Note that I had "port" and "ch" as a part of the macro parameters in
> [v2], but it didn't help the situation much.
> >> Maybe a more complete example would help clear up the confusion?
> >> Arnd?
> >
> > Here is a patch on top of the series that would implement the
> > uart_port_tx_helper_limited() and uart_port_tx_helper()
> > macros that can be used directly from drivers in place of defining
> > local functions, with the (alphabetically) first two drivers
> > converted to that.
>
> If there are no objections, I will push the patches this directorin. I
> like this more than [v2] or [v3] (the helper macros). Actually, I
> mentioned this wait_event() style in [v1], but I perhaps simplified the
> concept too much to completely eliminate the need of a wrapper function.
> And that made it too complicated/too hard to understand.
This sounds much better. You also had some users that needed some
preamble which could now go in the same function (e.g.
altera_jtaguart_tx_chars()).
> Except I'd drop the "_helper" part from the name. Originally (in [v1]),
> I had uart_port_tx() and uart_port_tx_limited() functions. In [v2+v3], I
> added _helper to avoid confusion as we were generating a helpers using
> the macros. Yes, technically, uart_port_tx() is still a helper, but I
> think it's superfluous to have it in the name now.
That would also be an in improvement. For the altera example you could
end up with something like:
static void altera_jtaguart_tx_chars(struct altera_jtaguart *pp)
{
struct uart_port *port = &pp->port;
unsigned int space;
space = (readl(port->membase + ALTERA_JTAGUART_CONTROL_REG) &
ALTERA_JTAGUART_CONTROL_WSPACE_MSK) >>
ALTERA_JTAGUART_CONTROL_WSPACE_OFF;
uart_port_tx_chars(port, space,
writel(ch, port->membase + ALTERA_JTAGUART_DATA_REG));
}
which would be understandable.
If there are too many arguments to be passed in, then perhaps you can
explore Arnd's (and you own) suggestion to use inline helpers so that
the arguments are named.
Johan
next prev parent reply other threads:[~2022-09-09 12:41 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-06 10:48 [PATCH v3 0/4] tty: TX helpers Jiri Slaby
2022-09-06 10:48 ` [PATCH v3 1/4] tty: serial: move and cleanup vt8500_tx_empty() Jiri Slaby
2022-09-06 10:48 ` [PATCH v3 2/4] tty: serial: introduce transmit helper generators Jiri Slaby
2022-09-06 10:48 ` [PATCH v3 3/4] tty: serial: use DEFINE_UART_PORT_TX_HELPER() Jiri Slaby
2022-09-06 10:48 ` [PATCH v3 4/4] tty: serial: use DEFINE_UART_PORT_TX_HELPER_LIMITED() Jiri Slaby
2022-09-06 11:30 ` [PATCH v3 0/4] tty: TX helpers Johan Hovold
2022-09-07 7:19 ` Jiri Slaby
2022-09-07 10:16 ` Ilpo Järvinen
2022-09-07 11:59 ` Arnd Bergmann
2022-09-07 12:21 ` Ilpo Järvinen
2022-09-07 12:27 ` Greg Kroah-Hartman
2022-09-07 12:32 ` Ilpo Järvinen
2022-09-07 12:36 ` Greg Kroah-Hartman
2022-09-07 12:56 ` Ilpo Järvinen
2022-09-07 13:47 ` Arnd Bergmann
2022-09-07 13:52 ` Russell King (Oracle)
2022-09-07 14:56 ` Arnd Bergmann
2022-09-09 10:53 ` Jiri Slaby
2022-09-09 11:06 ` Greg Kroah-Hartman
2022-09-09 12:41 ` Johan Hovold [this message]
2022-09-09 12:23 ` Johan Hovold
2022-09-09 12:13 ` Johan Hovold
2022-09-07 9:54 ` Ilpo Järvinen
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=Yxs0heIbpyVmSWWY@hovoldconsulting.com \
--to=johan@kernel.org \
--cc=afaerber@suse.de \
--cc=alexandre.belloni@bootlin.com \
--cc=arnd@arndb.de \
--cc=baolin.wang7@gmail.com \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=cernekee@gmail.com \
--cc=claudiu.beznea@microchip.com \
--cc=f.fainelli@gmail.com \
--cc=festevam@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=jirislaby@kernel.org \
--cc=kernel@pengutronix.de \
--cc=linux-imx@nxp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-serial@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=liviu.dudau@arm.com \
--cc=lorenzo.pieralisi@arm.com \
--cc=mani@kernel.org \
--cc=nicolas.ferre@microchip.com \
--cc=orsonzhai@gmail.com \
--cc=pali@kernel.org \
--cc=palmer@dabbelt.com \
--cc=patrice.chotard@foss.st.com \
--cc=paul.walmsley@sifive.com \
--cc=richard.genoud@gmail.com \
--cc=s.hauer@pengutronix.de \
--cc=shawnguo@kernel.org \
--cc=sudeep.holla@arm.com \
--cc=tklauser@distanz.ch \
--cc=vz@mleia.com \
--cc=zhang.lyra@gmail.com \
/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