* Re: meson-g12b xHCI - disable park mode
[not found] <CA+3zgmvjhisn97Y1TCn7Ztj2m3hB9+sdoOnFdvJJbKUFpt=QrQ@mail.gmail.com>
@ 2019-09-26 12:53 ` Neil Armstrong
[not found] ` <2019092715010469964015@amlogic.com>
0 siblings, 1 reply; 4+ messages in thread
From: Neil Armstrong @ 2019-09-26 12:53 UTC (permalink / raw)
To: Tim, open list:ARM/Amlogic Meson..., tobetter, Jianxin Pan
Hi Tim,
Thanks for sending the email, this has already been spotted by Christian Hewitt from LibreELEC.
Indeed this need some dt-bindings work and some more information for these :
- DWC3_GUCTL_NAKPERENHHS
- DWC3_GUCTL_PARKMODEDISABLESS
bit from Amlogic since I don't access to the DWC3 DataBook.
Jianxin, could you give use a brief description of these bits and why they are needed to solve the issue ?
Thanks,
Neil
On 21/09/2019 15:47, Tim wrote:
> Hi Neil,
>
> Thank you for your work on the Linux kernel.
> Hardkernel and others using the mainline on the N2 are including a patch[1] that prevents bugs[2] on the Odroid-N2.
> Dongjin Kim <tobetter@gmail.com <mailto:tobetter@gmail.com>> obtained the patch from AmLogic[3],
> but is not comfortable contributing to upstream[4].
> Please fix this bug upstream, or let us know the best way forward.
> (maybe you can send something appropriate for Felipe to review)
> Thanks again.
>
> Reference links;
>
> 1 https://forum.odroid.com/download/file.php?id=9674
> 2 https://forum.odroid.com/viewtopic.php?f=181&t=35031&start=250#p267479
> 3 https://forum.odroid.com/viewtopic.php?f=181&t=35031&start=250#p267481
> 4 https://forum.odroid.com/viewtopic.php?f=176&t=33993&start=350#p268598
>
>
> The patch inline;
>
> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
> index c9bb93a2c..8252923d8 100644
> --- a/drivers/usb/dwc3/core.c
> +++ b/drivers/usb/dwc3/core.c
> @@ -983,6 +983,8 @@ static int dwc3_core_init(struct dwc3 *dwc)
> if (dwc->dis_tx_ipgap_linecheck_quirk)
> reg |= DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS;
>
> + reg |= (DWC3_GUCTL_NAKPERENHHS | DWC3_GUCTL_PARKMODEDISABLESS);
> +
> dwc3_writel(dwc->regs, DWC3_GUCTL1, reg);
> }
>
> diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
> index 3dd783b88..ff09d19ee 100644
> --- a/drivers/usb/dwc3/core.h
> +++ b/drivers/usb/dwc3/core.h
> @@ -247,6 +247,8 @@
>
> /* Global User Control Register */
> #define DWC3_GUCTL_HSTINAUTORETRY BIT(14)
> +#define DWC3_GUCTL_PARKMODEDISABLESS BIT(17)
> +#define DWC3_GUCTL_NAKPERENHHS BIT(18)
>
> /* Global User Control 1 Register */
> #define DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS BIT(28)
>
> <https://forum.odroid.com/viewtopic.php?f=176&t=33993&start=350#p268598>
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: meson-g12b xHCI - disable park mode
[not found] ` <2019092715010469964015@amlogic.com>
@ 2019-09-27 11:34 ` Neil Armstrong
2019-09-27 13:25 ` [PATCH] dwc3: add parkmode_disable_ss_quirk for G12A Neil Armstrong
0 siblings, 1 reply; 4+ messages in thread
From: Neil Armstrong @ 2019-09-27 11:34 UTC (permalink / raw)
To: jianxin.pan, Tim, open list:ARM/Amlogic Meson..., tobetter, qi.duan
Hi Tim, Dongjin,
Is the DWC3_GUCTL_NAKPERENHHS bit really needed to fix ?
Could you try without ?
With Jianxin's description, seems only DWC3_GUCTL_PARKMODEDISABLESS is needed here.
DWC3_GUCTL_NAKPERENHHS could help, but it would another patchset to enhance performances.
Neil
On 27/09/2019 09:01, jianxin.pan@amlogic.com wrote:
>
> Hi Neil,
>
> For Odroid-N2,we add #define DWC3_GUCTL_PARKMODEDISABLESS BIT(17)
> this bit descriptor is
>
>
>
> We did not set BIT(18) in aml-4.9 kernel. This bit is :
>
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> jianxin.pan@amlogic.com
>
>
> *From:* Neil Armstrong <mailto:narmstrong@baylibre.com>
> *Date:* 2019-09-26 20:53
> *To:* Tim <mailto:elatllat@gmail.com>; open list:ARM/Amlogic Meson... <mailto:linux-amlogic@lists.infradead.org>; tobetter <mailto:tobetter@gmail.com>; Jianxin Pan <mailto:jianxin.pan@amlogic.com>
> *Subject:* Re: meson-g12b xHCI - disable park mode
> Hi Tim,
>
> Thanks for sending the email, this has already been spotted by Christian Hewitt from LibreELEC.
>
> Indeed this need some dt-bindings work and some more information for these :
> - DWC3_GUCTL_NAKPERENHHS
> - DWC3_GUCTL_PARKMODEDISABLESS
> bit from Amlogic since I don't access to the DWC3 DataBook.
>
> Jianxin, could you give use a brief description of these bits and why they are needed to solve the issue ?
>
> Thanks,
> Neil
>
> On 21/09/2019 15:47, Tim wrote:
> > Hi Neil,
> >
> > Thank you for your work on the Linux kernel.
> > Hardkernel and others using the mainline on the N2 are including a patch[1] that prevents bugs[2] on the Odroid-N2.
> > Dongjin Kim <tobetter@gmail.com <mailto:tobetter@gmail.com>> obtained the patch from AmLogic[3],
> > but is not comfortable contributing to upstream[4].
> > Please fix this bug upstream, or let us know the best way forward.
> > (maybe you can send something appropriate for Felipe to review)
> > Thanks again.
> >
> > Reference links;
> >
> > 1 https://forum.odroid.com/download/file.php?id=9674
> > 2 https://forum.odroid.com/viewtopic.php?f=181&t=35031&start=250#p267479
> > 3 https://forum.odroid.com/viewtopic.php?f=181&t=35031&start=250#p267481
> > 4 https://forum.odroid.com/viewtopic.php?f=176&t=33993&start=350#p268598
> >
> >
> > The patch inline;
> >
> > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
> > index c9bb93a2c..8252923d8 100644
> > --- a/drivers/usb/dwc3/core.c
> > +++ b/drivers/usb/dwc3/core.c
> > @@ -983,6 +983,8 @@ static int dwc3_core_init(struct dwc3 *dwc)
> > if (dwc->dis_tx_ipgap_linecheck_quirk)
> > reg |= DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS;
> >
> > + reg |= (DWC3_GUCTL_NAKPERENHHS | DWC3_GUCTL_PARKMODEDISABLESS);
> > +
> > dwc3_writel(dwc->regs, DWC3_GUCTL1, reg);
> > }
> >
> > diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
> > index 3dd783b88..ff09d19ee 100644
> > --- a/drivers/usb/dwc3/core.h
> > +++ b/drivers/usb/dwc3/core.h
> > @@ -247,6 +247,8 @@
> >
> > /* Global User Control Register */
> > #define DWC3_GUCTL_HSTINAUTORETRY BIT(14)
> > +#define DWC3_GUCTL_PARKMODEDISABLESS BIT(17)
> > +#define DWC3_GUCTL_NAKPERENHHS BIT(18)
> >
> > /* Global User Control 1 Register */
> > #define DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS BIT(28)
> >
> > <https://forum.odroid.com/viewtopic.php?f=176&t=33993&start=350#p268598>
>
>
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH] dwc3: add parkmode_disable_ss_quirk for G12A
2019-09-27 11:34 ` Neil Armstrong
@ 2019-09-27 13:25 ` Neil Armstrong
[not found] ` <CA+3zgmvmXwrXjM_xPZuumUhOEjqFqv7WofXGLDvY0S5JedN4Wg@mail.gmail.com>
0 siblings, 1 reply; 4+ messages in thread
From: Neil Armstrong @ 2019-09-27 13:25 UTC (permalink / raw)
To: elatllat, tobetter; +Cc: linux-amlogic, Jianxin Pan, Neil Armstrong
Could you validate this fixes the following issue ?
[ 221.141621] xhci-hcd xhci-hcd.0.auto: xHCI host not responding to stop endpoint command.
[ 221.157631] xhci-hcd xhci-hcd.0.auto: Host halt failed, -110
[ 221.157635] xhci-hcd xhci-hcd.0.auto: xHCI host controller not responding, assume dead
[ 221.159901] xhci-hcd xhci-hcd.0.auto: xHCI host not responding to stop endpoint command.
[ 221.159961] hub 2-1.1:1.0: hub_ext_port_status failed (err = -22)
[ 221.160076] xhci-hcd xhci-hcd.0.auto: HC died; cleaning up
[ 221.165946] usb 2-1.1-port1: cannot reset (err = -22)
Cc: Tim <elatllat@gmail.com>
CC: Dongjin Kim <tobetter@gmail.com>
Cc: Jianxin Pan <jianxin.pan@amlogic.com>
CC: linux-amlogic@lists.infradead.org
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
Documentation/devicetree/bindings/usb/dwc3.txt | 2 ++
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 1 +
drivers/usb/dwc3/core.c | 5 +++++
drivers/usb/dwc3/core.h | 4 ++++
4 files changed, 12 insertions(+)
diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt b/Documentation/devicetree/bindings/usb/dwc3.txt
index 66780a47ad85..c977a3ba2f35 100644
--- a/Documentation/devicetree/bindings/usb/dwc3.txt
+++ b/Documentation/devicetree/bindings/usb/dwc3.txt
@@ -75,6 +75,8 @@ Optional properties:
from P0 to P1/P2/P3 without delay.
- snps,dis-tx-ipgap-linecheck-quirk: when set, disable u2mac linestate check
during HS transmit.
+ - snps,parkmode-disable-ss-quirk: when set, all SuperSpeed bus instances in
+ park mode are disabled.
- snps,dis_metastability_quirk: when set, disable metastability workaround.
CAUTION: use only if you are absolutely sure of it.
- snps,is-utmi-l1-suspend: true when DWC3 asserts output signal
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
index 852cf9cf121b..139f24975c0e 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
@@ -2401,6 +2401,7 @@
dr_mode = "host";
snps,dis_u2_susphy_quirk;
snps,quirk-frame-length-adjustment;
+ snps,parkmode-disable-ss-quirk;
};
};
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index c9bb93a2c81e..f64dba17a50d 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -983,6 +983,9 @@ static int dwc3_core_init(struct dwc3 *dwc)
if (dwc->dis_tx_ipgap_linecheck_quirk)
reg |= DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS;
+ if (dwc->parkmode_disable_ss_quirk)
+ reg |= DWC3_GUCTL1_PARKMODE_DISABLE_SS;
+
dwc3_writel(dwc->regs, DWC3_GUCTL1, reg);
}
@@ -1294,6 +1297,8 @@ static void dwc3_get_properties(struct dwc3 *dwc)
"snps,dis-del-phy-power-chg-quirk");
dwc->dis_tx_ipgap_linecheck_quirk = device_property_read_bool(dev,
"snps,dis-tx-ipgap-linecheck-quirk");
+ dwc->parkmode_disable_ss_quirk = device_property_read_bool(dev,
+ "snps,parkmode-disable-ss-quirk");
dwc->tx_de_emphasis_quirk = device_property_read_bool(dev,
"snps,tx_de_emphasis_quirk");
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index 3dd783b889cb..ab071163b3b8 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -249,6 +249,7 @@
#define DWC3_GUCTL_HSTINAUTORETRY BIT(14)
/* Global User Control 1 Register */
+#define DWC3_GUCTL1_PARKMODE_DISABLE_SS BIT(17)
#define DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS BIT(28)
#define DWC3_GUCTL1_DEV_L1_EXIT_BY_HW BIT(24)
@@ -1022,6 +1023,8 @@ struct dwc3_scratchpad_array {
* change quirk.
* @dis_tx_ipgap_linecheck_quirk: set if we disable u2mac linestate
* check during HS transmit.
+ * @parkmode_disable_ss_quirk: set if we need to disable all SuperSpeed
+ * instances in park mode.
* @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk
* @tx_de_emphasis: Tx de-emphasis value
* 0 - -6dB de-emphasis
@@ -1211,6 +1214,7 @@ struct dwc3 {
unsigned dis_u2_freeclk_exists_quirk:1;
unsigned dis_del_phy_power_chg_quirk:1;
unsigned dis_tx_ipgap_linecheck_quirk:1;
+ unsigned parkmode_disable_ss_quirk:1;
unsigned tx_de_emphasis_quirk:1;
unsigned tx_de_emphasis:2;
--
2.22.0
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Fwd: [PATCH] dwc3: add parkmode_disable_ss_quirk for G12A
[not found] ` <CA+3zgmvmXwrXjM_xPZuumUhOEjqFqv7WofXGLDvY0S5JedN4Wg@mail.gmail.com>
@ 2019-09-29 1:36 ` Tim
0 siblings, 0 replies; 4+ messages in thread
From: Tim @ 2019-09-29 1:36 UTC (permalink / raw)
To: linux-amlogic
[-- Attachment #1: Type: text/plain, Size: 912 bytes --]
Text only version for the list;
---------- Forwarded message ---------
From: Tim <elatllat@gmail.com>
Date: Sat, Sep 28, 2019 at 9:25 PM
Subject: Re: [PATCH] dwc3: add parkmode_disable_ss_quirk for G12A
To: Neil Armstrong <narmstrong@baylibre.com>
Cc: tobetter <tobetter@gmail.com>, Neil Armstrong
<narmstrong@baylibre.com>, Jianxin Pan <jianxin.pan@amlogic.com>
Thanks, yes that works.
Details;
I applied the patch to the v5.3.1 tag (diff attached), and built 3
kernels for testing.
v5.3.1 errors in seconds
v5.3.1_tobetter no errors
v5.3.1_neil no errors
The test is a rsync of a small database (24GB 2000 files) from a
remote server to a local spinning disk/lvm_devices=3/cryptsetup/ext4.
I also tested a simpler case and got no errors on any of the 3 builds
with local only rsync on spinning disk/mdadm_level=0_devices=2/ext4,
so either the network or storage stack are required to reproduce this
bug.
[-- Attachment #2: park.patch --]
[-- Type: application/x-patch, Size: 3155 bytes --]
[-- Attachment #3: Type: text/plain, Size: 167 bytes --]
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-09-29 1:37 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <CA+3zgmvjhisn97Y1TCn7Ztj2m3hB9+sdoOnFdvJJbKUFpt=QrQ@mail.gmail.com>
2019-09-26 12:53 ` meson-g12b xHCI - disable park mode Neil Armstrong
[not found] ` <2019092715010469964015@amlogic.com>
2019-09-27 11:34 ` Neil Armstrong
2019-09-27 13:25 ` [PATCH] dwc3: add parkmode_disable_ss_quirk for G12A Neil Armstrong
[not found] ` <CA+3zgmvmXwrXjM_xPZuumUhOEjqFqv7WofXGLDvY0S5JedN4Wg@mail.gmail.com>
2019-09-29 1:36 ` Fwd: " Tim
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).