All of lore.kernel.org
 help / color / mirror / Atom feed
From: Emanuele Ghidoli <ghidoliemanuele@gmail.com>
To: Bartosz Golaszewski <brgl@bgdev.pl>,
	Andy Shevchenko <andriy.shevchenko@intel.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Francesco Dolcini <francesco@dolcini.it>,
	Bartosz Golaszewski <bartosz.golaszewski@linaro.org>,
	Emanuele Ghidoli <emanuele.ghidoli@toradex.com>,
	linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org,
	Marek Vasut <marek.vasut@gmail.com>,
	stable@vger.kernel.org,
	Francesco Dolcini <francesco.dolcini@toradex.com>
Subject: Re: [PATCH v1] gpio: pca953x: fix IRQ storm on system wake up
Date: Mon, 7 Apr 2025 17:11:14 +0200	[thread overview]
Message-ID: <02cab60d-9748-4227-a4aa-33373ea0be38@gmail.com> (raw)
In-Reply-To: <CAMRc=Me15MyNJiU9E-E2R9yHZ4XaS=zAuETvzKFh8=K0B4rKPw@mail.gmail.com>

On 03/04/2025 15:56, Bartosz Golaszewski wrote:
> On Thu, Apr 3, 2025 at 3:54 PM Andy Shevchenko
> <andriy.shevchenko@intel.com> wrote:
>>
>> +Cc: Geert
>>
>> On Thu, Apr 03, 2025 at 02:07:05PM +0200, Bartosz Golaszewski wrote:
>>> On Wed, 26 Mar 2025 18:38:38 +0100, Francesco Dolcini wrote:
>>
>>>> If an input changes state during wake-up and is used as an interrupt
>>>> source, the IRQ handler reads the volatile input register to clear the
>>>> interrupt mask and deassert the IRQ line. However, the IRQ handler is
>>>> triggered before access to the register is granted, causing the read
>>>> operation to fail.
>>>>
>>>> As a result, the IRQ handler enters a loop, repeatedly printing the
>>>> "failed reading register" message, until `pca953x_resume` is eventually
>>>> called, which restores the driver context and enables access to
>>>> registers.
>>
>> [...]
>>
>>> Applied, thanks!
>>
>> Won't this regress as it happens the last time [1]?
>>
>> [1]: https://lore.kernel.org/linux-gpio/CAMuHMdVnKX23yi7ir1LVxfXAMeeWMFzM+cdgSSTNjpn1OnC2xw@mail.gmail.com/
>>
> 
> Ah, good catch. I'm wondering what the right fix here is but don't
> really have any ideas at the moment. Any hints are appreciated.
> 
> For now, I'm dropping it.
> 
> Bart

I’ve found another possible solution: disable the PCA953x IRQ in
pca953x_suspend() and re-enable it in pca953x_resume().
This would prevent the ISR from being triggered while the regmap is in
cache-only mode.
The wake-up capability is preserved, since an IRQ can still wake the system
even when disabled with disable_irq(), as long as it has wake enabled.

This should avoid introducing regressions and still handle Geert’s use case
properly.

Andy, Bart, Geert - what do you think?

  reply	other threads:[~2025-04-07 15:11 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-26 17:38 [PATCH v1] gpio: pca953x: fix IRQ storm on system wake up Francesco Dolcini
2025-04-03 12:07 ` Bartosz Golaszewski
2025-04-03 13:54   ` Andy Shevchenko
2025-04-03 13:56     ` Bartosz Golaszewski
2025-04-07 15:11       ` Emanuele Ghidoli [this message]
2025-04-07 15:40         ` Andy Shevchenko
2025-04-13 13:33           ` Emanuele Ghidoli

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=02cab60d-9748-4227-a4aa-33373ea0be38@gmail.com \
    --to=ghidoliemanuele@gmail.com \
    --cc=andriy.shevchenko@intel.com \
    --cc=bartosz.golaszewski@linaro.org \
    --cc=brgl@bgdev.pl \
    --cc=emanuele.ghidoli@toradex.com \
    --cc=francesco.dolcini@toradex.com \
    --cc=francesco@dolcini.it \
    --cc=geert@linux-m68k.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marek.vasut@gmail.com \
    --cc=stable@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 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.