drivers: usb: dwc3: setup phy before dwc3 core soft reset
authorT Karthik Reddy <t.karthik.reddy@xilinx.com>
Wed, 1 May 2019 04:44:49 +0000 (10:14 +0530)
committerMichal Simek <michal.simek@xilinx.com>
Tue, 8 Oct 2019 07:41:27 +0000 (09:41 +0200)
Phy setup should be done before dwc3 soft core reset as it is done
in linux & this fixes unreliable detection of usb cable on host side.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
drivers/usb/dwc3/core.c

index 56e2a046bf060177a7751aef31011f52f8a0c14f..2498f0efb1a488aee4854e51072852fde5ad8a4f 100644 (file)
@@ -440,6 +440,8 @@ static int dwc3_core_init(struct dwc3 *dwc)
                goto err0;
        }
 
+       dwc3_phy_setup(dwc);
+
        ret = dwc3_core_soft_reset(dwc);
        if (ret)
                goto err0;
@@ -514,8 +516,6 @@ static int dwc3_core_init(struct dwc3 *dwc)
 
        dwc3_writel(dwc->regs, DWC3_GCTL, reg);
 
-       dwc3_phy_setup(dwc);
-
        ret = dwc3_alloc_scratch_buffers(dwc);
        if (ret)
                goto err0;