usb: chipidea: put hw_phymode_configure before ci_usb_phy_init
authorChris Ruehl <chris.ruehl@gtsys.com.hk>
Fri, 10 Jan 2014 05:51:30 +0000 (13:51 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 13 Jan 2014 23:55:19 +0000 (15:55 -0800)
hw_phymode_configure configures the PORTSC registers and allow the
following phy_inits to operate on the right parameters. This fix a problem
where the UPLI (ISP1504) could not be detected, because the Viewport was not
available and read the viewport return 0's only.

Signed-off-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/chipidea/core.c

index edeec363868497cfa4b06ca4bcf2edf0ac9df972..33f22bc6ad7f3063a2299921d29948dc3a73b216 100644 (file)
@@ -559,6 +559,8 @@ static int ci_hdrc_probe(struct platform_device *pdev)
                return -ENODEV;
        }
 
+       hw_phymode_configure(ci);
+
        ret = ci_usb_phy_init(ci);
        if (ret) {
                dev_err(dev, "unable to init phy: %d\n", ret);
@@ -576,8 +578,6 @@ static int ci_hdrc_probe(struct platform_device *pdev)
 
        ci_get_otg_capable(ci);
 
-       hw_phymode_configure(ci);
-
        dr_mode = ci->platdata->dr_mode;
        /* initialize role(s) before the interrupt is requested */
        if (dr_mode == USB_DR_MODE_OTG || dr_mode == USB_DR_MODE_HOST) {