Hi, On Sun, May 03, 2020 at 05:21:12PM +0200, Michał Mirosław wrote: > Edge interrupts from the charger may be lost or stuck in fault mode > since probe(). Check if something changed everytime userspace wants > some data. > > Signed-off-by: Michał Mirosław > --- Reviewed-by: Sebastian Reichel -- Sebastian > drivers/power/supply/bq25890_charger.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/power/supply/bq25890_charger.c b/drivers/power/supply/bq25890_charger.c > index 3b02fa80aedd..e4368d01396a 100644 > --- a/drivers/power/supply/bq25890_charger.c > +++ b/drivers/power/supply/bq25890_charger.c > @@ -389,6 +389,8 @@ static bool bq25890_is_adc_property(enum power_supply_property psp) > } > } > > +static irqreturn_t __bq25890_handle_irq(struct bq25890_device *bq); > + > static int bq25890_power_supply_get_property(struct power_supply *psy, > enum power_supply_property psp, > union power_supply_propval *val) > @@ -399,6 +401,8 @@ static int bq25890_power_supply_get_property(struct power_supply *psy, > int ret; > > mutex_lock(&bq->lock); > + /* update state in case we lost an interrupt */ > + __bq25890_handle_irq(bq); > state = bq->state; > do_adc_conv = !state.online && bq25890_is_adc_property(psp); > if (do_adc_conv) > -- > 2.20.1 >