diff --git a/drivers/power/pda_power.c b/drivers/power/pda_power.c index 7312f2651647..75536ebdb132 100644 --- a/drivers/power/pda_power.c +++ b/drivers/power/pda_power.c @@ -281,6 +281,14 @@ static int pda_power_probe(struct platform_device *pdev) goto init_failed; } + ac_draw = regulator_get(dev, "ac_draw"); + if (IS_ERR(ac_draw)) { + dev_dbg(dev, "couldn't get ac_draw regulator\n"); + ac_draw = NULL; + ret = PTR_ERR(ac_draw); + goto ac_draw_failed; + } + update_status(); update_charger(); @@ -309,13 +317,6 @@ static int pda_power_probe(struct platform_device *pdev) pda_psy_usb.num_supplicants = pdata->num_supplicants; } - ac_draw = regulator_get(dev, "ac_draw"); - if (IS_ERR(ac_draw)) { - dev_dbg(dev, "couldn't get ac_draw regulator\n"); - ac_draw = NULL; - ret = PTR_ERR(ac_draw); - } - #ifdef CONFIG_USB_OTG_UTILS transceiver = usb_get_phy(USB_PHY_TYPE_USB2); if (!IS_ERR_OR_NULL(transceiver)) { @@ -415,6 +416,7 @@ ac_supply_failed: regulator_put(ac_draw); ac_draw = NULL; } +ac_draw_failed: if (pdata->exit) pdata->exit(dev); init_failed: