linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ARM: dts: Odroid XU4: fix USB3.0 ports
@ 2017-01-24 13:48 Richard Genoud
  2017-01-24 18:22 ` Krzysztof Kozlowski
  2017-01-25  5:51 ` Anand Moon
  0 siblings, 2 replies; 13+ messages in thread
From: Richard Genoud @ 2017-01-24 13:48 UTC (permalink / raw)
  To: Felipe Balbi, Huang Rui, Krzysztof Kozlowski,
	Javier Martinez Canillas, Heikki Krogerus, Kukjin Kim,
	devicetree, Linux USB Mailing List, linux-samsung-soc,
	linux-kernel
  Cc: Richard Genoud, stable, #, 4.4+

Since commit 2164a476205ccc ("usb: dwc3: set SUSPHY bit for all cores"),
the USB ports on odroid-XU4 don't work anymore.

Inserting an usb key (USB2.0) on the USB3.0 port result in:
[   64.488264] xhci-hcd xhci-hcd.2.auto: Port resume took longer than 20000 msec, port status = 0xc400fe3
[   74.568156] xhci-hcd xhci-hcd.2.auto: xHCI host not responding to stop endpoint command.
[   74.574806] xhci-hcd xhci-hcd.2.auto: Assuming host is dying, halting host.
[   74.601970] xhci-hcd xhci-hcd.2.auto: HC died; cleaning up
[   74.606276] usb 3-1: USB disconnect, device number 2
[   74.613565] usb 4-1: USB disconnect, device number 2
[   74.621208] usb usb3-port1: couldn't allocate usb_device
NB: it's not related to USB2.0 devices, I get the same result with an USB3.0 device (SATA to USB3 for instance).
NB2: it doesn't happen on an odriod-XU3 board, that doesn't have the realtek RTL8153 chip.

If the lines:
	if (dwc->revision > DWC3_REVISION_194A)
		reg |= DWC3_GUSB3PIPECTL_SUSPHY;
are commented out, the USB3.0 start working.

For a full analyse: https://lkml.org/lkml/2017/1/18/678

Felipe suggested that suspend should be disabled temporarily while
what's wrong with DCW3 is figured out.

Tested on Odroid XU4

Suggested-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Tested-by: Richard Genoud <richard.genoud@gmail.com>
Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
Cc: stable@vger.kernel.org # 4.4+
Fixes: 2164a476205ccc ("usb: dwc3: set SUSPHY bit for all cores")
---
 arch/arm/boot/dts/exynos5422-odroidxu4.dts | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/arch/arm/boot/dts/exynos5422-odroidxu4.dts b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
index 2faf88627a48..f62dbd9b5ad3 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu4.dts
+++ b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
@@ -43,6 +43,15 @@
 	status = "okay";
 };
 
+&usbdrd_dwc3_0 {
+	/*
+	 * without that, usb devices are not recognized when
+	 * they are plugged.
+	 * cf: https://lkml.org/lkml/2017/1/18/678
+	 */
+	snps,dis_u3_susphy_quirk;
+};
+
 &usbdrd_dwc3_1 {
 	dr_mode = "host";
 };

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH] ARM: dts: Odroid XU4: fix USB3.0 ports
  2017-01-24 13:48 [PATCH] ARM: dts: Odroid XU4: fix USB3.0 ports Richard Genoud
@ 2017-01-24 18:22 ` Krzysztof Kozlowski
  2017-01-25  8:34   ` Richard Genoud
  2017-01-25  5:51 ` Anand Moon
  1 sibling, 1 reply; 13+ messages in thread
From: Krzysztof Kozlowski @ 2017-01-24 18:22 UTC (permalink / raw)
  To: Richard Genoud
  Cc: Felipe Balbi, Huang Rui, Krzysztof Kozlowski,
	Javier Martinez Canillas, Heikki Krogerus, Kukjin Kim,
	devicetree, Linux USB Mailing List, linux-samsung-soc,
	linux-kernel, stable, #, 4.4+

On Tue, Jan 24, 2017 at 02:48:09PM +0100, Richard Genoud wrote:
> Since commit 2164a476205ccc ("usb: dwc3: set SUSPHY bit for all cores"),
> the USB ports on odroid-XU4 don't work anymore.

Hi,

Thanks for the patch. Please:
1. Use recent kernel to test it, which could be one of: mainline
   (Linus'), recent linux-next or my for-next branch. Why am I thinking
   that you did not test it on thse? Because you sent the patch to
   k.kozlowski@samsung.com. The guy disappeared four months ago and
   recent kernel has all addresses updated (including mailmap).
2. Fix the title to match subsystem (git log --oneline arch/arm/boot/dts/exynos*).


> 
> Inserting an usb key (USB2.0) on the USB3.0 port result in:
> [   64.488264] xhci-hcd xhci-hcd.2.auto: Port resume took longer than 20000 msec, port status = 0xc400fe3
> [   74.568156] xhci-hcd xhci-hcd.2.auto: xHCI host not responding to stop endpoint command.
> [   74.574806] xhci-hcd xhci-hcd.2.auto: Assuming host is dying, halting host.
> [   74.601970] xhci-hcd xhci-hcd.2.auto: HC died; cleaning up
> [   74.606276] usb 3-1: USB disconnect, device number 2
> [   74.613565] usb 4-1: USB disconnect, device number 2
> [   74.621208] usb usb3-port1: couldn't allocate usb_device
> NB: it's not related to USB2.0 devices, I get the same result with an USB3.0 device (SATA to USB3 for instance).
> NB2: it doesn't happen on an odriod-XU3 board, that doesn't have the realtek RTL8153 chip.

Odroid-XU3
s/realtek/Realtek/

However I do not think that Realtek matters here. The USB3 ports are
directly accessible on XU3. On XU4 on the other hand, the port USB3-0 is
connected to USB hub. I think the sentence about Realtek is then
misleading, so just mention the XU3.

> 
> If the lines:
> 	if (dwc->revision > DWC3_REVISION_194A)
> 		reg |= DWC3_GUSB3PIPECTL_SUSPHY;
> are commented out, the USB3.0 start working.

s/start/starts/

> 
> For a full analyse: https://lkml.org/lkml/2017/1/18/678

Documentation/process/submitting-patches.rst
Instead of this above (lkml.org is highly discouraged) use proper
https://lkml.kernel.org/ in "Link:" put next to other tags (look at
recent commits), however I do not find this link as necessary.  Just
describe here what is wrong and how you are going to fix it.

> 
> Felipe suggested that suspend should be disabled temporarily while
> what's wrong with DCW3 is figured out.
> 
> Tested on Odroid XU4
> 
> Suggested-by: Felipe Balbi <felipe.balbi@linux.intel.com>
> Tested-by: Richard Genoud <richard.genoud@gmail.com>

Being an author implies testing. Please remove the tag.

> Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
> Cc: stable@vger.kernel.org # 4.4+

Malformed tag - missing <>.

> Fixes: 2164a476205ccc ("usb: dwc3: set SUSPHY bit for all cores")

No need for such long hash (2164a476205c).

I wonder about pointing the commit which introduced the issue. Usually
the fixes directly indicates how far we want the patch to be backported.
In this case this should be backported to kernel bringing XU4 DTS. The
commit which was not valid, was the commit adding DTS without this
property. 2164a476205c was innocent for XU4 because XU4 did not exist
that time.

Definitely something is wrong if Fixes tag does not match indicated
backport version.

> ---
>  arch/arm/boot/dts/exynos5422-odroidxu4.dts | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu4.dts b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
> index 2faf88627a48..f62dbd9b5ad3 100644
> --- a/arch/arm/boot/dts/exynos5422-odroidxu4.dts
> +++ b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
> @@ -43,6 +43,15 @@
>  	status = "okay";
>  };
>  
> +&usbdrd_dwc3_0 {
> +	/*
> +	 * without that, usb devices are not recognized when
> +	 * they are plugged.

s/without/Without/
s/usb/USB.

> +	 * cf: https://lkml.org/lkml/2017/1/18/678

No external resources. You can extend a little bit the sentence above to
two sentences. Combined with "git log" this would be sufficient.

Best regards,
Krzysztof

> +	 */
> +	snps,dis_u3_susphy_quirk;
> +};
> +
>  &usbdrd_dwc3_1 {
>  	dr_mode = "host";
>  };
> --
> To unsubscribe from this list: send the line "unsubscribe devicetree" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] ARM: dts: Odroid XU4: fix USB3.0 ports
  2017-01-24 13:48 [PATCH] ARM: dts: Odroid XU4: fix USB3.0 ports Richard Genoud
  2017-01-24 18:22 ` Krzysztof Kozlowski
