On Tue, 2010-11-02 at 12:13 +0800, Seblu wrote: > On Tue, Nov 2, 2010 at 4:24 AM, Zhang Rui <rui.zhang@xxxxxxxxx> wrote: > > > > Sometimes the Battery driver doesn't get notifications when it's > > plugged/unplugged. And this results in the incorrect Battery > > status reported by the power supply sysfs I/F. > > > > Update the Battery status first when querying from sysfs. > > > > Signed-off-by: Zhang Rui <rui.zhang@xxxxxxxxx> > > --- > > drivers/acpi/battery.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > Index: linux-2.6/drivers/acpi/battery.c > > =================================================================== > > --- linux-2.6.orig/drivers/acpi/battery.c > > +++ linux-2.6/drivers/acpi/battery.c > > @@ -184,6 +184,9 @@ static int acpi_battery_get_property(str > > int ret = 0; > > struct acpi_battery *battery = to_acpi_battery(psy); > > > > + if (acpi_battery_update(battery)) > > + return -ENODEV; > > + > > if (acpi_battery_present(battery)) { > > /* run battery update only if it is present */ > > acpi_battery_get_state(battery); > > > > > > > Hello Zhang, > > i trying 2 times your patch and > > $ make > CHK include/linux/version.h > CHK include/generated/utsrelease.h > CALL scripts/checksyscalls.sh > CHK include/generated/compile.h > LD drivers/acpi/acpi.o > LD drivers/acpi/built-in.o > LD [M] drivers/acpi/processor.o > CC [M] drivers/acpi/battery.o > drivers/acpi/battery.c: In function âacpi_battery_get_propertyâ: > drivers/acpi/battery.c:187:2: error: implicit declaration of function > âacpi_battery_updateâ > drivers/acpi/battery.c: At top level: > drivers/acpi/battery.c:611:12: error: static declaration of > âacpi_battery_updateâ follows non-static declaration > drivers/acpi/battery.c:187:6: note: previous implicit declaration of > âacpi_battery_updateâ was here > make[2]: *** [drivers/acpi/battery.o] Error 1 > make[1]: *** [drivers/acpi] Error 2 > make: *** [drivers] Error 2 > > i've the same error on 2.6.37-rc1 and last linus git. > oops. wrong version attached. how about this one? Sometimes the Battery driver doesn't get notifications when it's plugged/unplugged. And this results in the incorrect Battery status reported by the power supply sysfs I/F. Update the Battery status first when querying from sysfs. Signed-off-by: Zhang Rui <rui.zhang@xxxxxxxxx> --- drivers/acpi/battery.c | 5 +++++ 1 file changed, 5 insertions(+) Index: linux-2.6/drivers/acpi/battery.c =================================================================== --- linux-2.6.orig/drivers/acpi/battery.c +++ linux-2.6/drivers/acpi/battery.c @@ -177,6 +177,8 @@ static int acpi_battery_is_charged(struc return 0; } +static int acpi_battery_update(struct acpi_battery *battery); + static int acpi_battery_get_property(struct power_supply *psy, enum power_supply_property psp, union power_supply_propval *val) @@ -184,6 +186,9 @@ static int acpi_battery_get_property(str int ret = 0; struct acpi_battery *battery = to_acpi_battery(psy); + if (acpi_battery_update(battery)) + return -ENODEV; + if (acpi_battery_present(battery)) { /* run battery update only if it is present */ acpi_battery_get_state(battery); -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html