aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars-Peter Clausen <lars@metafoo.de>2009-07-21 21:02:57 +0200
committerPaul Fertser <fercerpav@gmail.com>2009-07-27 01:10:51 +0400
commitd5095005f091b71d4ad68d152465b52c91957eb8 (patch)
tree5180bc8d6c84c9aa43311f9a3f24bcd4a1c32192
parent991a4b782728554b7274339e763a01b0905c1fe4 (diff)
bq27000: Return -ENODEV in bq27000_battery_get_property if the battery is not
If the battery is not present hdq_read will always return an error. If the drivers knows that the battery is not present the correct thing to do is to return -ENODEV instead of passing the error on. Do this for all properties except POWER_SUPPLY_PROP_PRESENT. The power supply sysfs expects us to do so, else it won't generate a proper uevent file. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
-rw-r--r--drivers/power/bq27000_battery.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/power/bq27000_battery.c b/drivers/power/bq27000_battery.c
index 593cbe6f752..f1dcda3297d 100644
--- a/drivers/power/bq27000_battery.c
+++ b/drivers/power/bq27000_battery.c
@@ -186,6 +186,9 @@ static int bq27000_battery_get_property(struct power_supply *psy,
int n;
struct bq27000_device_info *di = container_of(psy, struct bq27000_device_info, bat);
+ if (di->regs.rsoc < 0 && psp != POWER_SUPPLY_PROP_PRESENT)
+ return -ENODEV;
+
switch (psp) {
case POWER_SUPPLY_PROP_STATUS:
val->intval = POWER_SUPPLY_STATUS_UNKNOWN;