Re: [PATCH] usb: dwc2: Force 8bit UTMI width for Samsung Exynos SoCs

From: Markus Reichl
Date: Tue May 07 2019 - 08:39:03 EST


Hi Marek,

Am 07.05.19 um 14:03 schrieb Marek Szyprowski:
> Hi All,
>
> On 2019-05-07 11:17, Marek Szyprowski wrote:
>> Hi Markus,
>>
>> On 2019-05-07 10:12, Markus Reichl wrote:
>>> Hi Marek,
>>>
>>> your patch did not help on stable v5.1
>>>
>>> [ÂÂÂ 3.255963] samsung-usb2-phy 125b0000.exynos-usbphy:
>>> 125b0000.exynos-usbphy supply vbus not found, using dummy regulator
>>> [ÂÂÂ 4.044547] usbcore: registered new interface driver smsc95xx
>>> [ÂÂÂ 4.112261] usb usb1: New USB device found, idVendor=1d6b,
>>> idProduct=0002, bcdDevice= 5.01
>>> [ÂÂÂ 4.120363] usb usb1: New USB device strings: Mfr=3, Product=2,
>>> SerialNumber=1
>>> [ÂÂÂ 4.127560] usb usb1: Product: EHCI Host Controller
>>> [ÂÂÂ 4.132415] usb usb1: Manufacturer: Linux
>>> 5.1.0-00005-geb4efae48eb5 ehci_hcd
>>> [ÂÂÂ 4.139446] usb usb1: SerialNumber: 12580000.ehci
>>> [ÂÂÂ 4.183056] usb3503 0-0008: switched to HUB mode
>>> [ÂÂÂ 4.183121] usb3503 0-0008: usb3503_probe: probed in hub mode
>>> [ÂÂÂ 4.488344] usb 1-2: new high-speed USB device number 2 using
>>> exynos-ehci
>>> [ÂÂÂ 4.675605] usb 1-2: New USB device found, idVendor=0424,
>>> idProduct=3503, bcdDevice=a1.a0
>>> [ÂÂÂ 4.678166] usb 1-2: New USB device strings: Mfr=0, Product=0,
>>> SerialNumber=0
>>> [ÂÂÂ 4.686140] usb 1-2: skipping disabled interface 0
>>>
>>> root@odroid-x2:~# lsusb
>>> Bus 001 Device 002: ID 0424:3503 Standard Microsystems Corp.
>>> Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
>>
>> This patch fixes the issue introduced by "usb: dwc2: gadget: Replace
>> phyif with phy_utmi_width" commit, which is queued only to linux-next
>> so far. Stable v5.1 doesn't include it, so the fix doesn't change
>> anything on v5.1.
>>
>> I've checked and OdroidU3 works fine with v5.1 release, but X2 fails
>> to detect USB devices. I will investigate this in a few minutes...
>
>
> Broken USB on X2 is caused by commit
> 01fdf179f4b064d4c9d30b39aba178caf32649f4 ("usb: core: skip interfaces
> disabled in devicetree").
>
> I looks that the mentioned commit conflicts with the Exynos EHCI and
> OHCI bindings and the way the PHY ports are defined for those drivers.
> It worked on U3 only by the pure coincidence. This is probably a
> "minimal" fix for this issue:

Thanks Marek, below fix enables USB on Odroid-X2 with stable v5.1.

>
> diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
> index 82239f27c4cc..cd455c4add25 100644
> --- a/drivers/usb/core/message.c
> +++ b/drivers/usb/core/message.c
> @@ -2007,6 +2007,7 @@ int usb_set_configuration(struct usb_device *dev,
> int configuration)
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ struct usb_interface *intf = cp->interface[i];
>
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ if (intf->dev.of_node &&
> +ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ of_device_is_compatible(intf->dev.of_node, NULL) &&
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ !of_device_is_available(intf->dev.of_node)) {
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ dev_info(&dev->dev, "skipping disabled
> interface %d\n",
> intf->cur_altsetting->desc.bInterfaceNumber);
>
> I will try to describe the problem in details and discuss it on the usb
> mailing list.
>
> Best regards
>

GruÃ,
--
Markus Reichl

Attachment: signature.asc
Description: OpenPGP digital signature