From: Gabriel Somlo <gsomlo@gmail.com>
To: linux-kernel@vger.kernel.org
Cc: linux-serial@vger.kernel.org, gregkh@linuxfoundation.org,
jirislaby@kernel.org, kgugala@antmicro.com,
mholenko@antmicro.com, joel@jms.id.au,
david.abdurachmanov@gmail.com, florent@enjoy-digital.fr,
geert@linux-m68k.org, ilpo.jarvinen@linux.intel.com
Subject: [PATCH v6 00/14] serial: liteuart: add IRQ support
Date: Wed, 23 Nov 2022 08:04:46 -0500 [thread overview]
Message-ID: <20221123130500.1030189-1-gsomlo@gmail.com> (raw)
Add IRQ support to the LiteX LiteUART serial interface
Changes from v5:
- picked up r/b Geert Uytterhoeven on select subset of commits
- 09/14 ("clean up rx loop variables"):
- eliminate `status` variable altogether as its value is known
and constant inside the loop;
- switch `ch` to `u8`, to match the call *producing* it
(`litex_read8()`) instead of those consuming its value.
- 12/14 ("add IRQ support for the RX path"):
- s/dev_err()/dev_warn()/ when falling back to polling in
`liteuart_startup()`
- use `spin_[lock_irqsave|unlock_irqrestore]()` in the interrupt
handler, since the same code may also be called in "serving_softirq"
context when using a poll timer instead of interrupts
> Changes from v4:
> - picked up r/b Ilpo Järvinen on 12/14 and 13/14
> - 12/14 ("add IRQ support for the RX path"): using dev_err() instead
> of combining pr_err() and pr_fmt(); also, remove superfluous comment
>
> Changes from v3:
> - picked up r/b Ilpo Järvinen on select subset of commits
> - rebased entire series on top of tty-next tree
> - 2/14 ("use bit number macros"): explicitly include <linux/bits.h>
> - 3/14 ("remove unused uart_ops stubs"): don't add gratuitous comment
> removed later on in the series
> - 12/14 ("add IRQ support for the RX path"): add shadow irq register
> to support polling mode and avoid reading hardware mmio irq register
> to learn which irq flags are enabled
> - this also simplifies both liteuart_interrupt() and liteuart_startup()
> - 13/14 ("add IRQ support for the TX path"):
> - removed superfluous curly braces from liteuart_interrupt()
> - simplified [start|stop]_tx() by using shadow irq register from 12/14
> - simplified liteuart_tx_chars() by rebasing on top of tty-next tree
>
> Changes from v2:
> - further split out "separate RX loop from poll timer" into
> dedicated patches highlighting additional changes explicitly:
> - factoring out tty_flip_buffer_push() (6/14)
> - ack only RX events in RX loop (7/14)
> - pass constant flag to uart_insert_char() directly (8/14)
> - fix variable types in rx loop (9/14)
> - separating RX loop from poll timer (10/14)
> - added patch (11/14) to move function definitions to a more
> convenient location, making subsequent changes easier to read
> in diff patch form.
> - fixes and clarifications for RX path IRQ support patch (now 12/14):
> - only return IRQ_HANDLED for RX events
> - use pr_fmt() to improve style of irq setup error message
> - remove unnecessary locking from around single-register access
> - modify TX path to support both IRQ-mode and polling (13/14)
> - move polling-only liteuart_putchar() behind same conditional
> (CONFIG_SERIAL_LITEUART_CONSOLE) as the rest of the code that's
> still using it.
>
> Changes from v1:
> - split minor cosmetic changes out into individual patches
> (1/3 became 1..5/7)
> - patches 6/7 and 7/7 unchanged (used to be 2/3 and 3/3)
Gabriel Somlo (14):
serial: liteuart: use KBUILD_MODNAME as driver name
serial: liteuart: use bit number macros
serial: liteuart: remove unused uart_ops stubs
serial: liteuart: don't set unused port fields
serial: liteuart: minor style fix in liteuart_init()
serial: liteuart: move tty_flip_buffer_push() out of rx loop
serial: liteuart: rx loop should only ack rx events
serial: liteuart: simplify passing of uart_insert_char() flag
serial: liteuart: clean up rx loop variables
serial: liteuart: separate rx loop from poll timer
serial: liteuart: move function definitions
serial: liteuart: add IRQ support for the RX path
serial: liteuart: add IRQ support for the TX path
serial: liteuart: move polling putchar() function
drivers/tty/serial/liteuart.c | 217 +++++++++++++++++++++-------------
1 file changed, 132 insertions(+), 85 deletions(-)
--
2.38.1
next reply other threads:[~2022-11-23 13:25 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-23 13:04 Gabriel Somlo [this message]
2022-11-23 13:04 ` [PATCH v6 01/14] serial: liteuart: use KBUILD_MODNAME as driver name Gabriel Somlo
2022-11-23 13:04 ` [PATCH v6 02/14] serial: liteuart: use bit number macros Gabriel Somlo
2022-11-23 13:04 ` [PATCH v6 03/14] serial: liteuart: remove unused uart_ops stubs Gabriel Somlo
2022-11-23 13:04 ` [PATCH v6 04/14] serial: liteuart: don't set unused port fields Gabriel Somlo
2022-11-23 13:04 ` [PATCH v6 05/14] serial: liteuart: minor style fix in liteuart_init() Gabriel Somlo
2022-11-23 13:04 ` [PATCH v6 06/14] serial: liteuart: move tty_flip_buffer_push() out of rx loop Gabriel Somlo
2022-11-23 13:04 ` [PATCH v6 07/14] serial: liteuart: rx loop should only ack rx events Gabriel Somlo
2022-11-23 13:04 ` [PATCH v6 08/14] serial: liteuart: simplify passing of uart_insert_char() flag Gabriel Somlo
2022-11-23 13:04 ` [PATCH v6 09/14] serial: liteuart: clean up rx loop variables Gabriel Somlo
2022-11-23 13:04 ` [PATCH v6 10/14] serial: liteuart: separate rx loop from poll timer Gabriel Somlo
2022-11-23 13:04 ` [PATCH v6 11/14] serial: liteuart: move function definitions Gabriel Somlo
2022-11-23 13:04 ` [PATCH v6 12/14] serial: liteuart: add IRQ support for the RX path Gabriel Somlo
2022-11-23 13:04 ` [PATCH v6 13/14] serial: liteuart: add IRQ support for the TX path Gabriel Somlo
2022-11-23 13:05 ` [PATCH v6 14/14] serial: liteuart: move polling putchar() function Gabriel Somlo
2022-11-24 7:02 ` [PATCH v6 00/14] serial: liteuart: add IRQ support Jiri Slaby
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=20221123130500.1030189-1-gsomlo@gmail.com \
--to=gsomlo@gmail.com \
--cc=david.abdurachmanov@gmail.com \
--cc=florent@enjoy-digital.fr \
--cc=geert@linux-m68k.org \
--cc=gregkh@linuxfoundation.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=jirislaby@kernel.org \
--cc=joel@jms.id.au \
--cc=kgugala@antmicro.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=mholenko@antmicro.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
all inboxes | Powered by JetHome®