RE: [PATCH 0/4] USB host support for TQMa8MPxL + MBa8MPxL

From: Alexander Stein
Date: Thu Sep 08 2022 - 01:49:57 EST


Hi,

Am Mittwoch, 7. September 2022, 18:08:25 CEST schrieb Jun Li:
> Hi
>
> > -----Original Message-----
> > From: Alexander Stein <alexander.stein@xxxxxxxxxxxxxxx>
> > Sent: Wednesday, September 7, 2022 10:46 PM
> > To: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>; Rob Herring
> > <robh+dt@xxxxxxxxxx>; Krzysztof Kozlowski
> > <krzysztof.kozlowski+dt@xxxxxxxxxx>; Shawn Guo <shawnguo@xxxxxxxxxx>;
> > Sascha Hauer <s.hauer@xxxxxxxxxxxxxx>; Pengutronix Kernel Team
> > <kernel@xxxxxxxxxxxxxx>; Fabio Estevam <festevam@xxxxxxxxx>; dl-linux-imx
> > <linux-imx@xxxxxxx>; Jun Li <jun.li@xxxxxxx>
> > Cc: Alexander Stein <alexander.stein@xxxxxxxxxxxxxxx>;
> > linux-usb@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx;
> > linux-kernel@xxxxxxxxxxxxxxx
> > Subject: [PATCH 0/4] USB host support for TQMa8MPxL + MBa8MPxL
> >
> > Hi everybody,
> >
> > this is a series based on the RFC at [1] for USB host support on TQMa8MPxL
> > + MBa8MPxL. The main difference is that USB DR support has already been
> > added and has been removed from this series.
> >
> > The DT configuration itself (patch 4) is rather straight forward, but
> > leads
> >
> > to the following dmesg errors regarding superspeed ports:
> > > [ 8.549243] hub 2-1:1.0: hub_ext_port_status failed (err = -110)
> > > [ 22.885263] usb 2-1: Failed to suspend device, error -110
> >
> > This hardware works fine using the downstream kernel, because for imx8mp
> > this ITP sync feature is enabled conditionally [2] & [3].
> > Hacking this into mainline resulted in a working superspeed setup as well.
> > I also noticed that on some android kernel [4] depending in IP core
> > version
> > either GCTL.SOFTITPSYNC or GFLADJ.GFLADJ_REFCLK_LPM_SEL is enabled
> > unconditionally.
> > So I opted for the latter one using some quirk (patch 1-3).
> >
> > I have to admit I do not know what this is actually about, nor why my
> > setup
> > does not work without this change or why this fixed my problem. So maybe
> > someone with more knowledge can say if this is the way to go or what this
> > is about.
>
> This can be updated:)
>
> > I also added snps,dis_u3_susphy_quirk to the board level as for some
> > reason
> > USB Superspeed U3 does not work. Detecting the onboard hub takes much
> > longer and once all devices are diconnected from the hub it is put into
> > runtime suspend (U3) and new attached devices are not detected at all.
> > Until the cause is known and fixed runtime suspend has to be disabled.
>
> For this issue you are reporting, I am not sure if this is caused by a USB
> clock change merged on v5.19, if you use latest kernel, can you try with
> below patches applied to see if U3 can work for you?

Awesome, This does the trick!
I was already running with patches [1] & [2], but was missing patch [3]. With
all of them applied, USB detects a newly attached superspeed device when the
HUB is in runtime suspend (U3).

I forgot: thanks for checking with synopsis regarding soft ITP sync feature.

Best regards,
Alexander

> [1]
> https://patchwork.kernel.org/project/linux-arm-kernel/patch/1662547028-2227
> 9-1-git-send-email-jun.li@xxxxxxx/ [2]
> https://patchwork.kernel.org/project/linux-arm-kernel/patch/1662547028-2227
> 9-2-git-send-email-jun.li@xxxxxxx/ [3]
> https://patchwork.kernel.org/project/linux-arm-kernel/patch/1661328612-3932
> -1-git-send-email-jun.li@xxxxxxx/
>
> Li Jun
>
> > Thanks and best regards,
> > Alexander
> >
> > [1]
> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.
> > kernel.org%2Fall%2F20220622130440.955465-1-alexander.stein%40ew.tq-grou
> > p.com%2F&amp;data=05%7C01%7Cjun.li%40nxp.com%7Cd1bdfb58b364464e957d08da
> > 90dfc29f%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C63798158796971424
> > 0%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6I
> > k1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=WSQHERVO9SCWk%2B%2Fmq8g
> > K78yluy5VE7T%2BhUaDMlNhbWk%3D&amp;reserved=0
> > [2]
> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fsourc
> > e.codeaurora.org%2Fexternal%2Fimx%2Flinux-imx%2Ftree%2Fdrivers%2Fusb%2F
> > dwc3%2Fdwc3-imx8mp.c%3Fh%3Dlf-5.10.y%23n134&amp;data=05%7C01%7Cjun.li%4
> > 0nxp.com%7Cd1bdfb58b364464e957d08da90dfc29f%7C686ea1d3bc2b4c6fa92cd99c5
> > c301635%7C0%7C0%7C637981587969870477%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC
> > 4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7
> > C&amp;sdata=9%2FxYZoZSelekGcWIZZNwRQqy8LTGPnnn13Rf4L5a0iY%3D&amp;reserv
> > ed=0
> > [3]
> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fsourc
> > e.codeaurora.org%2Fexternal%2Fimx%2Flinux-imx%2Ftree%2Fdrivers%2Fusb%2F
> > dwc3%2Fcore.c%3Fh%3Dlf-5.10.y%23n333&amp;data=05%7C01%7Cjun.li%40nxp.co
> > m%7Cd1bdfb58b364464e957d08da90dfc29f%7C686ea1d3bc2b4c6fa92cd99c5c301635
> > %7C0%7C0%7C637981587969870477%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwM
> > DAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;s
> > data=Or9hvtM%2F9DhPZbfv%2BKzwAm8QTyXg4y0ddVbMFqOM67Q%3D&amp;reserved=0
> > [4]
> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fandro
> > id.googlesource.com%2Fkernel%2Fmsm%2F%2B%2F87a6b154766907020cc74c7726e8
> > a68aaa9d7f6b%255E%2521%2F%23F0&amp;data=05%7C01%7Cjun.li%40nxp.com%7Cd1
> > bdfb58b364464e957d08da90dfc29f%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7
> > C0%7C637981587969870477%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJ
> > QIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3
> > tjAzUL81SwFkaoUh56CND%2B27FHqdo6TbY7Z66ldE8Q%3D&amp;reserved=0
> >
> > Alexander Stein (4):
> > dt-bindings: usb: dwc3: Add gfladj-refclk-lpm-sel-quirk
> > usb: dwc3: core: add gfladj_refclk_lpm_sel quirk
> > arm64: dts: imx8mp: Add snps,gfladj-refclk-lpm-sel quirk to USB nodes
> > arm64: dts: tqma8mpql: add support for 2nd USB (host) interface
> >
> > .../devicetree/bindings/usb/snps,dwc3.yaml | 5 +++
> > .../freescale/imx8mp-tqma8mpql-mba8mpxl.dts | 42 +++++++++++++++++++
> > arch/arm64/boot/dts/freescale/imx8mp.dtsi | 2 +
> > drivers/usb/dwc3/core.c | 8 +++-
> > drivers/usb/dwc3/core.h | 2 +
> > 5 files changed, 58 insertions(+), 1 deletion(-)
> >
> > --
> > 2.25.1