From: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
To: Andrew Lunn <andrew@lunn.ch>
Cc: Linus Walleij <linus.walleij@linaro.org>,
Bartosz Golaszewski <brgl@bgdev.pl>,
linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org,
Gregor Herburger <gregor.herburger@tq-group.com>,
linux@ew.tq-group.com
Subject: Re: [PATCH 8/8] gpio: tqmx86: fix broken IRQ_TYPE_EDGE_BOTH interrupt type
Date: Wed, 29 May 2024 14:44:30 +0200 [thread overview]
Message-ID: <954848a9ee2967908bc40069c94cea4407e7de7f.camel@ew.tq-group.com> (raw)
In-Reply-To: <9f8107e1-4a80-4f20-8862-f85aed578cc6@lunn.ch>
On Wed, 2024-05-29 at 14:37 +0200, Andrew Lunn wrote:
> On Wed, May 29, 2024 at 09:45:20AM +0200, Matthias Schiffer wrote:
> > The TQMx86 GPIO controller only supports falling and rising edge
> > triggers, but not both. Fix this by implementing a software both-edge
> > mode that toggles the edge type after every interrupt.
>
> Do you have a real use case for this, one that will handle lost
> interrupts because it cannot swap edge quick enough?
>
> I personally would not do this, because it is dangerous, it gives the
> impression the device can do both, when in fact it cannot reliably.
>
> For me, the correct fix is to return EOPNOTSUPP or EINVAL for BOTH.
>
This was the first thing I tried as well, but it seems that supporting IRQ_TYPE_EDGE_BOTH is
mandatory for all GPIO drivers (not doing so results in various error messages when attemting to use
*any* type of interrupt for the GPIO; I don't remember the exact errors). For this reason, several
drivers implement a similar software solution when the hardware doesn't support it.
Many drivers implement this in a fragile way that will easily break when an edge is missed. On the
TQMx86 we are lucky, and this software implementation is actually robust and will not stop reporting
edges when one is missed. The reason is explained in detail in the long comment added by this patch.
Matthias
next prev parent reply other threads:[~2024-05-29 12:44 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-29 7:45 [PATCH 0/8] gpio-tqmx86 fixes Matthias Schiffer
2024-05-29 7:45 ` [PATCH 1/8] gpio: tqmx86: fix typo in Kconfig label Matthias Schiffer
2024-05-29 11:58 ` Andrew Lunn
2024-05-29 7:45 ` [PATCH 2/8] gpio: tqmx86: introduce shadow register for GPIO output value Matthias Schiffer
2024-05-29 12:02 ` Andrew Lunn
2024-05-29 7:45 ` [PATCH 3/8] gpio: tqmx86: change tqmx86_gpio_write() order of arguments to match regmap API Matthias Schiffer
2024-05-29 12:03 ` Bartosz Golaszewski
2024-05-29 12:11 ` Andrew Lunn
2024-05-29 12:23 ` Matthias Schiffer
2024-05-29 7:45 ` [PATCH 4/8] gpio: tqmx86: introduce _tqmx86_gpio_update_bits() helper Matthias Schiffer
2024-05-29 12:19 ` Andrew Lunn
2024-05-29 12:25 ` Matthias Schiffer
2024-05-29 12:31 ` Andrew Lunn
2024-05-29 7:45 ` [PATCH 5/8] gpio: tqmx86: add macros for interrupt configuration Matthias Schiffer
2024-05-29 7:45 ` [PATCH 6/8] gpio: tqmx86: store IRQ triggers without offsetting index Matthias Schiffer
2024-05-29 7:45 ` [PATCH 7/8] gpio: tqmx86: store IRQ trigger type and unmask status separately Matthias Schiffer
2024-05-29 7:45 ` [PATCH 8/8] gpio: tqmx86: fix broken IRQ_TYPE_EDGE_BOTH interrupt type Matthias Schiffer
2024-05-29 12:37 ` Andrew Lunn
2024-05-29 12:44 ` Matthias Schiffer [this message]
2024-05-29 14:38 ` Dan Carpenter
2024-05-30 8:39 ` Matthias Schiffer
2024-05-30 10:22 ` Dan Carpenter
2024-05-30 11:15 ` Matthias Schiffer
2024-05-30 11:36 ` Matthias Schiffer
2024-05-30 12:13 ` Andrew Lunn
2024-05-29 12:08 ` [PATCH 0/8] gpio-tqmx86 fixes Bartosz Golaszewski
2024-05-29 12:54 ` Matthias Schiffer
2024-05-29 17:02 ` Bartosz Golaszewski
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=954848a9ee2967908bc40069c94cea4407e7de7f.camel@ew.tq-group.com \
--to=matthias.schiffer@ew.tq-group.com \
--cc=andrew@lunn.ch \
--cc=brgl@bgdev.pl \
--cc=gregor.herburger@tq-group.com \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@ew.tq-group.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®