@ 2017-01-25  5:51 ` Anand Moon
  2017-01-25  7:55   ` Krzysztof Kozlowski
  1 sibling, 1 reply; 13+ messages in thread
From: Anand Moon @ 2017-01-25  5:51 UTC (permalink / raw)
  To: Richard Genoud
  Cc: Felipe Balbi, Huang Rui, Krzysztof Kozlowski,
	Javier Martinez Canillas, Heikki Krogerus, Kukjin Kim,
	devicetree, Linux USB Mailing List, linux-samsung-soc,
	Linux Kernel, stable, #, 4.4+

Hi Richard,

On 24 January 2017 at 19:18, Richard Genoud <richard.genoud@gmail.com> wrote:
> Since commit 2164a476205ccc ("usb: dwc3: set SUSPHY bit for all cores"),
> the USB ports on odroid-XU4 don't work anymore.
>
> Inserting an usb key (USB2.0) on the USB3.0 port result in:
> [   64.488264] xhci-hcd xhci-hcd.2.auto: Port resume took longer than 20000 msec, port status = 0xc400fe3
> [   74.568156] xhci-hcd xhci-hcd.2.auto: xHCI host not responding to stop endpoint command.
> [   74.574806] xhci-hcd xhci-hcd.2.auto: Assuming host is dying, halting host.
> [   74.601970] xhci-hcd xhci-hcd.2.auto: HC died; cleaning up
> [   74.606276] usb 3-1: USB disconnect, device number 2
> [   74.613565] usb 4-1: USB disconnect, device number 2
> [   74.621208] usb usb3-port1: couldn't allocate usb_device
> NB: it's not related to USB2.0 devices, I get the same result with an USB3.0 device (SATA to USB3 for instance).
> NB2: it doesn't happen on an odriod-XU3 board, that doesn't have the realtek RTL8153 chip.
>
> If the lines:
>         if (dwc->revision > DWC3_REVISION_194A)
>                 reg |= DWC3_GUSB3PIPECTL_SUSPHY;
> are commented out, the USB3.0 start working.
>
> For a full analyse: https://lkml.org/lkml/2017/1/18/678
>
> Felipe suggested that suspend should be disabled temporarily while
> what's wrong with DCW3 is figured out.
>
> Tested on Odroid XU4
>
> Suggested-by: Felipe Balbi <felipe.balbi@linux.intel.com>
> Tested-by: Richard Genoud <richard.genoud@gmail.com>
> Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
> Cc: stable@vger.kernel.org # 4.4+
> Fixes: 2164a476205ccc ("usb: dwc3: set SUSPHY bit for all cores")
> ---
>  arch/arm/boot/dts/exynos5422-odroidxu4.dts | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu4.dts b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
> index 2faf88627a48..f62dbd9b5ad3 100644
> --- a/arch/arm/boot/dts/exynos5422-odroidxu4.dts
> +++ b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
> @@ -43,6 +43,15 @@
>         status = "okay";
>  };
>
> +&usbdrd_dwc3_0 {
> +       /*
> +        * without that, usb devices are not recognized when
> +        * they are plugged.
> +        * cf: https://lkml.org/lkml/2017/1/18/678
> +        */
> +       snps,dis_u3_susphy_quirk;
> +};
> +
>  &usbdrd_dwc3_1 {
>         dr_mode = "host";
>  };
> --

Thanks for this patch.
But could you consider moving this changes as below.

https://lkml.org/lkml/2015/3/18/400

Best Regards
-Anand

> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] ARM: dts: Odroid XU4: fix USB3.0 ports
  2017-01-25  5:51 ` Anand Moon
@ 2017-01-25  7:55   ` Krzysztof Kozlowski
  2017-01-25 13:48     ` Marek Szyprowski
  0 siblings, 1 reply; 13+ messages in thread
From: Krzysztof Kozlowski @ 2017-01-25  7:55 UTC (permalink / raw)
  To: Anand Moon, Richard Genoud, Marek Szyprowski,
	Bartłomiej Żołnierkiewicz
  Cc: Felipe Balbi, Huang Rui, Javier Martinez Canillas,
	Heikki Krogerus, Kukjin Kim, devicetree, Linux USB Mailing List,
	linux-samsung-soc, Linux Kernel

On Wed, Jan 25, 2017 at 7:51 AM, Anand Moon <linux.amoon@gmail.com> wrote:
> Hi Richard,
>
> On 24 January 2017 at 19:18, Richard Genoud <richard.genoud@gmail.com> wrote:
>> Since commit 2164a476205ccc ("usb: dwc3: set SUSPHY bit for all cores"),
>> the USB ports on odroid-XU4 don't work anymore.
>>
>> Inserting an usb key (USB2.0) on the USB3.0 port result in:
>> [   64.488264] xhci-hcd xhci-hcd.2.auto: Port resume took longer than 20000 msec, port status = 0xc400fe3
>> [   74.568156] xhci-hcd xhci-hcd.2.auto: xHCI host not responding to stop endpoint command.
>> [   74.574806] xhci-hcd xhci-hcd.2.auto: Assuming host is dying, halting host.
>> [   74.601970] xhci-hcd xhci-hcd.2.auto: HC died; cleaning up
>> [   74.606276] usb 3-1: USB disconnect, device number 2
>> [   74.613565] usb 4-1: USB disconnect, device number 2
>> [   74.621208] usb usb3-port1: couldn't allocate usb_device
>> NB: it's not related to USB2.0 devices, I get the same result with an USB3.0 device (SATA to USB3 for instance).
>> NB2: it doesn't happen on an odriod-XU3 board, that doesn't have the realtek RTL8153 chip.
>>
>> If the lines:
>>         if (dwc->revision > DWC3_REVISION_194A)
>>                 reg |= DWC3_GUSB3PIPECTL_SUSPHY;
>> are commented out, the USB3.0 start working.
>>
>> For a full analyse: https://lkml.org/lkml/2017/1/18/678
>>
>> Felipe suggested that suspend should be disabled temporarily while
>> what's wrong with DCW3 is figured out.
>>
>> Tested on Odroid XU4
>>
>> Suggested-by: Felipe Balbi <felipe.balbi@linux.intel.com>
>> Tested-by: Richard Genoud <richard.genoud@gmail.com>
>> Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
>> Cc: stable@vger.kernel.org # 4.4+
>> Fixes: 2164a476205ccc ("usb: dwc3: set SUSPHY bit for all cores")
>> ---
>>  arch/arm/boot/dts/exynos5422-odroidxu4.dts | 9 +++++++++
>>  1 file changed, 9 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu4.dts b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>> index 2faf88627a48..f62dbd9b5ad3 100644
>> --- a/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>> +++ b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>> @@ -43,6 +43,15 @@
>>         status = "okay";
>>  };
>>
>> +&usbdrd_dwc3_0 {
>> +       /*
>> +        * without that, usb devices are not recognized when
>> +        * they are plugged.
>> +        * cf: https://lkml.org/lkml/2017/1/18/678
>> +        */
>> +       snps,dis_u3_susphy_quirk;
>> +};
>> +
>>  &usbdrd_dwc3_1 {
>>         dr_mode = "host";
>>  };
>> --
>
> Thanks for this patch.
> But could you consider moving this changes as below.
>
> https://lkml.org/lkml/2015/3/18/400

The patch above (and other DTS patches from the set) was not even sent
to linux-samsung-soc nor to me... It is sad how easily one's work can
disappear. Also, it is really worthless to solve the same problem
twice.

Cc Marek and Bartlomiej,
Guys, do you want to continue with Robert's patch (linked above by
Anand)? If yes, please take the ownership (Robert's address is not
valid anymore). If not, I will take Richard's patch after
resubmission.

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] ARM: dts: Odroid XU4: fix USB3.0 ports
  2017-01-24 18:22 ` Krzysztof Kozlowski
