summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Chen <peter.chen@freescale.com>2013-05-02 09:28:10 +0800
committerPeter Chen <peter.chen@freescale.com>2013-05-03 12:49:05 +0800
commit52ac82c00c5d0581232e1c6dcb0a522612464d9b (patch)
tree7e71d55450852b1f1bf7b3762bb46ac513b968cb
parent9e774e17d1265d0f34b386312871b86111edee7e (diff)
ENGR00261037-2: usb: fix the bug that mark lowpower flag wrongly
At default, we mark lowpower as true. After PHY initialization finishes, it should mark lowpower as false. Besides, at error patch, we need to mark lowpower as true. Signed-off-by: Peter Chen <peter.chen@freescale.com>
-rwxr-xr-xdrivers/usb/gadget/arcotg_udc.c3
-rwxr-xr-xdrivers/usb/host/ehci-arc.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/drivers/usb/gadget/arcotg_udc.c b/drivers/usb/gadget/arcotg_udc.c
index 7429d4b13130..23b905a60818 100755
--- a/drivers/usb/gadget/arcotg_udc.c
+++ b/drivers/usb/gadget/arcotg_udc.c
@@ -3075,10 +3075,10 @@ static int __devinit fsl_udc_probe(struct platform_device *pdev)
* do platform specific init: check the clock, grab/config pins, etc.
*/
if (pdata->init && pdata->init(pdev)) {
- pdata->lowpower = false;
ret = -ENODEV;
goto err2a;
}
+ pdata->lowpower = false;
spin_lock_init(&pdata->lock);
@@ -3234,6 +3234,7 @@ err4:
err3:
free_irq(udc_controller->irq, udc_controller);
err2:
+ dr_phy_low_power_mode(udc_controller, true);
if (pdata->exit)
pdata->exit(pdata->pdev);
err2a:
diff --git a/drivers/usb/host/ehci-arc.c b/drivers/usb/host/ehci-arc.c
index f17f260033ac..080ba06b89b4 100755
--- a/drivers/usb/host/ehci-arc.c
+++ b/drivers/usb/host/ehci-arc.c
@@ -246,10 +246,10 @@ int usb_hcd_fsl_probe(const struct hc_driver *driver,
* do platform specific init: check the clock, grab/config pins, etc.
*/
if (pdata->init && pdata->init(pdev)) {
- pdata->lowpower = false;
retval = -ENODEV;
goto err4;
}
+ pdata->lowpower = false;
spin_lock_init(&pdata->lock);
@@ -315,6 +315,7 @@ err2:
usb_put_hcd(hcd);
err1:
dev_err(&pdev->dev, "init %s fail, %d\n", dev_name(&pdev->dev), retval);
+ fsl_usb_lowpower_mode(pdata, true);
if (pdata->exit)
pdata->exit(pdata->pdev);
return retval;