Re: Probe failure of usb controller @11290000 on MT8195 after next-20231221

From: AngeloGioacchino Del Regno
Date: Thu Jul 11 2024 - 05:21:24 EST


Il 11/07/24 06:13, Macpaul Lin ha scritto:


On 7/11/24 03:15, Nícolas F. R. A. Prado wrote:
On Fri, Jan 19, 2024 at 10:12:07AM +0100, AngeloGioacchino Del Regno wrote:
Il 18/01/24 19:36, Nícolas F. R. A. Prado ha scritto:
Hi,

KernelCI has identified a failure in the probe of one of the USB controllers on
the MT8195-Tomato Chromebook [1]:

[   16.336840] xhci-mtk 11290000.usb: uwk - reg:0x400, version:104
[   16.337081] xhci-mtk 11290000.usb: xHCI Host Controller
[   16.337093] xhci-mtk 11290000.usb: new USB bus registered, assigned bus number 5
[   16.357114] xhci-mtk 11290000.usb: clocks are not stable (0x1003d0f)
[   16.357119] xhci-mtk 11290000.usb: can't setup: -110
[   16.357128] xhci-mtk 11290000.usb: USB bus 5 deregistered
[   16.359484] xhci-mtk: probe of 11290000.usb failed with error -110

A previous message [2] suggests that a force-mode phy property that has been
merged might help with addressing the issue, however it's not clear to me how,
given that the controller at 1129000 uses a USB2 phy and the phy driver patch
only looks for the property on USB3 phys.

Worth noting that the issue doesn't always happen. For instance the test did
pass for next-20240110 and then failed again on today's next [3]. But it does
seem that the issue was introduced, or at least became much more likely, between
next-20231221 and next-20240103, given that it never happened out of 10 runs
before, and after that has happened 5 out of 7 times.

Note: On the Tomato Chromebook specifically this USB controller is not connected
to anything.

[1] https://urldefense.com/v3/__https://linux.kernelci.org/test/case/id/659ce3506673076a8c52a428/__;!!CTRNKA9wMg0ARbw!jtg5drII8WUPwTiL4sWZiSRPXN-EBN8ctTGI85sirqvkmaUbA5z-wrLqPPfxlZZkQ7NItOWDT97OSdENT5oGHKY$
[2] https://lore.kernel.org/all/239def9b-437b-9211-7844-af4332651df0@xxxxxxxxxxxx/
[3] https://urldefense.com/v3/__https://linux.kernelci.org/test/case/id/65a8c66ee89acb56ac52a405/__;!!CTRNKA9wMg0ARbw!jtg5drII8WUPwTiL4sWZiSRPXN-EBN8ctTGI85sirqvkmaUbA5z-wrLqPPfxlZZkQ7NItOWDT97OSdENi-d0sVc$

Thanks,
Nícolas

Hey Nícolas,

I wonder if this is happening because of async probe... I have seen those happening
once in a (long) while on MT8186 as well with the same kind of flakiness and I am
not even able to reproduce anymore.

For MT8195 Tomato, I guess we can simply disable that controller without any side
effects but, at the same time, I'm not sure that this would be the right thing to
do in this case.

Besides, the controller at 11290000 is the only one that doesn't live behind MTU3,
but I don't know if that can ring any bell....

An update on this issue: it looks like it only happens if "xhci-mtk
11290000.usb" probes before "mtk-pcie-gen3 112f8000.pcie". What they have in
common is that both of those nodes use phys that share the same t-phy block:
pcie uses the usb3 phy while xhci uses the usb2 phy. So it seems that some of
the initialization done by the pcie controller might be implicitly needed by the
usb controller.

This should help to narrow down the issue and find a proper fix for it.

Thanks,
Nícolas

'force-mode' should only applied to the boards which require XHCI function instead of a PCIE port.

For example, mt8395-genio-1200-evk.dts requires property 'force-mode' to fix probe issue for USBC @11290000.

https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux.git/commit/?h=v6.10-next/dts64&id=666e6f39faff05fe12bfc64c64aa9015135ce783

'force-mode' should be no need for tomato boards and the behavior should be the same as before.

Another possibility is the firmware change on tomato boards. I'm not sure if there is any changes on tomato's recent firmware for tphy of this port, which could also be a reason causes this kind of failure.
I don't have tomato boards on hand.


Hello Macpaul,

it's just about the usb node missing a power domain: as the PCIE_MAC_P1 domain
seems to be shared between USB and PCIe, adding it to the USB node fixes the
setup phase.

I'll send a devicetree fix soon.

Cheers,
Angelo

Thanks
Macpaul Lin