diff --git a/drivers/power/pda_power.c b/drivers/power/pda_power.c index 81b720107c3a..87be6795605a 100644 --- a/drivers/power/pda_power.c +++ b/drivers/power/pda_power.c @@ -39,8 +39,11 @@ static struct timer_list supply_timer; static struct timer_list polling_timer; static int polling; +#ifdef CONFIG_USB_OTG_UTILS static struct otg_transceiver *transceiver; static struct notifier_block otg_nb; +#endif + static struct regulator *ac_draw; enum { @@ -317,6 +320,7 @@ static int pda_power_probe(struct platform_device *pdev) ret = PTR_ERR(ac_draw); } +#ifdef CONFIG_USB_OTG_UTILS transceiver = otg_get_transceiver(); if (transceiver && !pdata->is_usb_online) { pdata->is_usb_online = otg_is_usb_online; @@ -324,6 +328,7 @@ static int pda_power_probe(struct platform_device *pdev) if (transceiver && !pdata->is_ac_online) { pdata->is_ac_online = otg_is_ac_online; } +#endif if (pdata->is_ac_online) { ret = power_supply_register(&pdev->dev, &pda_psy_ac); @@ -367,6 +372,7 @@ static int pda_power_probe(struct platform_device *pdev) } } +#ifdef CONFIG_USB_OTG_UTILS if (transceiver && pdata->use_otg_notifier) { otg_nb.notifier_call = otg_handle_notification; ret = otg_register_notifier(transceiver, &otg_nb); @@ -376,6 +382,7 @@ static int pda_power_probe(struct platform_device *pdev) } polling = 0; } +#endif if (polling) { dev_dbg(dev, "will poll for status\n"); @@ -389,17 +396,21 @@ static int pda_power_probe(struct platform_device *pdev) return 0; +#ifdef CONFIG_USB_OTG_UTILS otg_reg_notifier_failed: if (pdata->is_usb_online && usb_irq) free_irq(usb_irq->start, &pda_psy_usb); +#endif usb_irq_failed: if (pdata->is_usb_online) power_supply_unregister(&pda_psy_usb); usb_supply_failed: if (pdata->is_ac_online && ac_irq) free_irq(ac_irq->start, &pda_psy_ac); +#ifdef CONFIG_USB_OTG_UTILS if (transceiver) otg_put_transceiver(transceiver); +#endif ac_irq_failed: if (pdata->is_ac_online) power_supply_unregister(&pda_psy_ac);