On Tue, Nov 2, 2010 at 6:22 AM, Zhang Rui <rui.zhang@xxxxxxxxx> wrote: > 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); > > > > I was not able to reproduce the problem with this patch. It smells good! -- Sébastien Luttringer www.seblu.net -- 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