From: "Frank Wunderlich" <frank.wunderlich@linux.dev>
To: "AngeloGioacchino Del Regno"
<angelogioacchino.delregno@collabora.com>,
"Frank Wunderlich" <linux@fw-web.de>,
"Stephen Boyd" <sboyd@kernel.org>,
"Brian Masney" <bmasney+clk@redhat.com>,
"Jerome Brunet" <jbrunet+clk@baylibre.com>,
"Matthias Brugger" <matthias.bgg@gmail.com>,
"Mathias Nyman" <mathias.nyman@intel.com>,
"Chunfeng Yun" <chunfeng.yun@mediatek.com>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
Cc: "Frank Wunderlich" <frank-w@public-files.de>,
"Daniel Golle" <daniel@makrotopia.org>,
"Mihai Ordean" <research@mihaiordean.com>,
"Chen-Yu Tsai" <wenst@chromium.org>,
linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org, linux-usb@vger.kernel.org
Subject: Re: [PATCH 1/2] clk: mediatek: mt7988: keep combo-lane U3 PHY ref clock enabled
Date: Mon, 21 Sep 2026 11:16:16 +0000 [thread overview]
Message-ID: <6b691a27f27eee1a058426cc7fd5a3fbdbfd45a6@linux.dev> (raw)
In-Reply-To: <a71b6552-ea57-4575-89e1-14d414d53569@collabora.com>
Am 21. September 2026 um 11:59 schrieb "AngeloGioacchino Del Regno" <angelogioacchino.delregno@collabora.com>:
Hi angelo
> On 9/19/26 13:47, Frank Wunderlich wrote:
>
> >
> > From: Mihai Ordean <research@mihaiordean.com>
> > CLK_INFRA_USB_PIPE is the reference clock of xphyu3port0, the U3/PCIe
> > combo serdes. On MT7988 that lane is shared between ssusb0's SuperSpeed
> > side and pcie2, but only the consumer that claims the PHY holds the gate.
> > On the BPI-R4 Pro, ssusb0 is configured USB2-only (u3p-dis-msk=1) and
> > pcie2 claims the lane for the CN13/CN15 M.2 slot, so pcie2 is the sole
> > holder. u3p-dis-msk does not remove ssusb0's SuperSpeed root hub: that is
> > decided by xhci_has_one_roothub(), which keys off usb3_rhub.num_ports
> > from the xHCI capability registers, so bus 2 is registered and live
> > regardless. When the M.2 slot is empty, pcie2 fails link training (-110)
> > and its error path calls phy_power_off()/phy_exit(), which gates this
> > clock - and sspxtp_sel with it, as nothing else consumes it. The still
> > registered SuperSpeed root hub is then left polling a serdes whose PHY
> > reference clock has just stopped,
> >
> I'm not sure why said clock cannot be assigned to the USB controller as well
> as the PCIe PHY to keep the refcount high, avoiding to gate it?
the clock is assigned to the phy which is assigned to both consumers
mt7988a.dtsi:
xsphy: xs-phy@11e10000 {
compatible = "mediatek,mt7988-xsphy",
"mediatek,xsphy";
...
xphyu3port0: usb-phy@3400 {
reg = <0x3400 0x500>;
clocks = <&infracfg CLK_INFRA_USB_PIPE>;
ssusb0: usb@11190000 {
compatible = "mediatek,mt7988-xhci", "mediatek,mtk-xhci";
...
phys = <&xphyu2port0 PHY_TYPE_USB2>,
<&xphyu3port0 PHY_TYPE_USB3>;
};
pcie2: pcie@11280000 {
compatible = "mediatek,mt7986-pcie",
"mediatek,mt8192-pcie";
...
phys = <&xphyu3port0 PHY_TYPE_PCIE>;
phy-names = "pcie-phy";
...
};
but this seems not enough...do you mean we need to define the clock again for both
consumers (e.g. via assigned-clock-parents property)?
regards Frank
> Cheers,
> Angelo
>
> >
> > and asserts the shared SSUSB interrupt
> > outside the xHCI event ring; xhci_irq() reads USBSTS with EINT clear and
> > returns IRQ_NONE, so the core disables the line ("nobody cared") and the
> > next USB teardown blocks forever in xhci_disable_slot().
> > Boot logs show the storm threshold being crossed 86-107 ms after the
> > pcie2 probe failure, while the earlier combo-mux switch to PCIe mode
> > (~550 ms before) causes no trouble, pointing at the clock gating rather
> > than the mux as the trigger.
> > Mark the gate CLK_IS_CRITICAL so the combo lane keeps its reference clock.
> > Only port 0's gate is affected; ssusb1 uses CLK_INFRA_USB_PIPE_CK_P1.
> > Signed-off-by: Mihai Ordean <research@mihaiordean.com>
> > Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
regards Frank
next prev parent reply other threads:[~2026-09-21 11:16 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-19 11:47 [RFC PATCH 0/2] Fix mt7988 usb with shared phy Frank Wunderlich
2026-09-19 11:47 ` [PATCH 1/2] clk: mediatek: mt7988: keep combo-lane U3 PHY ref clock enabled Frank Wunderlich
2026-09-21 9:59 ` AngeloGioacchino Del Regno
2026-09-21 11:16 ` Frank Wunderlich [this message]
2026-09-19 11:47 ` [PATCH 2/2] usb: xhci-mtk: power down u3 ports skipped by u3p-dis-msk Frank Wunderlich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6b691a27f27eee1a058426cc7fd5a3fbdbfd45a6@linux.dev \
--to=frank.wunderlich@linux.dev \
--cc=angelogioacchino.delregno@collabora.com \
--cc=bmasney+clk@redhat.com \
--cc=chunfeng.yun@mediatek.com \
--cc=daniel@makrotopia.org \
--cc=frank-w@public-files.de \
--cc=gregkh@linuxfoundation.org \
--cc=jbrunet+clk@baylibre.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-usb@vger.kernel.org \
--cc=linux@fw-web.de \
--cc=mathias.nyman@intel.com \
--cc=matthias.bgg@gmail.com \
--cc=research@mihaiordean.com \
--cc=sboyd@kernel.org \
--cc=wenst@chromium.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®