[PATCH] usb: dwc3: Enable GBit Ethernet on Odroid XU4

From: Jochen Sprickerhof
Date: Mon Jan 21 2019 - 09:46:22 EST


Note that it only works with USB_XHCI_PLATFORM=y. Also it needs a hard
reset when coming from an unpatched kernel.

This was included in the original patch in
https://patchwork.kernel.org/patch/9992809/ but got dropped when
accepted in d8c80bb3b55b phy: exynos5-usbdrd: Calibrate LOS levels for
exynos5420/5800.

Old behaviour:

$ lsusb -t
/: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=r8152, 480M

New behaviour:

$ lsusb -t
/: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
|__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M

Tested on Debian unstable using u-boot-exynos (2018.11+dfsg-2) and Linux
4.19.14.

Signed-off-by: Jochen Sprickerhof <git@xxxxxxxxxxxxxxxxxxxxx>
---

Hi,

I'm not sure why this it only works with the driver compiled into the
kernel nor why it needs a hard reset or why it was the line was dropped
when the patch was accepted. Would be great to get some feedback of the
authors.

Cheers Jochen

drivers/usb/dwc3/core.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index a1b126f90261..0008bccc30aa 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -1169,7 +1169,8 @@ static int dwc3_core_init_mode(struct dwc3 *dwc)
dev_err(dev, "failed to initialize host\n");
return ret;
}
- phy_calibrate(dwc->usb2_generic_phy);
+ if (dwc->usb2_generic_phy)
+ phy_calibrate(dwc->usb2_generic_phy);
break;
case USB_DR_MODE_OTG:
INIT_WORK(&dwc->drd_work, __dwc3_set_mode);
--
2.20.1

Attachment: signature.asc
Description: PGP signature