summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/power/lp8727_charger.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/power/lp8727_charger.c b/drivers/power/lp8727_charger.c
index 2507b2bb9df2..13a787adcbe9 100644
--- a/drivers/power/lp8727_charger.c
+++ b/drivers/power/lp8727_charger.c
@@ -336,15 +336,16 @@ static int lp8727_battery_get_property(struct power_supply *psy,
switch (psp) {
case POWER_SUPPLY_PROP_STATUS:
- if (lp8727_is_charger_attached(psy->name, pchg->devid)) {
- lp8727_read_byte(pchg, LP8727_STATUS1, &read);
+ if (!lp8727_is_charger_attached(psy->name, pchg->devid)) {
+ val->intval = POWER_SUPPLY_STATUS_DISCHARGING;
+ return 0;
+ }
+
+ lp8727_read_byte(pchg, LP8727_STATUS1, &read);
- val->intval = (read & LP8727_CHGSTAT) == LP8727_STAT_EOC ?
+ val->intval = (read & LP8727_CHGSTAT) == LP8727_STAT_EOC ?
POWER_SUPPLY_STATUS_FULL :
POWER_SUPPLY_STATUS_CHARGING;
- } else {
- val->intval = POWER_SUPPLY_STATUS_DISCHARGING;
- }
break;
case POWER_SUPPLY_PROP_HEALTH:
lp8727_read_byte(pchg, LP8727_STATUS2, &read);