@ 2017-01-25  8:34   ` Richard Genoud
  0 siblings, 0 replies; 13+ messages in thread
From: Richard Genoud @ 2017-01-25  8:34 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: Felipe Balbi, Huang Rui, Javier Martinez Canillas,
	Heikki Krogerus, Kukjin Kim, devicetree, Linux USB Mailing List,
	linux-samsung-soc, linux-kernel, Marek Szyprowski,
	Bartłomiej Żołnierkiewicz

On 24/01/2017 19:22, Krzysztof Kozlowski wrote:
> On Tue, Jan 24, 2017 at 02:48:09PM +0100, Richard Genoud wrote:
>> Since commit 2164a476205ccc ("usb: dwc3: set SUSPHY bit for all cores"),
>> the USB ports on odroid-XU4 don't work anymore.
> 
> Hi,
> 
> Thanks for the patch. Please:
> 1. Use recent kernel to test it, which could be one of: mainline
>    (Linus'), recent linux-next or my for-next branch. Why am I thinking
>    that you did not test it on thse? Because you sent the patch to
>    k.kozlowski@samsung.com. The guy disappeared four months ago and
>    recent kernel has all addresses updated (including mailmap).
My bad, I took the email from the commit 6658356014cb ("ARM: dts: Add
support Odroid XU4 board for exynos5422-odroidxu4") instead of taking it
from get_maintainer (That was clearly a bad idea).
I actually ran my tests on 4.4.44 / 4.8.5 / 4.9.5 4.10-rc4
I'll also run them on -next

> 2. Fix the title to match subsystem (git log --oneline arch/arm/boot/dts/exynos*).
Ok

> 
>>
>> Inserting an usb key (USB2.0) on the USB3.0 port result in:
>> [   64.488264] xhci-hcd xhci-hcd.2.auto: Port resume took longer than 20000 msec, port status = 0xc400fe3
>> [   74.568156] xhci-hcd xhci-hcd.2.auto: xHCI host not responding to stop endpoint command.
>> [   74.574806] xhci-hcd xhci-hcd.2.auto: Assuming host is dying, halting host.
>> [   74.601970] xhci-hcd xhci-hcd.2.auto: HC died; cleaning up
>> [   74.606276] usb 3-1: USB disconnect, device number 2
>> [   74.613565] usb 4-1: USB disconnect, device number 2
>> [   74.621208] usb usb3-port1: couldn't allocate usb_device
>> NB: it's not related to USB2.0 devices, I get the same result with an USB3.0 device (SATA to USB3 for instance).
>> NB2: it doesn't happen on an odriod-XU3 board, that doesn't have the realtek RTL8153 chip.
> 
> Odroid-XU3
> s/realtek/Realtek/
> However I do not think that Realtek matters here. The USB3 ports are
> directly accessible on XU3. On XU4 on the other hand, the port USB3-0 is
> connected to USB hub. I think the sentence about Realtek is then
> misleading, so just mention the XU3.
Ok

> 
>>
>> If the lines:
>> 	if (dwc->revision > DWC3_REVISION_194A)
>> 		reg |= DWC3_GUSB3PIPECTL_SUSPHY;
>> are commented out, the USB3.0 start working.
> 
> s/start/starts/
Ok

>>
>> For a full analyse: https://lkml.org/lkml/2017/1/18/678
> 
> Documentation/process/submitting-patches.rst
> Instead of this above (lkml.org is highly discouraged) use proper
> https://lkml.kernel.org/ in "Link:" put next to other tags (look at
> recent commits), however I do not find this link as necessary.  Just
> describe here what is wrong and how you are going to fix it.
Ok

>>
>> Felipe suggested that suspend should be disabled temporarily while
>> what's wrong with DCW3 is figured out.
>>
>> Tested on Odroid XU4
>>
>> Suggested-by: Felipe Balbi <felipe.balbi@linux.intel.com>
>> Tested-by: Richard Genoud <richard.genoud@gmail.com>
> 
> Being an author implies testing. Please remove the tag.
Ok

>> Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
>> Cc: stable@vger.kernel.org # 4.4+
> 
> Malformed tag - missing <>.
Ok

>> Fixes: 2164a476205ccc ("usb: dwc3: set SUSPHY bit for all cores")
> 
> No need for such long hash (2164a405762c).
> 
> I wonder about pointing the commit which introduced the issue. Usually
> the fixes directly indicates how far we want the patch to be backported.
> In this case this should be backported to kernel bringing XU4 DTS. The
> commit which was not valid, was the commit adding DTS without this
> property. 2164a476205c was innocent for XU4 because XU4 did not exist
> that time.
> 
> Definitely something is wrong if Fixes tag does not match indicated
> backport version.

Yes, I see what you mean. We can't say that 2164a476205ccc ("usb: dwc3:
set SUSPHY bit for all cores") broke XU4 because it predates it !
I'll simply remove that.

>> ---
>>  arch/arm/boot/dts/exynos5422-odroidxu4.dts | 9 +++++++++
>>  1 file changed, 9 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu4.dts b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>> index 2faf88627a48..f62dbd9b5ad3 100644
>> --- a/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>> +++ b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>> @@ -43,6 +43,15 @@
>>  	status = "okay";
>>  };
>>  
>> +&usbdrd_dwc3_0 {
>> +	/*
>> +	 * without that, usb devices are not recognized when
>> +	 * they are plugged.
> 
> s/without/Without/
> s/usb/USB.
> 
>> +	 * cf: https://lkml.org/lkml/2017/1/18/678
> 
> No external resources. You can extend a little bit the sentence above to
> two sentences. Combined with "git log" this would be sufficient.

Ok
> Best regards,
> Krzysztof

Thanks !

>> +	 */
>> +	snps,dis_u3_susphy_quirk;
>> +};
>> +
>>  &usbdrd_dwc3_1 {
>>  	dr_mode = "host";
>>  };
>> --
>> To unsubscribe from this list: send the line "unsubscribe devicetree" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] ARM: dts: Odroid XU4: fix USB3.0 ports
  2017-01-25  7:55   ` Krzysztof Kozlowski
@ 2017-01-25 13:48     ` Marek Szyprowski
  2017-01-25 14:17       ` Krzysztof Kozlowski
  0 siblings, 1 reply; 13+ messages in thread
From: Marek Szyprowski @ 2017-01-25 13:48 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Anand Moon, Richard Genoud,
	Bartłomiej Żołnierkiewicz
  Cc: Felipe Balbi, Huang Rui, Javier Martinez Canillas,
	Heikki Krogerus, Kukjin Kim, devicetree, Linux USB Mailing List,
	linux-samsung-soc, Linux Kernel

Hi Krzysztof,

On 2017-01-25 08:55, Krzysztof Kozlowski wrote:
> On Wed, Jan 25, 2017 at 7:51 AM, Anand Moon <linux.amoon@gmail.com> wrote:
>> On 24 January 2017 at 19:18, Richard Genoud <richard.genoud@gmail.com> wrote:
>>> Since commit 2164a476205ccc ("usb: dwc3: set SUSPHY bit for all cores"),
>>> the USB ports on odroid-XU4 don't work anymore.
>>>
>>> Inserting an usb key (USB2.0) on the USB3.0 port result in:
>>> [   64.488264] xhci-hcd xhci-hcd.2.auto: Port resume took longer than 20000 msec, port status = 0xc400fe3
>>> [   74.568156] xhci-hcd xhci-hcd.2.auto: xHCI host not responding to stop endpoint command.
>>> [   74.574806] xhci-hcd xhci-hcd.2.auto: Assuming host is dying, halting host.
>>> [   74.601970] xhci-hcd xhci-hcd.2.auto: HC died; cleaning up
>>> [   74.606276] usb 3-1: USB disconnect, device number 2
>>> [   74.613565] usb 4-1: USB disconnect, device number 2
>>> [   74.621208] usb usb3-port1: couldn't allocate usb_device
>>> NB: it's not related to USB2.0 devices, I get the same result with an USB3.0 device (SATA to USB3 for instance).
>>> NB2: it doesn't happen on an odriod-XU3 board, that doesn't have the realtek RTL8153 chip.
>>>
>>> If the lines:
>>>          if (dwc->revision > DWC3_REVISION_194A)
>>>                  reg |= DWC3_GUSB3PIPECTL_SUSPHY;
>>> are commented out, the USB3.0 start working.
>>>
>>> For a full analyse: https://lkml.org/lkml/2017/1/18/678
>>>
>>> Felipe suggested that suspend should be disabled temporarily while
>>> what's wrong with DCW3 is figured out.
>>>
>>> Tested on Odroid XU4
>>>
>>> Suggested-by: Felipe Balbi <felipe.balbi@linux.intel.com>
>>> Tested-by: Richard Genoud <richard.genoud@gmail.com>
>>> Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
>>> Cc: stable@vger.kernel.org # 4.4+
>>> Fixes: 2164a476205ccc ("usb: dwc3: set SUSPHY bit for all cores")
>>> ---
>>>   arch/arm/boot/dts/exynos5422-odroidxu4.dts | 9 +++++++++
>>>   1 file changed, 9 insertions(+)
>>>
>>> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu4.dts b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>>> index 2faf88627a48..f62dbd9b5ad3 100644
>>> --- a/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>>> +++ b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>>> @@ -43,6 +43,15 @@
>>>          status = "okay";
>>>   };
>>>
>>> +&usbdrd_dwc3_0 {
>>> +       /*
>>> +        * without that, usb devices are not recognized when
>>> +        * they are plugged.
>>> +        * cf: https://lkml.org/lkml/2017/1/18/678
>>> +        */
>>> +       snps,dis_u3_susphy_quirk;
>>> +};
>>> +
>>>   &usbdrd_dwc3_1 {
>>>          dr_mode = "host";
>>>   };
>>> --
>> Thanks for this patch.
>> But could you consider moving this changes as below.
>>
>> https://lkml.org/lkml/2015/3/18/400
> The patch above (and other DTS patches from the set) was not even sent
> to linux-samsung-soc nor to me... It is sad how easily one's work can
> disappear. Also, it is really worthless to solve the same problem
> twice.

