Commit 86533e80 authored by Len Brown's avatar Len Brown

Pull battery into release branch

parents 2ffbb837 037cbc63
...@@ -153,6 +153,8 @@ static int acpi_battery_get_property(struct power_supply *psy, ...@@ -153,6 +153,8 @@ static int acpi_battery_get_property(struct power_supply *psy,
val->intval = POWER_SUPPLY_STATUS_CHARGING; val->intval = POWER_SUPPLY_STATUS_CHARGING;
else if (battery->state == 0) else if (battery->state == 0)
val->intval = POWER_SUPPLY_STATUS_FULL; val->intval = POWER_SUPPLY_STATUS_FULL;
else
val->intval = POWER_SUPPLY_STATUS_UNKNOWN;
break; break;
case POWER_SUPPLY_PROP_PRESENT: case POWER_SUPPLY_PROP_PRESENT:
val->intval = acpi_battery_present(battery); val->intval = acpi_battery_present(battery);
......
...@@ -113,6 +113,7 @@ struct acpi_battery { ...@@ -113,6 +113,7 @@ struct acpi_battery {
u16 spec; u16 spec;
u8 id; u8 id;
u8 present:1; u8 present:1;
u8 have_sysfs_alarm:1;
}; };
#define to_acpi_battery(x) container_of(x, struct acpi_battery, bat); #define to_acpi_battery(x) container_of(x, struct acpi_battery, bat);
...@@ -808,7 +809,13 @@ static int acpi_battery_add(struct acpi_sbs *sbs, int id) ...@@ -808,7 +809,13 @@ static int acpi_battery_add(struct acpi_sbs *sbs, int id)
} }
battery->bat.get_property = acpi_sbs_battery_get_property; battery->bat.get_property = acpi_sbs_battery_get_property;
result = power_supply_register(&sbs->device->dev, &battery->bat); result = power_supply_register(&sbs->device->dev, &battery->bat);
device_create_file(battery->bat.dev, &alarm_attr); if (result)
goto end;
result = device_create_file(battery->bat.dev, &alarm_attr);
if (result)
goto end;
battery->have_sysfs_alarm = 1;
end:
printk(KERN_INFO PREFIX "%s [%s]: Battery Slot [%s] (battery %s)\n", printk(KERN_INFO PREFIX "%s [%s]: Battery Slot [%s] (battery %s)\n",
ACPI_SBS_DEVICE_NAME, acpi_device_bid(sbs->device), ACPI_SBS_DEVICE_NAME, acpi_device_bid(sbs->device),
battery->name, sbs->battery->present ? "present" : "absent"); battery->name, sbs->battery->present ? "present" : "absent");
...@@ -817,14 +824,16 @@ static int acpi_battery_add(struct acpi_sbs *sbs, int id) ...@@ -817,14 +824,16 @@ static int acpi_battery_add(struct acpi_sbs *sbs, int id)
static void acpi_battery_remove(struct acpi_sbs *sbs, int id) static void acpi_battery_remove(struct acpi_sbs *sbs, int id)
{ {
if (sbs->battery[id].bat.dev) struct acpi_battery *battery = &sbs->battery[id];
device_remove_file(sbs->battery[id].bat.dev, &alarm_attr);
power_supply_unregister(&sbs->battery[id].bat); if (battery->bat.dev) {
#ifdef CONFIG_ACPI_PROCFS if (battery->have_sysfs_alarm)
if (sbs->battery[id].proc_entry) { device_remove_file(battery->bat.dev, &alarm_attr);
acpi_sbs_remove_fs(&(sbs->battery[id].proc_entry), power_supply_unregister(&battery->bat);
acpi_battery_dir);
} }
#ifdef CONFIG_ACPI_PROCFS
if (battery->proc_entry)
acpi_sbs_remove_fs(&battery->proc_entry, acpi_battery_dir);
#endif #endif
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment