usb: dwc3: remove generic PHY calibrate() calls
[ Upstream commit a0a465569b45e3690be155c96fb54603d6904f41 ] Calls to USB2 generic PHY calibrate() method has been moved to HCD core, which now successfully handles generic PHYs and their calibration after every HCD reset. This fixes all the timing issues related to PHY calibration done directly from DWC3 driver: incorrect operation after system suspend/resume or USB3.0 detection failure when XHCI-plat driver compiled as separate module. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Tested-by: Anand Moon <linux.amoon@gmail.com> Tested-by: Jochen Sprickerhof <jochen@sprickerhof.de> Acked-by: Felipe Balbi <felipe.balbi@linux.intel.com> Link: https://lore.kernel.org/r/20190829053028.32438-3-m.szyprowski@samsung.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Stable-dep-of: 0d410e8913f5 ("usb: dwc3: core: Stop processing of pending events if controller is halted") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
f31398570a
commit
2b8f2afa31
@@ -167,7 +167,6 @@ static void __dwc3_set_mode(struct work_struct *work)
|
|||||||
otg_set_vbus(dwc->usb2_phy->otg, true);
|
otg_set_vbus(dwc->usb2_phy->otg, true);
|
||||||
phy_set_mode(dwc->usb2_generic_phy, PHY_MODE_USB_HOST);
|
phy_set_mode(dwc->usb2_generic_phy, PHY_MODE_USB_HOST);
|
||||||
phy_set_mode(dwc->usb3_generic_phy, PHY_MODE_USB_HOST);
|
phy_set_mode(dwc->usb3_generic_phy, PHY_MODE_USB_HOST);
|
||||||
phy_calibrate(dwc->usb2_generic_phy);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DWC3_GCTL_PRTCAP_DEVICE:
|
case DWC3_GCTL_PRTCAP_DEVICE:
|
||||||
@@ -1178,7 +1177,6 @@ static int dwc3_core_init_mode(struct dwc3 *dwc)
|
|||||||
dev_err(dev, "failed to initialize host\n");
|
dev_err(dev, "failed to initialize host\n");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
phy_calibrate(dwc->usb2_generic_phy);
|
|
||||||
break;
|
break;
|
||||||
case USB_DR_MODE_OTG:
|
case USB_DR_MODE_OTG:
|
||||||
INIT_WORK(&dwc->drd_work, __dwc3_set_mode);
|
INIT_WORK(&dwc->drd_work, __dwc3_set_mode);
|
||||||
|
|||||||
Reference in New Issue
Block a user