Well, they were sent about 2 years ago... and you were also working on this
topic. ;)

> Cc Marek and Bartlomiej,
> Guys, do you want to continue with Robert's patch (linked above by
> Anand)? If yes, please take the ownership (Robert's address is not
> valid anymore). If not, I will take Richard's patch after
> resubmission.

Take Richard's patch because it has a bit more details describing why 
such quirk
is needed.

Richard: in Roberts patch there is also a quirk for USB 2.0 mode
(snps,dis_u2_susphy_quirk). Could you check if it really needed?

Maybe it would make sense to set those quirks for both DWC3 controllers, 
as this
issue with PHY suspend seems to be a Exynos specific thing.

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] ARM: dts: Odroid XU4: fix USB3.0 ports
  2017-01-25 13:48     ` Marek Szyprowski
@ 2017-01-25 14:17       ` Krzysztof Kozlowski
  2017-01-25 18:34         ` Anand Moon
  2017-01-27  7:29         ` Richard Genoud
  0 siblings, 2 replies; 13+ messages in thread
From: Krzysztof Kozlowski @ 2017-01-25 14:17 UTC (permalink / raw)
  To: Marek Szyprowski
  Cc: Anand Moon, Richard Genoud,
	Bartłomiej Żołnierkiewicz, Felipe Balbi,
	Huang Rui, Javier Martinez Canillas, Heikki Krogerus, Kukjin Kim,
	devicetree, Linux USB Mailing List, linux-samsung-soc,
	Linux Kernel

On Wed, Jan 25, 2017 at 3:48 PM, Marek Szyprowski
<m.szyprowski@samsung.com> wrote:
> Hi Krzysztof,
>
> On 2017-01-25 08:55, Krzysztof Kozlowski wrote:
>>
>> On Wed, Jan 25, 2017 at 7:51 AM, Anand Moon <linux.amoon@gmail.com> wrote:
>>>
>>> On 24 January 2017 at 19:18, Richard Genoud <richard.genoud@gmail.com>
>>> wrote:
>>>>
>>>> Since commit 2164a476205ccc ("usb: dwc3: set SUSPHY bit for all cores"),
>>>> the USB ports on odroid-XU4 don't work anymore.
>>>>
>>>> Inserting an usb key (USB2.0) on the USB3.0 port result in:
>>>> [ 64.488264] xhci-hcd xhci-hcd.2.auto: Port resume took longer than
>>>> 20000 msec, port status = 0xc400fe3
>>>> [   74.568156] xhci-hcd xhci-hcd.2.auto: xHCI host not responding to
>>>> stop endpoint command.
>>>> [   74.574806] xhci-hcd xhci-hcd.2.auto: Assuming host is dying, halting
>>>> host.
>>>> [   74.601970] xhci-hcd xhci-hcd.2.auto: HC died; cleaning up
>>>> [   74.606276] usb 3-1: USB disconnect, device number 2
>>>> [   74.613565] usb 4-1: USB disconnect, device number 2
>>>> [   74.621208] usb usb3-port1: couldn't allocate usb_device
>>>> NB: it's not related to USB2.0 devices, I get the same result with an
>>>> USB3.0 device (SATA to USB3 for instance).
>>>> NB2: it doesn't happen on an odriod-XU3 board, that doesn't have the
>>>> realtek RTL8153 chip.
>>>>
>>>> If the lines:
>>>>          if (dwc->revision > DWC3_REVISION_194A)
>>>>                  reg |= DWC3_GUSB3PIPECTL_SUSPHY;
>>>> are commented out, the USB3.0 start working.
>>>>
>>>> For a full analyse: https://lkml.org/lkml/2017/1/18/678
>>>>
>>>> Felipe suggested that suspend should be disabled temporarily while
>>>> what's wrong with DCW3 is figured out.
>>>>
>>>> Tested on Odroid XU4
>>>>
>>>> Suggested-by: Felipe Balbi <felipe.balbi@linux.intel.com>
>>>> Tested-by: Richard Genoud <richard.genoud@gmail.com>
>>>> Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
>>>> Cc: stable@vger.kernel.org # 4.4+
>>>> Fixes: 2164a476205ccc ("usb: dwc3: set SUSPHY bit for all cores")
>>>> ---
>>>>   arch/arm/boot/dts/exynos5422-odroidxu4.dts | 9 +++++++++
>>>>   1 file changed, 9 insertions(+)
>>>>
>>>> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>>>> b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>>>> index 2faf88627a48..f62dbd9b5ad3 100644
>>>> --- a/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>>>> +++ b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>>>> @@ -43,6 +43,15 @@
>>>>          status = "okay";
>>>>   };
>>>>
>>>> +&usbdrd_dwc3_0 {
>>>> +       /*
>>>> +        * without that, usb devices are not recognized when
>>>> +        * they are plugged.
>>>> +        * cf: https://lkml.org/lkml/2017/1/18/678
>>>> +        */
>>>> +       snps,dis_u3_susphy_quirk;
>>>> +};
>>>> +
>>>>   &usbdrd_dwc3_1 {
>>>>          dr_mode = "host";
>>>>   };
>>>> --
>>>
>>> Thanks for this patch.
>>> But could you consider moving this changes as below.
>>>
>>> https://lkml.org/lkml/2015/3/18/400
>>
>> The patch above (and other DTS patches from the set) was not even sent
>> to linux-samsung-soc nor to me... It is sad how easily one's work can
>> disappear. Also, it is really worthless to solve the same problem
>> twice.
>
>
> Well, they were sent about 2 years ago... and you were also working on this
> topic. ;)

Nope, I have never worked on this. That time I was in Korea so my
tasks were completely different. Later when I got back, I took for a
second U3 OTG which was not involving this thing.

>> Cc Marek and Bartlomiej,
>> Guys, do you want to continue with Robert's patch (linked above by
>> Anand)? If yes, please take the ownership (Robert's address is not
>> valid anymore). If not, I will take Richard's patch after
>> resubmission.
>
>
> Take Richard's patch because it has a bit more details describing why such
> quirk
> is needed.
>
> Richard: in Roberts patch there is also a quirk for USB 2.0 mode
> (snps,dis_u2_susphy_quirk). Could you check if it really needed?
>
> Maybe it would make sense to set those quirks for both DWC3 controllers, as
> this
> issue with PHY suspend seems to be a Exynos specific thing.

