On Fri, Dec 01, 2017 at 01:25:04PM +0300, Mika Westerberg wrote: > Guenter Roeck reported an interrupt storm on a prototype system which is > based on Cyan Chromebook. The root cause turned out to be a incorrectly > configured pin that triggers spurious interrupts. This will be fixed in > coreboot but currently we need to prevent the interrupt storm from > happening by masking all interrupts (but not GPEs) on those systems. > > Link: https://bugzilla.kernel.org/show_bug.cgi?id=194945 > Reported-by: Guenter Roeck <linux@xxxxxxxxxxxx> > Reported-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> > Signed-off-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx> Tested-by: Guenter Roeck <linux@xxxxxxxxxxxx> Guenter > --- > drivers/pinctrl/intel/pinctrl-cherryview.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/drivers/pinctrl/intel/pinctrl-cherryview.c b/drivers/pinctrl/intel/pinctrl-cherryview.c > index aa6c9f569c2b..083ffd397154 100644 > --- a/drivers/pinctrl/intel/pinctrl-cherryview.c > +++ b/drivers/pinctrl/intel/pinctrl-cherryview.c > @@ -1601,6 +1601,22 @@ static int chv_gpio_probe(struct chv_pinctrl *pctrl, int irq) > clear_bit(i, chip->irq.valid_mask); > } > > + /* > + * The same set of machines in chv_no_valid_mask[] have incorrectly > + * configured GPIOs that generate spurious interrupts so we use > + * this same list to apply another quirk for them. > + * > + * See also https://bugzilla.kernel.org/show_bug.cgi?id=197953. > + */ > + if (!need_valid_mask) { > + /* > + * Mask all interrupts the community is able to generate > + * but leave the ones that can only generate GPEs unmasked. > + */ > + chv_writel(~(BIT(pctrl->community->nirqs) - 1), > + pctrl->regs + CHV_INTMASK); > + } > + > /* Clear all interrupts */ > chv_writel(0xffff, pctrl->regs + CHV_INTSTAT); > > -- > 2.15.0 > -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html