diff mbox series

[v1,01/16] pinctrl: cy8c95x0: Respect IRQ trigger settings from firmware

Message ID 20250117142304.596106-2-andriy.shevchenko@linux.intel.com
State New
Headers show
Series pinctrl: cy8c95x0: Bugfixes and cleanups | expand

Commit Message

Andy Shevchenko Jan. 17, 2025, 2:21 p.m. UTC
Som of the platforms may connect the INT pin via inversion logic
effectively make the triggering to be active-low.
Remove explicit trigger flag to respect the settings from firmware.

Without this change even idling chip produces spurious interrupts
and kernel disables the line in the result:

  irq 33: nobody cared (try booting with the "irqpoll" option)
  CPU: 0 UID: 0 PID: 125 Comm: irq/33-i2c-INT3 Not tainted 6.12.0-00236-g8b874ed11dae #64
  Hardware name: Intel Corp. QUARK/Galileo, BIOS 0x01000900 01/01/2014
  ...
  handlers:
  [<86e86bea>] irq_default_primary_handler threaded [<d153e44a>] cy8c95x0_irq_handler [pinctrl_cy8c95x0]
  Disabling IRQ #33

Fixes: e6cbbe42944d ("pinctrl: Add Cypress cy8c95x0 support")
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/pinctrl/pinctrl-cy8c95x0.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Linus Walleij Jan. 27, 2025, 10:03 a.m. UTC | #1
On Fri, Jan 17, 2025 at 3:23 PM Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:

> Som of the platforms may connect the INT pin via inversion logic
> effectively make the triggering to be active-low.
> Remove explicit trigger flag to respect the settings from firmware.
>
> Without this change even idling chip produces spurious interrupts
> and kernel disables the line in the result:
>
>   irq 33: nobody cared (try booting with the "irqpoll" option)
>   CPU: 0 UID: 0 PID: 125 Comm: irq/33-i2c-INT3 Not tainted 6.12.0-00236-g8b874ed11dae #64
>   Hardware name: Intel Corp. QUARK/Galileo, BIOS 0x01000900 01/01/2014
>   ...
>   handlers:
>   [<86e86bea>] irq_default_primary_handler threaded [<d153e44a>] cy8c95x0_irq_handler [pinctrl_cy8c95x0]
>   Disabling IRQ #33
>
> Fixes: e6cbbe42944d ("pinctrl: Add Cypress cy8c95x0 support")
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

Patch applied for fixes! (Speling mistake on first line fixed in the process.)

Yours,
Linus Walleij
Andy Shevchenko Feb. 3, 2025, 12:13 p.m. UTC | #2
On Mon, Jan 27, 2025 at 11:03:02AM +0100, Linus Walleij wrote:
> On Fri, Jan 17, 2025 at 3:23 PM Andy Shevchenko
> <andriy.shevchenko@linux.intel.com> wrote:
> 
> > Som of the platforms may connect the INT pin via inversion logic
> > effectively make the triggering to be active-low.
> > Remove explicit trigger flag to respect the settings from firmware.
> >
> > Without this change even idling chip produces spurious interrupts
> > and kernel disables the line in the result:
> >
> >   irq 33: nobody cared (try booting with the "irqpoll" option)
> >   CPU: 0 UID: 0 PID: 125 Comm: irq/33-i2c-INT3 Not tainted 6.12.0-00236-g8b874ed11dae #64
> >   Hardware name: Intel Corp. QUARK/Galileo, BIOS 0x01000900 01/01/2014
> >   ...
> >   handlers:
> >   [<86e86bea>] irq_default_primary_handler threaded [<d153e44a>] cy8c95x0_irq_handler [pinctrl_cy8c95x0]
> >   Disabling IRQ #33
> >
> > Fixes: e6cbbe42944d ("pinctrl: Add Cypress cy8c95x0 support")
> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> 
> Patch applied for fixes! (Speling mistake on first line fixed in the process.)

Thanks! Any plans to take the rest of the fixes (except the one which Patrick
rightfully objected on)?
diff mbox series

Patch

diff --git a/drivers/pinctrl/pinctrl-cy8c95x0.c b/drivers/pinctrl/pinctrl-cy8c95x0.c
index 0d6c2027d4c1..825bd1e528b5 100644
--- a/drivers/pinctrl/pinctrl-cy8c95x0.c
+++ b/drivers/pinctrl/pinctrl-cy8c95x0.c
@@ -1347,7 +1347,7 @@  static int cy8c95x0_irq_setup(struct cy8c95x0_pinctrl *chip, int irq)
 
 	ret = devm_request_threaded_irq(chip->dev, irq,
 					NULL, cy8c95x0_irq_handler,
-					IRQF_ONESHOT | IRQF_SHARED | IRQF_TRIGGER_HIGH,
+					IRQF_ONESHOT | IRQF_SHARED,
 					dev_name(chip->dev), chip);
 	if (ret) {
 		dev_err(chip->dev, "failed to request irq %d\n", irq);