Okay,
Richard, please continue with your patch.

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] ARM: dts: Odroid XU4: fix USB3.0 ports
  2017-01-25 14:17       ` Krzysztof Kozlowski
@ 2017-01-25 18:34         ` Anand Moon
  2017-01-27  7:29         ` Richard Genoud
  1 sibling, 0 replies; 13+ messages in thread
From: Anand Moon @ 2017-01-25 18:34 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: Marek Szyprowski, Richard Genoud,
	Bartłomiej Żołnierkiewicz, Felipe Balbi,
	Huang Rui, Javier Martinez Canillas, Heikki Krogerus, Kukjin Kim,
	devicetree, Linux USB Mailing List, linux-samsung-soc,
	Linux Kernel

Hi Krzysztof,

On 25 January 2017 at 19:47, Krzysztof Kozlowski <krzk@kernel.org> wrote:
> On Wed, Jan 25, 2017 at 3:48 PM, Marek Szyprowski
> <m.szyprowski@samsung.com> wrote:
>> Hi Krzysztof,
>>
>> On 2017-01-25 08:55, Krzysztof Kozlowski wrote:
>>>
>>> On Wed, Jan 25, 2017 at 7:51 AM, Anand Moon <linux.amoon@gmail.com> wrote:
>>>>
>>>> On 24 January 2017 at 19:18, Richard Genoud <richard.genoud@gmail.com>
>>>> wrote:
>>>>>
>>>>> Since commit 2164a476205ccc ("usb: dwc3: set SUSPHY bit for all cores"),
>>>>> the USB ports on odroid-XU4 don't work anymore.
>>>>>
>>>>> Inserting an usb key (USB2.0) on the USB3.0 port result in:
>>>>> [ 64.488264] xhci-hcd xhci-hcd.2.auto: Port resume took longer than
>>>>> 20000 msec, port status = 0xc400fe3
>>>>> [   74.568156] xhci-hcd xhci-hcd.2.auto: xHCI host not responding to
>>>>> stop endpoint command.
>>>>> [   74.574806] xhci-hcd xhci-hcd.2.auto: Assuming host is dying, halting
>>>>> host.
>>>>> [   74.601970] xhci-hcd xhci-hcd.2.auto: HC died; cleaning up
>>>>> [   74.606276] usb 3-1: USB disconnect, device number 2
>>>>> [   74.613565] usb 4-1: USB disconnect, device number 2
>>>>> [   74.621208] usb usb3-port1: couldn't allocate usb_device
>>>>> NB: it's not related to USB2.0 devices, I get the same result with an
>>>>> USB3.0 device (SATA to USB3 for instance).
>>>>> NB2: it doesn't happen on an odriod-XU3 board, that doesn't have the
>>>>> realtek RTL8153 chip.
>>>>>
>>>>> If the lines:
>>>>>          if (dwc->revision > DWC3_REVISION_194A)
>>>>>                  reg |= DWC3_GUSB3PIPECTL_SUSPHY;
>>>>> are commented out, the USB3.0 start working.
>>>>>
>>>>> For a full analyse: https://lkml.org/lkml/2017/1/18/678
>>>>>
>>>>> Felipe suggested that suspend should be disabled temporarily while
>>>>> what's wrong with DCW3 is figured out.
>>>>>
>>>>> Tested on Odroid XU4
>>>>>
>>>>> Suggested-by: Felipe Balbi <felipe.balbi@linux.intel.com>
>>>>> Tested-by: Richard Genoud <richard.genoud@gmail.com>
>>>>> Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
>>>>> Cc: stable@vger.kernel.org # 4.4+
>>>>> Fixes: 2164a476205ccc ("usb: dwc3: set SUSPHY bit for all cores")
>>>>> ---
>>>>>   arch/arm/boot/dts/exynos5422-odroidxu4.dts | 9 +++++++++
>>>>>   1 file changed, 9 insertions(+)
>>>>>
>>>>> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>>>>> b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>>>>> index 2faf88627a48..f62dbd9b5ad3 100644
>>>>> --- a/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>>>>> +++ b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>>>>> @@ -43,6 +43,15 @@
>>>>>          status = "okay";
>>>>>   };
>>>>>
>>>>> +&usbdrd_dwc3_0 {
>>>>> +       /*
>>>>> +        * without that, usb devices are not recognized when
>>>>> +        * they are plugged.
>>>>> +        * cf: https://lkml.org/lkml/2017/1/18/678
>>>>> +        */
>>>>> +       snps,dis_u3_susphy_quirk;
>>>>> +};
>>>>> +
>>>>>   &usbdrd_dwc3_1 {
>>>>>          dr_mode = "host";
>>>>>   };
>>>>> --
>>>>
>>>> Thanks for this patch.
>>>> But could you consider moving this changes as below.
>>>>
>>>> https://lkml.org/lkml/2015/3/18/400
>>>
>>> The patch above (and other DTS patches from the set) was not even sent
>>> to linux-samsung-soc nor to me... It is sad how easily one's work can
>>> disappear. Also, it is really worthless to solve the same problem
>>> twice.
>>
>>
>> Well, they were sent about 2 years ago... and you were also working on this
>> topic. ;)
>
> Nope, I have never worked on this. That time I was in Korea so my
> tasks were completely different. Later when I got back, I took for a
> second U3 OTG which was not involving this thing.
>
>>> Cc Marek and Bartlomiej,
>>> Guys, do you want to continue with Robert's patch (linked above by
>>> Anand)? If yes, please take the ownership (Robert's address is not
>>> valid anymore). If not, I will take Richard's patch after
>>> resubmission.
>>
>>
>> Take Richard's patch because it has a bit more details describing why such
>> quirk
>> is needed.
>>
>> Richard: in Roberts patch there is also a quirk for USB 2.0 mode
>> (snps,dis_u2_susphy_quirk). Could you check if it really needed?
>>
>> Maybe it would make sense to set those quirks for both DWC3 controllers, as
>> this
>> issue with PHY suspend seems to be a Exynos specific thing.
>
> Okay,
> Richard, please continue with your patch.
>
> Best regards,
> Krzysztof

Their is certainly some issue with respect PHY in phy-exynos5-usbdrd
or dwc3-exynos.c

odroid@odroidxu4n:~$ lsusb -v|egrep "^Bus|MaxPower"
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    MaxPower                0mA
Bus 005 Device 002: ID 0bda:8153 Realtek Semiconductor Corp.
    MaxPower              180mA
    MaxPower              180mA
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    MaxPower                0mA
Bus 004 Device 099: ID 174c:5106 ASMedia Technology Inc. ASM1051 SATA
3Gb/s bridge
    MaxPower                0mA
Bus 004 Device 002: ID 05e3:0616 Genesys Logic, Inc. hub
    MaxPower                0mA
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    MaxPower                0mA
Bus 003 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
    MaxPower              100mA
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    MaxPower                0mA
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    MaxPower                0mA
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    MaxPower                0mA

1 When the board boot cold boot these two dwc3 controller initializes correctly.
     usbdrd_dwc3_0 ------> usb 3.0 port1
     usbdrd_dwc3_0-------> usb 3.0 port2

     usbdrd_dwc3_1 ------> usb 3.0 ethernet port

None of the usb 3.0 host port get powered via usb .
    ie these port are not mapped to phy.
what is the correct way to enable power on the ports ?

2 When we remove the usb device it dose not disconnect in correct way.
   port or phy poweroff is not happening correctly.

3 But on warm boot their is no reset of port.
   the reset of port is not happening, the power on the port remain on.

I have tried to debug the some of these issues but I was not able to
solve this complete.

do you think some similar fix is needed to power enable ports on exynos dwc3

commit 1c17675d6c733232f10afceec0bcd016ad3849f0 (usb: ehci-exynos:
Change to use phy provided by the generic phy framework)
commit 366126d5c6a5d9381a5f6a4e061ad0aba33e789e (ARM: dts: add port
sub-nodes to exynos usb host modules for exynos4)

Best Regards
-Anand

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] ARM: dts: Odroid XU4: fix USB3.0 ports
  2017-01-25 14:17       ` Krzysztof Kozlowski
  2017-01-25 18:34         ` Anand Moon
@ 2017-01-27  7:29         ` Richard Genoud
  2017-02-09 10:26           ` Richard Genoud
  1 sibling, 1 reply; 13+ messages in thread
From: Richard Genoud @ 2017-01-27  7:29 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Marek Szyprowski
  Cc: Anand Moon, Bartłomiej Żołnierkiewicz,
	Felipe Balbi, Huang Rui, Javier Martinez Canillas,
	Heikki Krogerus, Kukjin Kim, devicetree, Linux USB Mailing List,
	linux-samsung-soc, Linux Kernel

On 25/01/2017 15:17, Krzysztof Kozlowski wrote:
> On Wed, Jan 25, 2017 at 3:48 PM, Marek Szyprowski
> <m.szyprowski@samsung.com> wrote:
>> Hi Krzysztof,
>>
>> On 2017-01-25 08:55, Krzysztof Kozlowski wrote:
>>>
>>> On Wed, Jan 25, 2017 at 7:51 AM, Anand Moon <linux.amoon@gmail.com> wrote:
>>>>
>>>> On 24 January 2017 at 19:18, Richard Genoud <richard.genoud@gmail.com>
>>>> wrote:
>>>>>
>>>>> Since commit 2164a476205ccc ("usb: dwc3: set SUSPHY bit for all cores"),
>>>>> the USB ports on odroid-XU4 don't work anymore.
>>>>>
>>>>> Inserting an usb key (USB2.0) on the USB3.0 port result in:
>>>>> [ 64.488264] xhci-hcd xhci-hcd.2.auto: Port resume took longer than
>>>>> 20000 msec, port status = 0xc400fe3
>>>>> [   74.568156] xhci-hcd xhci-hcd.2.auto: xHCI host not responding to
>>>>> stop endpoint command.
>>>>> [   74.574806] xhci-hcd xhci-hcd.2.auto: Assuming host is dying, halting
>>>>> host.
>>>>> [   74.601970] xhci-hcd xhci-hcd.2.auto: HC died; cleaning up
>>>>> [   74.606276] usb 3-1: USB disconnect, device number 2
>>>>> [   74.613565] usb 4-1: USB disconnect, device number 2
>>>>> [   74.621208] usb usb3-port1: couldn't allocate usb_device
>>>>> NB: it's not related to USB2.0 devices, I get the same result with an
>>>>> USB3.0 device (SATA to USB3 for instance).
>>>>> NB2: it doesn't happen on an odriod-XU3 board, that doesn't have the
>>>>> realtek RTL8153 chip.
>>>>>
>>>>> If the lines:
>>>>>          if (dwc->revision > DWC3_REVISION_194A)
>>>>>                  reg |= DWC3_GUSB3PIPECTL_SUSPHY;
>>>>> are commented out, the USB3.0 start working.
>>>>>
>>>>> For a full analyse: https://lkml.org/lkml/2017/1/18/678
>>>>>
>>>>> Felipe suggested that suspend should be disabled temporarily while
>>>>> what's wrong with DCW3 is figured out.
>>>>>
>>>>> Tested on Odroid XU4
>>>>>
>>>>> Suggested-by: Felipe Balbi <felipe.balbi@linux.intel.com>
>>>>> Tested-by: Richard Genoud <richard.genoud@gmail.com>
>>>>> Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
>>>>> Cc: stable@vger.kernel.org # 4.4+
>>>>> Fixes: 2164a476205ccc ("usb: dwc3: set SUSPHY bit for all cores")
>>>>> ---
>>>>>   arch/arm/boot/dts/exynos5422-odroidxu4.dts | 9 +++++++++
>>>>>   1 file changed, 9 insertions(+)
>>>>>
>>>>> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>>>>> b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>>>>> index 2faf88627a48..f62dbd9b5ad3 100644
>>>>> --- a/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>>>>> +++ b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>>>>> @@ -43,6 +43,15 @@
>>>>>          status = "okay";
>>>>>   };
>>>>>
>>>>> +&usbdrd_dwc3_0 {
>>>>> +       /*
>>>>> +        * without that, usb devices are not recognized when
>>>>> +        * they are plugged.
>>>>> +        * cf: https://lkml.org/lkml/2017/1/18/678
>>>>> +        */
>>>>> +       snps,dis_u3_susphy_quirk;
>>>>> +};
>>>>> +
>>>>>   &usbdrd_dwc3_1 {
>>>>>          dr_mode = "host";
>>>>>   };
>>>>> --
>>>>
>>>> Thanks for this patch.
>>>> But could you consider moving this changes as below.
>>>>
>>>> https://lkml.org/lkml/2015/3/18/400
>>>
>>> The patch above (and other DTS patches from the set) was not even sent
>>> to linux-samsung-soc nor to me... It is sad how easily one's work can
>>> disappear. Also, it is really worthless to solve the same problem
>>> twice.
>>
>>
>> Well, they were sent about 2 years ago... and you were also working on this
>> topic. ;)
> 
> Nope, I have never worked on this. That time I was in Korea so my
> tasks were completely different. Later when I got back, I took for a
> second U3 OTG which was not involving this thing.
> 
>>> Cc Marek and Bartlomiej,
>>> Guys, do you want to continue with Robert's patch (linked above by
>>> Anand)? If yes, please take the ownership (Robert's address is not
>>> valid anymore). If not, I will take Richard's patch after
>>> resubmission.
>>
>>
>> Take Richard's patch because it has a bit more details describing why such
>> quirk
>> is needed.
>>
>> Richard: in Roberts patch there is also a quirk for USB 2.0 mode
>> (snps,dis_u2_susphy_quirk). Could you check if it really needed?
>>
>> Maybe it would make sense to set those quirks for both DWC3 controllers, as
>> this
>> issue with PHY suspend seems to be a Exynos specific thing.
> 
> Okay,
> Richard, please continue with your patch.
Ok, I'll grab a XU3 & XU4 and do some more tests.
But I didn't recall having problems with the XU3 board. I'll try to add
a hub or something.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] ARM: dts: Odroid XU4: fix USB3.0 ports
  2017-01-27  7:29         ` Richard Genoud
