usb: chipidea: move hw_phymode_configure() into probe
authorFabio Estevam <fabio.estevam@freescale.com>
Wed, 14 Aug 2013 09:43:56 +0000 (12:43 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 14 Aug 2013 19:34:15 +0000 (12:34 -0700)
Currently hw_phymode_configure() is located inside hw_device_reset(), which is
only called by chipidea udc driver.

When operating in host mode, we also need to call hw_phymode_configure() in
order to properly configure the PHY mode, so move this function into probe.

After this change, USB Host1 port on mx53qsb board is functional.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Tested-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Reviewed-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/chipidea/core.c

index a5df24c578fc8b65b8945781a0cacb6e6bb33977..a5b3774bb223d84f69c9bd6d145d00858152e009 100644 (file)
@@ -264,8 +264,6 @@ int hw_device_reset(struct ci_hdrc *ci, u32 mode)
        while (hw_read(ci, OP_USBCMD, USBCMD_RST))
                udelay(10);             /* not RTOS friendly */
 
-       hw_phymode_configure(ci);
-
        if (ci->platdata->notify_event)
                ci->platdata->notify_event(ci,
                        CI_HDRC_CONTROLLER_RESET_EVENT);
@@ -457,6 +455,8 @@ static int ci_hdrc_probe(struct platform_device *pdev)
        if (!ci->platdata->phy_mode)
                ci->platdata->phy_mode = of_usb_get_phy_mode(dev->of_node);
 
+       hw_phymode_configure(ci);
+
        if (!ci->platdata->dr_mode)
                ci->platdata->dr_mode = of_usb_get_dr_mode(dev->of_node);