All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] pda-power: only register available psu
@ 2008-01-03  0:53 Dmitry Baryshkov
  2008-01-04  0:29 ` Anton Vorontsov
  0 siblings, 1 reply; 5+ messages in thread
From: Dmitry Baryshkov @ 2008-01-03  0:53 UTC (permalink / raw)
  To: linux-kernel, cbou, dwmw2

Currently pda-power adds both ac and usb power supply units.
This patch fixes it so that psu are added only if they are enabled.

Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>

diff --git a/drivers/power/pda_power.c b/drivers/power/pda_power.c
index c058f28..42eac09 100644
--- a/drivers/power/pda_power.c
+++ b/drivers/power/pda_power.c
@@ -168,21 +168,14 @@ 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;
-	}
-
-	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 = 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_failed;
+		}
+
 		ret = request_irq(ac_irq->start, power_changed_isr,
 				  get_irq_flags(ac_irq), ac_irq->name,
 				  &pda_power_supplies[0]);
@@ -193,6 +186,13 @@ static int pda_power_probe(struct platform_device *pdev)
 	}
 
 	if (usb_irq) {
+		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 usb_failed;
+		}
+
 		ret = request_irq(usb_irq->start, power_changed_isr,
 				  get_irq_flags(usb_irq), usb_irq->name,
 				  &pda_power_supplies[1]);
@@ -205,13 +205,14 @@ static int pda_power_probe(struct platform_device *pdev)
 	goto success;
 
 usb_irq_failed:
+	power_supply_unregister(&pda_power_supplies[1]);
+usb_failed:
 	if (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 (ac_irq)
+		power_supply_unregister(&pda_power_supplies[0]);
+ac_failed:
 noirqs:
 wrongid:
 success:

-- 
With best wishes
Dmitry


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2008-01-04  1:31 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-03  0:53 [PATCH] pda-power: only register available psu Dmitry Baryshkov
2008-01-04  0:29 ` Anton Vorontsov
2008-01-04  0:32   ` [PATCH 1/2] pda_power: various cleanups Anton Vorontsov
2008-01-04  0:32   ` [PATCH 2/2] pda_power: implement polling Anton Vorontsov
2008-01-04  1:31   ` [PATCH] pda-power: only register available psu Dmitry

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.