Re: [PATCH v2 2/2 RESEND] usb: dwc3: remove generic PHY calibrate() calls

From: Felipe Balbi
Date: Thu Aug 08 2019 - 08:37:20 EST



Hi,

Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> writes:
> On 2019-08-08 11:51, Felipe Balbi wrote:
>> Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> writes:
>>> 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@xxxxxxxxxxx>
>>> Tested-by: Anand Moon <linux.amoon@xxxxxxxxx>
>>> Tested-by: Jochen Sprickerhof <jochen@xxxxxxxxxxxxxx>
>>> ---
>>> drivers/usb/dwc3/core.c | 2 --
>>> 1 file changed, 2 deletions(-)
>>>
>>> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
>>> index c9bb93a2c81e..7dd6d419254d 100644
>>> --- a/drivers/usb/dwc3/core.c
>>> +++ b/drivers/usb/dwc3/core.c
>>> @@ -168,7 +168,6 @@ static void __dwc3_set_mode(struct work_struct *work)
>>> otg_set_vbus(dwc->usb2_phy->otg, true);
>>> phy_set_mode(dwc->usb2_generic_phy, PHY_MODE_USB_HOST);
>>> phy_set_mode(dwc->usb3_generic_phy, PHY_MODE_USB_HOST);
>>> - phy_calibrate(dwc->usb2_generic_phy);
>> are you sure you're the only one using phy_calibrate()? I don't want any
>> regressions because of this :-p
>
> Yes I've checked. In case of USB PHYs, the .calibrate method is only
> implemented by Exynos DRDUSB3 PHY driver:
>
> # git grep \\\.calibrate drivers/phy
> drivers/phy/broadcom/phy-brcm-sata.c:ÂÂ .calibrateÂÂÂÂÂ =
> brcm_sata_phy_calibrate,
> drivers/phy/qualcomm/phy-qcom-ufs-qmp-14nm.c: .calibrateÂÂÂÂÂÂÂÂÂÂÂÂÂ =
> ufs_qcom_phy_qmp_14nm_phy_calibrate,
> drivers/phy/qualcomm/phy-qcom-ufs-qmp-20nm.c: .calibrateÂÂÂÂÂÂÂÂÂÂÂÂÂ =
> ufs_qcom_phy_qmp_20nm_phy_calibrate,
> drivers/phy/samsung/phy-exynos5-usbdrd.c:ÂÂÂÂÂÂ .calibrateÂÂÂÂÂ =
> exynos5_usbdrd_phy_calibrate,
>
> (the other PHY drivers are for SATA or UFS).
>
> To avoid the regression on Exynos it is enough to apply the 2 patches
> from this patchset together.

We should, certainly, apply them together. But my concern is that
someone has been depending on this. If you've checked all other PHY
drivers, then I'm okay with removing the call.

As $subject should be applied together with the previous patch, here's
my Ack:

Acked-by: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx>

@Greg, if you prefer that I queue both patches and send you in a pull
request, let me know. Works either way for me. I can just rebase my
testing/next on top of your tree once you apply these patches.

cheers

--
balbi

Attachment: signature.asc
Description: PGP signature