On Tue, Jan 04, 2022 at 05:42:38PM +0100, Hans de Goede wrote: > Commit bdfbef2d29dc ("pinctrl: cherryview: Don't use selection 0 to mark > an interrupt line as unused") made the code properly differentiate > between unset vs (hwirq) 0 entries in the GPIO-controller interrupt-line > to GPIO pinnumber/hwirq mapping. > > This is causing some boards to not boot. This commit restores the old > behavior of triggering hwirq 0 when receiving an interrupt on an > interrupt-line for which there is no mapping. Acked-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> Linus, can you apply this directly for v5.16 release? > Fixes: bdfbef2d29dc ("pinctrl: cherryview: Don't use selection 0 to mark an interrupt line as unused") > Reported-and-tested-by: Jarkko Nikula <jarkko.nikula@xxxxxxxxxxxxxxx> > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> > --- > drivers/pinctrl/intel/pinctrl-cherryview.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/pinctrl/intel/pinctrl-cherryview.c b/drivers/pinctrl/intel/pinctrl-cherryview.c > index 683b95e9639a..5d85ef5d5da8 100644 > --- a/drivers/pinctrl/intel/pinctrl-cherryview.c > +++ b/drivers/pinctrl/intel/pinctrl-cherryview.c > @@ -1471,8 +1471,9 @@ static void chv_gpio_irq_handler(struct irq_desc *desc) > > offset = cctx->intr_lines[intr_line]; > if (offset == CHV_INVALID_HWIRQ) { > - dev_err(dev, "interrupt on unused interrupt line %u\n", intr_line); > - continue; > + dev_warn_once(dev, "interrupt on unmapped interrupt line %u\n", intr_line); > + /* Some boards expect hwirq 0 to trigger in this case */ > + offset = 0; > } > > generic_handle_domain_irq(gc->irq.domain, offset); > -- > 2.33.1 > -- With Best Regards, Andy Shevchenko