@ 2017-02-09 10:26           ` Richard Genoud
  2017-02-10 13:34             ` Krzysztof Kozlowski
  0 siblings, 1 reply; 13+ messages in thread
From: Richard Genoud @ 2017-02-09 10:26 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Marek Szyprowski
  Cc: Anand Moon, Bartłomiej Żołnierkiewicz,
	Felipe Balbi, Huang Rui, Javier Martinez Canillas,
	Heikki Krogerus, Kukjin Kim, devicetree, Linux USB Mailing List,
	linux-samsung-soc, Linux Kernel

2017-01-27 8:29 GMT+01:00 Richard Genoud <richard.genoud@gmail.com>:
> On 25/01/2017 15:17, Krzysztof Kozlowski wrote:
>> On Wed, Jan 25, 2017 at 3:48 PM, Marek Szyprowski
>> <m.szyprowski@samsung.com> wrote:
>>> Hi Krzysztof,
>>>
>>> On 2017-01-25 08:55, Krzysztof Kozlowski wrote:
>>>>
>>>> On Wed, Jan 25, 2017 at 7:51 AM, Anand Moon <linux.amoon@gmail.com> wrote:
>>>>>
>>>>> On 24 January 2017 at 19:18, Richard Genoud <richard.genoud@gmail.com>
>>>>> wrote:
>>>>>>
>>>>>> Since commit 2164a476205ccc ("usb: dwc3: set SUSPHY bit for all cores"),
>>>>>> the USB ports on odroid-XU4 don't work anymore.
>>>>>>
>>>>>> Inserting an usb key (USB2.0) on the USB3.0 port result in:
>>>>>> [ 64.488264] xhci-hcd xhci-hcd.2.auto: Port resume took longer than
>>>>>> 20000 msec, port status = 0xc400fe3
>>>>>> [   74.568156] xhci-hcd xhci-hcd.2.auto: xHCI host not responding to
>>>>>> stop endpoint command.
>>>>>> [   74.574806] xhci-hcd xhci-hcd.2.auto: Assuming host is dying, halting
>>>>>> host.
>>>>>> [   74.601970] xhci-hcd xhci-hcd.2.auto: HC died; cleaning up
>>>>>> [   74.606276] usb 3-1: USB disconnect, device number 2
>>>>>> [   74.613565] usb 4-1: USB disconnect, device number 2
>>>>>> [   74.621208] usb usb3-port1: couldn't allocate usb_device
>>>>>> NB: it's not related to USB2.0 devices, I get the same result with an
>>>>>> USB3.0 device (SATA to USB3 for instance).
>>>>>> NB2: it doesn't happen on an odriod-XU3 board, that doesn't have the
>>>>>> realtek RTL8153 chip.
>>>>>>
>>>>>> If the lines:
>>>>>>          if (dwc->revision > DWC3_REVISION_194A)
>>>>>>                  reg |= DWC3_GUSB3PIPECTL_SUSPHY;
>>>>>> are commented out, the USB3.0 start working.
>>>>>>
>>>>>> For a full analyse: https://lkml.org/lkml/2017/1/18/678
>>>>>>
>>>>>> Felipe suggested that suspend should be disabled temporarily while
>>>>>> what's wrong with DCW3 is figured out.
>>>>>>
>>>>>> Tested on Odroid XU4
>>>>>>
>>>>>> Suggested-by: Felipe Balbi <felipe.balbi@linux.intel.com>
>>>>>> Tested-by: Richard Genoud <richard.genoud@gmail.com>
>>>>>> Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
>>>>>> Cc: stable@vger.kernel.org # 4.4+
>>>>>> Fixes: 2164a476205ccc ("usb: dwc3: set SUSPHY bit for all cores")
>>>>>> ---
>>>>>>   arch/arm/boot/dts/exynos5422-odroidxu4.dts | 9 +++++++++
>>>>>>   1 file changed, 9 insertions(+)
>>>>>>
>>>>>> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>>>>>> b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>>>>>> index 2faf88627a48..f62dbd9b5ad3 100644
>>>>>> --- a/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>>>>>> +++ b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
>>>>>> @@ -43,6 +43,15 @@
>>>>>>          status = "okay";
>>>>>>   };
>>>>>>
>>>>>> +&usbdrd_dwc3_0 {
>>>>>> +       /*
>>>>>> +        * without that, usb devices are not recognized when
>>>>>> +        * they are plugged.
>>>>>> +        * cf: https://lkml.org/lkml/2017/1/18/678
>>>>>> +        */
>>>>>> +       snps,dis_u3_susphy_quirk;
>>>>>> +};
>>>>>> +
>>>>>>   &usbdrd_dwc3_1 {
>>>>>>          dr_mode = "host";
>>>>>>   };
>>>>>> --
>>>>>
>>>>> Thanks for this patch.
>>>>> But could you consider moving this changes as below.
>>>>>
>>>>> https://lkml.org/lkml/2015/3/18/400
>>>>
>>>> The patch above (and other DTS patches from the set) was not even sent
>>>> to linux-samsung-soc nor to me... It is sad how easily one's work can
>>>> disappear. Also, it is really worthless to solve the same problem
>>>> twice.
>>>
>>>
>>> Well, they were sent about 2 years ago... and you were also working on this
>>> topic. ;)
>>
>> Nope, I have never worked on this. That time I was in Korea so my
>> tasks were completely different. Later when I got back, I took for a
>> second U3 OTG which was not involving this thing.
>>
>>>> Cc Marek and Bartlomiej,
>>>> Guys, do you want to continue with Robert's patch (linked above by
>>>> Anand)? If yes, please take the ownership (Robert's address is not
>>>> valid anymore). If not, I will take Richard's patch after
>>>> resubmission.
>>>
>>>
>>> Take Richard's patch because it has a bit more details describing why such
>>> quirk
>>> is needed.
>>>
>>> Richard: in Roberts patch there is also a quirk for USB 2.0 mode
>>> (snps,dis_u2_susphy_quirk). Could you check if it really needed?
>>>
>>> Maybe it would make sense to set those quirks for both DWC3 controllers, as
>>> this
>>> issue with PHY suspend seems to be a Exynos specific thing.
>>
>> Okay,
>> Richard, please continue with your patch.
> Ok, I'll grab a XU3 & XU4 and do some more tests.
> But I didn't recall having problems with the XU3 board. I'll try to add
> a hub or something.
>

