mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-12 23:54:19 +08:00
power: bq25890: update state on property read
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 <mirq-linux@rere.qmqm.pl> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
This commit is contained in:
parent
21d90eda43
commit
3b4df57bef
@ -387,6 +387,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)
|
||||
@ -397,6 +399,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)
|
||||
|
Loading…
Reference in New Issue
Block a user