diff options
Diffstat (limited to 'drivers/power/pda_power.c')
| -rw-r--r-- | drivers/power/pda_power.c | 16 | 
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/power/pda_power.c b/drivers/power/pda_power.c index 7312f265164..75536ebdb13 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:  |