I did some tests with XU3 and XU4, playing with USB2 and USB3 quirks
(snps,dis_u{2,3}_susphy_quirk)

kernel for the tests: next-20170206
DTBs: exynos5422-odroidxu3-lite.dtb exynos5422-odroidxu4.dtb

USB devices used for the tests: kingston USB3 key, Akasa sata/USB3
+SSD standard USB2 key
once recognized, a dd if=/dev/sda bs=1M count=100 of=/dev/null is done.


The results are:
- On XU4:
  - adding snps,dis_u2_susphy_quirk doesn't change anything:
    inserting an USB2 or USB3 device gives the error message:
    xhci-hcd xhci-hcd.2.auto: Port resume took longer than 20000 msec,
port status = 0xc400fe3
  - with snps,dis_u3_susphy_quirk, USB2 and USB3 devices are recognized

- On XU3:
  - Without changing XU3 dts, USB2 devices are recognized.
  - With or without the snps,dis_u3_susphy_quirk, USB3 devices are not
recognized/not working properly
  (never seen or disconnected, unable to enumerate, etc.)
  However, adding an external powered USB3 hub in between works. (with
or without the snps,dis_u3_susphy_quirk)
  Anyway, this problem doesn't seems to be related to the other since
  addind the quirks doesn't change anything.

- On XU3 USB3 device port (dr_mode = "peripheral"):
  - acting as an ethernet gadget only works with the snps,dis_u3_susphy_quirk.
    It works well as USB2 or USB3 (tested with ethernet gadget+iperf)

So, at the end, it does seem usefull to add the
snps,dis_u3_susphy_quirk at the exynos5420.dtsi level.
Adding the snps,dis_u2_susphy_quirk doesn't seems to change anything
for XU3/XU4 board,
so I don't know if it is necessary or not.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] ARM: dts: Odroid XU4: fix USB3.0 ports
  2017-02-09 10:26           ` Richard Genoud
@ 2017-02-10 13:34             ` Krzysztof Kozlowski
  2017-02-10 15:12               ` Richard Genoud
  2017-05-08 16:19               ` Shuah Khan
  0 siblings, 2 replies; 13+ messages in thread
From: Krzysztof Kozlowski @ 2017-02-10 13:34 UTC (permalink / raw)
  To: Richard Genoud
  Cc: Marek Szyprowski, Anand Moon,
	Bartłomiej Żołnierkiewicz, Felipe Balbi,
	Huang Rui, Javier Martinez Canillas, Heikki Krogerus, Kukjin Kim,
	devicetree, Linux USB Mailing List, linux-samsung-soc,
	Linux Kernel

On Thu, Feb 09, 2017 at 11:26:48AM +0100, Richard Genoud wrote:
> I did some tests with XU3 and XU4, playing with USB2 and USB3 quirks
> (snps,dis_u{2,3}_susphy_quirk)
> 
> kernel for the tests: next-20170206
> DTBs: exynos5422-odroidxu3-lite.dtb exynos5422-odroidxu4.dtb
> 
> USB devices used for the tests: kingston USB3 key, Akasa sata/USB3
> +SSD standard USB2 key
> once recognized, a dd if=/dev/sda bs=1M count=100 of=/dev/null is done.
> 
> 
> The results are:
> - On XU4:
>   - adding snps,dis_u2_susphy_quirk doesn't change anything:
>     inserting an USB2 or USB3 device gives the error message:
>     xhci-hcd xhci-hcd.2.auto: Port resume took longer than 20000 msec,
> port status = 0xc400fe3
>   - with snps,dis_u3_susphy_quirk, USB2 and USB3 devices are recognized
> 
> - On XU3:
>   - Without changing XU3 dts, USB2 devices are recognized.
>   - With or without the snps,dis_u3_susphy_quirk, USB3 devices are not
> recognized/not working properly
>   (never seen or disconnected, unable to enumerate, etc.)
>   However, adding an external powered USB3 hub in between works. (with
> or without the snps,dis_u3_susphy_quirk)
>   Anyway, this problem doesn't seems to be related to the other since
>   addind the quirks doesn't change anything.

>From this description I am missing where are you inserting the USB
devices.

Both boards have totally different USB port configuration. On XU3 the
hub is on USB 2.0 port. On XU4 the opposite - the hub is on USB 3.0
port.

Best regards,
Krzysztof

