On wtorek, 14 września 2021 14:18:05 CEST Sebastian Krzyszkowiak wrote: > The gauge requires us to clear the status bits manually for some alerts > to be properly dismissed. Previously the IRQ was configured to react only > on falling edge, which wasn't technically correct (the ALRT line is active > low), but it had a happy side-effect of preventing interrupt storms > on uncleared alerts from happening. > > Fixes: 7fbf6b731bca ("power: supply: max17042: Do not enforce (incorrect) > interrupt trigger type") Cc: <stable@xxxxxxxxxxxxxxx> > Signed-off-by: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@xxxxxxx> > --- > v2: added a comment on why it clears all alert bits > --- > drivers/power/supply/max17042_battery.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/power/supply/max17042_battery.c > b/drivers/power/supply/max17042_battery.c index 8dffae76b6a3..da78ffe6a3ec > 100644 > --- a/drivers/power/supply/max17042_battery.c > +++ b/drivers/power/supply/max17042_battery.c > @@ -876,6 +876,10 @@ static irqreturn_t max17042_thread_handler(int id, void > *dev) max17042_set_soc_threshold(chip, 1); > } > > + /* we implicitly handle all alerts via power_supply_changed */ > + regmap_clear_bits(chip->regmap, MAX17042_STATUS, > + 0xFFFF & ~(STATUS_POR_BIT | STATUS_BST_BIT)); > + > power_supply_changed(chip->battery); > return IRQ_HANDLED; > } Ping? Seems this didn't get applied yet. S.