Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 82507
b: refs/heads/master
c: 9ef4510
h: refs/heads/master
i:
  82505: 9632e33
  82503: 0167c88
v: v3
  • Loading branch information
Dmitry Baryshkov authored and Anton Vorontsov committed Feb 1, 2008
1 parent 5cb108b commit 130d059
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 37 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: 839dc9f105c0d856f9a0be48fb3bd0982ff5df5b
refs/heads/master: 9ef45106261e802f9d80bf0bc652124b42b1f344
80 changes: 44 additions & 36 deletions trunk/drivers/power/pda_power.c
Original file line number Diff line number Diff line change
Expand Up @@ -168,66 +168,74 @@ static int pda_power_probe(struct platform_device *pdev)
pda_power_supplies[1].num_supplicants = pdata->num_supplicants;
}

ret = power_supply_register(&pdev->dev, &pda_power_supplies[0]);
if (ret) {
dev_err(dev, "failed to register %s power supply\n",
pda_power_supplies[0].name);
goto supply0_failed;
}
if (pdata->is_ac_online) {
ret = power_supply_register(&pdev->dev, &pda_power_supplies[0]);
if (ret) {
dev_err(dev, "failed to register %s power supply\n",
pda_power_supplies[0].name);
goto ac_supply_failed;
}

ret = power_supply_register(&pdev->dev, &pda_power_supplies[1]);
if (ret) {
dev_err(dev, "failed to register %s power supply\n",
pda_power_supplies[1].name);
goto supply1_failed;
if (ac_irq) {
ret = request_irq(ac_irq->start, power_changed_isr,
get_irq_flags(ac_irq), ac_irq->name,
&pda_power_supplies[0]);
if (ret) {
dev_err(dev, "request ac irq failed\n");
goto ac_irq_failed;
}
}
}

if (ac_irq) {
ret = request_irq(ac_irq->start, power_changed_isr,
get_irq_flags(ac_irq), ac_irq->name,
&pda_power_supplies[0]);
if (pdata->is_usb_online) {
ret = power_supply_register(&pdev->dev, &pda_power_supplies[1]);
if (ret) {
dev_err(dev, "request ac irq failed\n");
goto ac_irq_failed;
dev_err(dev, "failed to register %s power supply\n",
pda_power_supplies[1].name);
goto usb_supply_failed;
}
}

if (usb_irq) {
ret = request_irq(usb_irq->start, power_changed_isr,
get_irq_flags(usb_irq), usb_irq->name,
&pda_power_supplies[1]);
if (ret) {
dev_err(dev, "request usb irq failed\n");
goto usb_irq_failed;
if (usb_irq) {
ret = request_irq(usb_irq->start, power_changed_isr,
get_irq_flags(usb_irq),
usb_irq->name,
&pda_power_supplies[1]);
if (ret) {
dev_err(dev, "request usb irq failed\n");
goto usb_irq_failed;
}
}
}

goto success;
return 0;

usb_irq_failed:
if (ac_irq)
if (pdata->is_usb_online)
power_supply_unregister(&pda_power_supplies[1]);
usb_supply_failed:
if (pdata->is_ac_online && ac_irq)
free_irq(ac_irq->start, &pda_power_supplies[0]);
ac_irq_failed:
power_supply_unregister(&pda_power_supplies[1]);
supply1_failed:
power_supply_unregister(&pda_power_supplies[0]);
supply0_failed:
if (pdata->is_ac_online)
power_supply_unregister(&pda_power_supplies[0]);
ac_supply_failed:
noirqs:
wrongid:
success:
return ret;
}

static int pda_power_remove(struct platform_device *pdev)
{
if (usb_irq)
if (pdata->is_usb_online && usb_irq)
free_irq(usb_irq->start, &pda_power_supplies[1]);
if (ac_irq)
if (pdata->is_ac_online && ac_irq)
free_irq(ac_irq->start, &pda_power_supplies[0]);
del_timer_sync(&charger_timer);
del_timer_sync(&supply_timer);
power_supply_unregister(&pda_power_supplies[1]);
power_supply_unregister(&pda_power_supplies[0]);
if (pdata->is_usb_online)
power_supply_unregister(&pda_power_supplies[1]);
if (pdata->is_ac_online)
power_supply_unregister(&pda_power_supplies[0]);
return 0;
}

Expand Down

0 comments on commit 130d059

Please sign in to comment.