> - On XU3 USB3 device port (dr_mode = "peripheral"):
>   - acting as an ethernet gadget only works with the snps,dis_u3_susphy_quirk.
>     It works well as USB2 or USB3 (tested with ethernet gadget+iperf)
> 
> So, at the end, it does seem usefull to add the
> snps,dis_u3_susphy_quirk at the exynos5420.dtsi level.
> Adding the snps,dis_u2_susphy_quirk doesn't seems to change anything
> for XU3/XU4 board,
> so I don't know if it is necessary or not.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] ARM: dts: Odroid XU4: fix USB3.0 ports
  2017-02-10 13:34             ` Krzysztof Kozlowski
@ 2017-02-10 15:12               ` Richard Genoud
  2017-05-08 16:19               ` Shuah Khan
  1 sibling, 0 replies; 13+ messages in thread
From: Richard Genoud @ 2017-02-10 15:12 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: Marek Szyprowski, Anand Moon,
	Bartłomiej Żołnierkiewicz, Felipe Balbi,
	Huang Rui, Javier Martinez Canillas, Heikki Krogerus, Kukjin Kim,
	devicetree, Linux USB Mailing List, linux-samsung-soc,
	Linux Kernel

2017-02-10 14:34 GMT+01:00 Krzysztof Kozlowski <krzk@kernel.org>:
> On Thu, Feb 09, 2017 at 11:26:48AM +0100, Richard Genoud wrote:
>> I did some tests with XU3 and XU4, playing with USB2 and USB3 quirks
>> (snps,dis_u{2,3}_susphy_quirk)
>>
>> kernel for the tests: next-20170206
>> DTBs: exynos5422-odroidxu3-lite.dtb exynos5422-odroidxu4.dtb
>>
>> USB devices used for the tests: kingston USB3 key, Akasa sata/USB3
>> +SSD standard USB2 key
>> once recognized, a dd if=/dev/sda bs=1M count=100 of=/dev/null is done.
>>
>>
>> The results are:
>> - On XU4:
>>   - adding snps,dis_u2_susphy_quirk doesn't change anything:
>>     inserting an USB2 or USB3 device gives the error message:
>>     xhci-hcd xhci-hcd.2.auto: Port resume took longer than 20000 msec,
>> port status = 0xc400fe3
>>   - with snps,dis_u3_susphy_quirk, USB2 and USB3 devices are recognized
>>
>> - On XU3:
>>   - Without changing XU3 dts, USB2 devices are recognized.
>>   - With or without the snps,dis_u3_susphy_quirk, USB3 devices are not
>> recognized/not working properly
>>   (never seen or disconnected, unable to enumerate, etc.)
>>   However, adding an external powered USB3 hub in between works. (with
>> or without the snps,dis_u3_susphy_quirk)
>>   Anyway, this problem doesn't seems to be related to the other since
>>   addind the quirks doesn't change anything.
>
> From this description I am missing where are you inserting the USB
> devices.
>
> Both boards have totally different USB port configuration. On XU3 the
> hub is on USB 2.0 port. On XU4 the opposite - the hub is on USB 3.0
> port.
Yes, sorry.
All the tests I did were on USB3.0 ports.
So, for the XU4, it was the double USB3.0 connector.
For the XU3, it was the single USB3.0 host port.

(and the XU3 USB3.0 device port for the test bellow)

I didn't do any test on the USB2 ports.

>
> Best regards,
> Krzysztof
>
>> - On XU3 USB3 device port (dr_mode = "peripheral"):
>>   - acting as an ethernet gadget only works with the snps,dis_u3_susphy_quirk.
>>     It works well as USB2 or USB3 (tested with ethernet gadget+iperf)
>>
>> So, at the end, it does seem usefull to add the
>> snps,dis_u3_susphy_quirk at the exynos5420.dtsi level.
>> Adding the snps,dis_u2_susphy_quirk doesn't seems to change anything
>> for XU3/XU4 board,
>> so I don't know if it is necessary or not.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] ARM: dts: Odroid XU4: fix USB3.0 ports
  2017-02-10 13:34             ` Krzysztof Kozlowski
  2017-02-10 15:12               ` Richard Genoud
@ 2017-05-08 16:19               ` Shuah Khan
  1 sibling, 0 replies; 13+ messages in thread
From: Shuah Khan @ 2017-05-08 16:19 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Felipe Balbi
  Cc: Richard Genoud, Marek Szyprowski, Anand Moon,
	Bartłomiej Żołnierkiewicz, Huang Rui,
	Javier Martinez Canillas, Heikki Krogerus, Kukjin Kim,
	devicetree, Linux USB Mailing List, linux-samsung-soc,
	Linux Kernel, shuahkh

Hi Krzysztof,

On Fri, Feb 10, 2017 at 6:34 AM, Krzysztof Kozlowski <krzk@kernel.org> wrote:
> On Thu, Feb 09, 2017 at 11:26:48AM +0100, Richard Genoud wrote:
>> I did some tests with XU3 and XU4, playing with USB2 and USB3 quirks
>> (snps,dis_u{2,3}_susphy_quirk)
>>
>> kernel for the tests: next-20170206
>> DTBs: exynos5422-odroidxu3-lite.dtb exynos5422-odroidxu4.dtb
>>
>> USB devices used for the tests: kingston USB3 key, Akasa sata/USB3
>> +SSD standard USB2 key
>> once recognized, a dd if=/dev/sda bs=1M count=100 of=/dev/null is done.
>>
>>
>> The results are:
>> - On XU4:
>>   - adding snps,dis_u2_susphy_quirk doesn't change anything:
>>     inserting an USB2 or USB3 device gives the error message:
>>     xhci-hcd xhci-hcd.2.auto: Port resume took longer than 20000 msec,
>> port status = 0xc400fe3
>>   - with snps,dis_u3_susphy_quirk, USB2 and USB3 devices are recognized
>>
>> - On XU3:
>>   - Without changing XU3 dts, USB2 devices are recognized.
>>   - With or without the snps,dis_u3_susphy_quirk, USB3 devices are not
>> recognized/not working properly
>>   (never seen or disconnected, unable to enumerate, etc.)
>>   However, adding an external powered USB3 hub in between works. (with
>> or without the snps,dis_u3_susphy_quirk)
>>   Anyway, this problem doesn't seems to be related to the other since
>>   addind the quirks doesn't change anything.
>
> From this description I am missing where are you inserting the USB
> devices.
>
> Both boards have totally different USB port configuration. On XU3 the
> hub is on USB 2.0 port. On XU4 the opposite - the hub is on USB 3.0
> port.
>

I am running into this on XU4 USB 3.0 ports. Cold booting with device
present in USB 3.0 port, device is recognized.

Bus 004 Device 003: ID 8564:4000 Transcend Information, Inc. RDF8
    MaxPower              224mA

However, if I were to insert it after boot, it fails to resume the port.

[ 2936.560129] usb 4-1.2: USB disconnect, device number 3
[ 2959.249815] xhci-hcd xhci-hcd.2.auto: Port resume took longer than
20000 msec, port status = 0xc400fe3

and lsusb -v|egrep "^Bus|MaxPower" shows:

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    MaxPower                0mA

Preventing suspend with this. Looking at this more, could this be
related to GCTL.RAMCLKSEL?

The commnet block below in dwc3_gadget_conndone_interrupt() seems to
indicate a potential problem on platforms when RAMClkSel is reset to 0
after USB reset. Is that the case on Odroid-xu4 that updating
GCTL.RAMCLKSEL is necessary to USB device hotplug to work without the
the quirk?

     /*
         * RAMClkSel is reset to 0 after USB reset, so it must be reprogrammed
         * each time on Connect Done.
         *
         * Currently we always use the reset value. If any platform
         * wants to set this to a different value, we need to add a
         * setting and update GCTL.RAMCLKSEL here.
         */

I can debug this more dumping GCTL.RAMCLKSEL registers in cold boot
vs. hotplig cases to get more information.

thanks,
-- Shuah

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2017-05-08 16:19 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-24 13:48 [PATCH] ARM: dts: Odroid XU4: fix USB3.0 ports Richard Genoud
2017-01-24 18:22 ` Krzysztof Kozlowski
2017-01-25  8:34   ` Richard Genoud
2017-01-25  5:51 ` Anand Moon
2017-01-25  7:55   ` Krzysztof Kozlowski
2017-01-25 13:48     ` Marek Szyprowski
2017-01-25 14:17       ` Krzysztof Kozlowski
2017-01-25 18:34         ` Anand Moon
2017-01-27  7:29         ` Richard Genoud
2017-02-09 10:26           ` Richard Genoud
2017-02-10 13:34             ` Krzysztof Kozlowski
2017-02-10 15:12               ` Richard Genoud
2017-05-08 16:19               ` Shuah Khan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).