diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-05-03 13:57:57 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-05-03 13:57:57 -0400 |
commit | 38e80121bd7d0c493072442ac7eddcba165a07a8 (patch) | |
tree | 66c948222e45b461f9d1b8917b222a0c90af9e6e | |
parent | e098675635479e9267cf2b12fb969c463cf506ab (diff) | |
parent | 35bf559145b6332f5465c15a4e5cd7a363985382 (diff) |
Merge git://git.infradead.org/battery-2.6
* git://git.infradead.org/battery-2.6:
PMU battery: filenames in sysfs with spaces
pda_power: add init and exit function callbacks
-rw-r--r-- | drivers/power/pda_power.c | 11 | ||||
-rw-r--r-- | drivers/power/pmu_battery.c | 2 | ||||
-rw-r--r-- | include/linux/pda_power.h | 4 |
3 files changed, 16 insertions, 1 deletions
diff --git a/drivers/power/pda_power.c b/drivers/power/pda_power.c index c8aa55b81fd8..82810b7bff9c 100644 --- a/drivers/power/pda_power.c +++ b/drivers/power/pda_power.c | |||
@@ -209,6 +209,12 @@ static int pda_power_probe(struct platform_device *pdev) | |||
209 | 209 | ||
210 | pdata = pdev->dev.platform_data; | 210 | pdata = pdev->dev.platform_data; |
211 | 211 | ||
212 | if (pdata->init) { | ||
213 | ret = pdata->init(dev); | ||
214 | if (ret < 0) | ||
215 | goto init_failed; | ||
216 | } | ||
217 | |||
212 | update_status(); | 218 | update_status(); |
213 | update_charger(); | 219 | update_charger(); |
214 | 220 | ||
@@ -298,6 +304,9 @@ ac_irq_failed: | |||
298 | if (pdata->is_ac_online) | 304 | if (pdata->is_ac_online) |
299 | power_supply_unregister(&pda_psy_ac); | 305 | power_supply_unregister(&pda_psy_ac); |
300 | ac_supply_failed: | 306 | ac_supply_failed: |
307 | if (pdata->exit) | ||
308 | pdata->exit(dev); | ||
309 | init_failed: | ||
301 | wrongid: | 310 | wrongid: |
302 | return ret; | 311 | return ret; |
303 | } | 312 | } |
@@ -318,6 +327,8 @@ static int pda_power_remove(struct platform_device *pdev) | |||
318 | power_supply_unregister(&pda_psy_usb); | 327 | power_supply_unregister(&pda_psy_usb); |
319 | if (pdata->is_ac_online) | 328 | if (pdata->is_ac_online) |
320 | power_supply_unregister(&pda_psy_ac); | 329 | power_supply_unregister(&pda_psy_ac); |
330 | if (pdata->exit) | ||
331 | pdata->exit(dev); | ||
321 | 332 | ||
322 | return 0; | 333 | return 0; |
323 | } | 334 | } |
diff --git a/drivers/power/pmu_battery.c b/drivers/power/pmu_battery.c index 60a8cf3a0431..9346a862f1f2 100644 --- a/drivers/power/pmu_battery.c +++ b/drivers/power/pmu_battery.c | |||
@@ -159,7 +159,7 @@ static int __init pmu_bat_init(void) | |||
159 | if (!pbat) | 159 | if (!pbat) |
160 | break; | 160 | break; |
161 | 161 | ||
162 | sprintf(pbat->name, "PMU battery %d", i); | 162 | sprintf(pbat->name, "PMU_battery_%d", i); |
163 | pbat->bat.name = pbat->name; | 163 | pbat->bat.name = pbat->name; |
164 | pbat->bat.properties = pmu_bat_props; | 164 | pbat->bat.properties = pmu_bat_props; |
165 | pbat->bat.num_properties = ARRAY_SIZE(pmu_bat_props); | 165 | pbat->bat.num_properties = ARRAY_SIZE(pmu_bat_props); |
diff --git a/include/linux/pda_power.h b/include/linux/pda_power.h index 225beb136807..cb7d10f30763 100644 --- a/include/linux/pda_power.h +++ b/include/linux/pda_power.h | |||
@@ -16,10 +16,14 @@ | |||
16 | #define PDA_POWER_CHARGE_AC (1 << 0) | 16 | #define PDA_POWER_CHARGE_AC (1 << 0) |
17 | #define PDA_POWER_CHARGE_USB (1 << 1) | 17 | #define PDA_POWER_CHARGE_USB (1 << 1) |
18 | 18 | ||
19 | struct device; | ||
20 | |||
19 | struct pda_power_pdata { | 21 | struct pda_power_pdata { |
22 | int (*init)(struct device *dev); | ||
20 | int (*is_ac_online)(void); | 23 | int (*is_ac_online)(void); |
21 | int (*is_usb_online)(void); | 24 | int (*is_usb_online)(void); |
22 | void (*set_charge)(int flags); | 25 | void (*set_charge)(int flags); |
26 | void (*exit)(struct device *dev); | ||
23 | 27 | ||
24 | char **supplied_to; | 28 | char **supplied_to; |
25 | size_t num_supplicants; | 29 | size_t num_supplicants; |