Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
[sfrench/cifs-2.6.git] / drivers / usb / host / ehci-mxc.c
index ead59f42e69b10e75be28c14a2186573d0723fdd..bd4027745aa7039e5cfcdd6b1bf4057ad8569d85 100644 (file)
@@ -199,18 +199,25 @@ static int ehci_mxc_drv_probe(struct platform_device *pdev)
        writel(pdata->portsc, hcd->regs + PORTSC_OFFSET);
        mdelay(10);
 
-       /* setup USBCONTROL. */
-       ret = mxc_set_usbcontrol(pdev->id, pdata->flags);
+       /* setup specific usb hw */
+       ret = mxc_initialize_usb_hw(pdev->id, pdata->flags);
        if (ret < 0)
                goto err_init;
 
        /* Initialize the transceiver */
        if (pdata->otg) {
                pdata->otg->io_priv = hcd->regs + ULPI_VIEWPORT_OFFSET;
-               if (otg_init(pdata->otg) != 0)
-                       dev_err(dev, "unable to init transceiver\n");
-               else if (otg_set_vbus(pdata->otg, 1) != 0)
+               ret = otg_init(pdata->otg);
+               if (ret) {
+                       dev_err(dev, "unable to init transceiver, probably missing\n");
+                       ret = -ENODEV;
+                       goto err_add;
+               }
+               ret = otg_set_vbus(pdata->otg, 1);
+               if (ret) {
                        dev_err(dev, "unable to enable vbus on transceiver\n");
+                       goto err_add;
+               }
        }
 
        priv->hcd = hcd;