Hi Alexander, Alexander Stein <alexander.stein@xxxxxxxxxxxxxxx> 于2022年6月22日周三 21:13写道: > > Hi everybody, > > this is an RFC for USB support on TQMa8MPxL + MBa8MPxL. DT support is currently > in progress at [1]. This series is on top of that. > 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. Found this patch set some late. Yes, your choice to enable GFLADJ.GFLADJ_REFCLK_LPM_SEL is the right setting after checking with Synopsys, which can make USB2 with LPM supported devices work as well, as SOFTIPSYNC has below description: "If you plan to enable hardware-based LPM or software-based LPM (PORTPMSC. HLE=1), then you cannot use this feature. Turn off this feature by setting this bit to '0' and use the GFLADJ.GFLADJ_REFCLK_LPM_SEL feature." So could you please remove RFC mark and resume this topic? Thanks Li Jun > > Note: I excluded the DT guys (for now) as this is more about usb internals, the > DT patches are for completeness. > > Thanks and best regards, > Alexander > > [1] https://patchwork.kernel.org/project/linux-arm-kernel/cover/20220622114949.889274-1-alexander.stein@xxxxxxxxxxxxxxx/ > [2] https://source.codeaurora.org/external/imx/linux-imx/tree/drivers/usb/dwc3/dwc3-imx8mp.c?h=lf-5.10.y#n134 > [3] https://source.codeaurora.org/external/imx/linux-imx/tree/drivers/usb/dwc3/core.c?h=lf-5.10.y#n333 > [4] https://android.googlesource.com/kernel/msm/+/87a6b154766907020cc74c7726e8a68aaa9d7f6b%5E%21/#F0 > > 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 USB support > > .../devicetree/bindings/usb/snps,dwc3.yaml | 5 ++ > .../freescale/imx8mp-tqma8mpql-mba8mpxl.dts | 68 ++++++++++++++++++- > arch/arm64/boot/dts/freescale/imx8mp.dtsi | 2 + > drivers/usb/dwc3/core.c | 8 ++- > drivers/usb/dwc3/core.h | 2 + > 5 files changed, 83 insertions(+), 2 deletions(-) > > -- > 2.25.1 >