ACPI ac: update AC status first when querying from sysfs
PATCH 3/4 ACPI ac: update AC status first when querying from sysfs
Update AC status first when querying from sysfs.
http://marc.info/?l=linux-acpi&m=128855015826728&w=2
https://bugzilla.kernel.org/show_bug.cgi?id=21722
Tested_by: Seblu <[email protected]>
Signed-off-by Zhang Rui <[email protected]>
--- drivers/acpi/ac.c | 46 +++++++++++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 17 deletions(-)
drivers/acpi/ac.c +29 -17
@@ -100,24 +100,7 @@ static const struct file_operations acpi .release = single_release, };#endif -static int get_ac_property (struct power_supply *psy, -enum power_supply_property psp, -union power_supply_propval *val) -{ -struct acpi_ac *ac =to_acpi_ac (psy); -switch (psp) { -case POWER_SUPPLY_PROP_ONLINE : - val->intval = ac->state; -break ; -default : -return -EINVAL ; - } -return 0 ; -} -static enum power_supply_property ac_props[] = { -POWER_SUPPLY_PROP_ONLINE , -};/* -------------------------------------------------------------------------- AC Adapter Management -------------------------------------------------------------------------- */
@@ -140,6 +123,35 @@ static int acpi_ac_get_state(struct acpireturn 0 ; } +/* -------------------------------------------------------------------------- +sysfs I/F +-------------------------------------------------------------------------- */ +static int get_ac_property (struct power_supply *psy, +enum power_supply_property psp, +union power_supply_propval *val) +{ +struct acpi_ac *ac =to_acpi_ac (psy); + +if (!ac) +return -ENODEV ; + +if (acpi_ac_get_state (ac)) +return -ENODEV ; + +switch (psp) { +case POWER_SUPPLY_PROP_ONLINE : + val->intval = ac->state; +break ; +default : +return -EINVAL ; + } +return 0 ; +} + +static enum power_supply_property ac_props[] = { +POWER_SUPPLY_PROP_ONLINE , +}; +#ifdef CONFIG_ACPI_PROCFS_POWER /* -------------------------------------------------------------------------- FS Interface (/proc)
applied
thanks,
Len Brown, Intel Open Source Technology Center