[PATCH] bq27000: Return -ENODEV in bq27000_battery_get_property if the battery is not
Lars-Peter Clausen
lars at metafoo.de
Tue Jul 21 21:02:57 CEST 2009
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.
---
drivers/power/bq27000_battery.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/drivers/power/bq27000_battery.c b/drivers/power/bq27000_battery.c
index 593cbe6..f1dcda3 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;
--
1.5.6.5
More information about the openmoko-kernel
mailing list