Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 154305
b: refs/heads/master
c: a35d01a
h: refs/heads/master
i:
  154303: d1d910e
v: v3
  • Loading branch information
Mike Rapoport authored and Anton Vorontsov committed Jun 8, 2009
1 parent 3a788d3 commit d26baf8
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 8 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c6f4a42de60b981dd210de01cd3e575835e3158e
refs/heads/master: a35d01a5d2ac533edab94a8e3b6749ab213c91c5
19 changes: 12 additions & 7 deletions trunk/drivers/power/da9030_battery.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@
#include <linux/debugfs.h>
#include <linux/seq_file.h>

#define DA9030_STATUS_CHDET (1 << 3)

#define DA9030_FAULT_LOG 0x0a
#define DA9030_FAULT_LOG_OVER_TEMP (1 << 7)
#define DA9030_FAULT_LOG_VBAT_OVER (1 << 4)
Expand Down Expand Up @@ -244,6 +242,8 @@ static void da9030_set_charge(struct da9030_charger *charger, int on)
}

da903x_write(charger->master, DA9030_CHARGE_CONTROL, val);

power_supply_changed(&charger->psy);
}

static void da9030_charger_check_state(struct da9030_charger *charger)
Expand All @@ -258,6 +258,12 @@ static void da9030_charger_check_state(struct da9030_charger *charger)
da9030_set_charge(charger, 1);
}
} else {
/* Charger has been pulled out */
if (!charger->chdet) {
da9030_set_charge(charger, 0);
return;
}

if (charger->adc.vbat_res >=
charger->thresholds.vbat_charge_stop) {
da9030_set_charge(charger, 0);
Expand Down Expand Up @@ -395,13 +401,11 @@ static int da9030_battery_event(struct notifier_block *nb, unsigned long event,
{
struct da9030_charger *charger =
container_of(nb, struct da9030_charger, nb);
int status;

switch (event) {
case DA9030_EVENT_CHDET:
status = da903x_query_status(charger->master,
DA9030_STATUS_CHDET);
da9030_set_charge(charger, status);
cancel_delayed_work_sync(&charger->work);
schedule_work(&charger->work.work);
break;
case DA9030_EVENT_VBATMON:
da9030_battery_vbat_event(charger);
Expand Down Expand Up @@ -565,7 +569,8 @@ static int da9030_battery_remove(struct platform_device *dev)
da903x_unregister_notifier(charger->master, &charger->nb,
DA9030_EVENT_CHDET | DA9030_EVENT_VBATMON |
DA9030_EVENT_CHIOVER | DA9030_EVENT_TBAT);
cancel_delayed_work(&charger->work);
cancel_delayed_work_sync(&charger->work);
da9030_set_charge(charger, 0);
power_supply_unregister(&charger->psy);

kfree(charger);
Expand Down

0 comments on commit d26baf8

Please sign in to comment.