From: Sebastian Reichel <sre@kernel.org>
To: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Cc: "Dr. David Alan Gilbert" <dave@treblig.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Abel Vesa <abelvesa@kernel.org>,
Heikki Krogerus <heikki.krogerus@linux.intel.com>,
Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konradybcio@kernel.org>,
linux-usb@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org,
stable@vger.kernel.org
Subject: Re: [PATCH 0/5] usb: typec: ps883x: fixes for older Thunderbolt 4 / USB4 docks
Date: Wed, 22 Jul 2026 18:03:15 +0200 [thread overview]
Message-ID: <amDi7e8fqqzCRlAc@venus> (raw)
In-Reply-To: <41222b67-19e5-4f74-b4aa-928d05db9675@oldschoolsolutions.biz>
[-- Attachment #1: Type: text/plain, Size: 5234 bytes --]
Hi,
On Wed, Jul 22, 2026 at 10:38:34AM +0200, Jens Glathe wrote:
> On 7/22/26 01:34, Sebastian Reichel wrote:
> > On Tue, Jul 21, 2026 at 04:24:06PM +0000, Dr. David Alan Gilbert wrote:
> > > * Sebastian Reichel (sre@kernel.org) wrote:
> > > > I don't think a kernel driver limitation is a good reason for the DT
> > > > property. I suggest to add something like this in the ps883x driver
> > > > instead:
> > > >
> > > > /*
> > > > * Hamoa does not yet support USB4, disable it for now to gracefully
> > > > * fall back to USB3 + DP AltMode. This should be removed once USB4
> > > > * support landed for X1E.
> > > > */
> > > > if (of_machine_is_compatible("qcom,x1e80100"))
> > > > disable_usb4 = true;
> > > It seems a bit of a weird abstraction break to put a machine type
> > > check down in a device that's not specific to qcom.
> > It's obviously a hack, but this quirk would be simple and fully
> > contained within the kernel and thus does not create a new ABI (in
> > opposite to the DT property). Once the kernel supports USB4 on Hamoa
> > it could simply be dropped and people have working USB4 with their
> > existing DT.
> >
> > > I'd bet it's not just qcom's suffering from this as well.
> > Qcom boards are the only users of ps883x (the driver is exclusively
> > probed via DT at the moment). So right now one could also simply
> > remove any USB4 support from ps883x, but that would work against the
> > people working on _adding_ proper USB4 support.
> >
> > IIUIC the problem is, that the Qcom board supports USB4, negotiates
> > this via the PD protocol and then soft-fails because the software
> > support is not yet ready. Most other ARM platforms do not have any
> > USB4/Thunderbolt hardware support to begin with and wouldn't
> > negotiate it, so they do not run into this in the first place.
> >
> > AFAIK only Qcom and Apple M series support it. A quick search
> > suggsts Apple used an Intel retimer in the past and a custom one
> > nowadays. From the looks of it the x86 world cannot use this driver
> > either and probably handles retimers transparently in ACPI, so it's
> > effectively Qcom specific until other vendors start adding USB4
> > support. The only thing announced potentially running into this
> > would be the Nvidia RTX Spark, which first needs to be released,
> > then find a bunch of people motivated to implement upstream support.
> > Nothing with USB4 capabilities has been announced from Mediatek or
> > Rockchip. So I wouldn't hold my breath for another user and still
> > suggested adding the machine check instead of simply disabling USB4
> > for everyone ;)
> >
> > Greetings,
> >
> > -- Sebastian
>
> I understand, however I wouldn't want to nerf ps883x for the Hamoa
> platform until the USB4 stack is complete. The issues you
> currently run into is:
That's exactly what this series is doing and not really a problem
considering USB4 is not working anyways.
> - you use a tbt4 / usb4 cable and nothing works,
>
> - you have a tbt4 / usb4 capable device in fallback mode that does complex
> stuff when negotiating and firmware / a partial USB4 stack requests USB4,
> which ends up not working.
>
> Both cases are not the hardware's fault, it is capable of USB4. The driver
> stack isn't. Therefore I would prefer to deliberately disable USB4 modes by
> device via the DT.
DT is not a kernel config file. You can find that in .config. The DT
describes the hardware. Writing in DT "no-usb4" means that the
hardware does not support USB4. But the board files you are changing
can do USB4 in hardware. Thus the DT entry is wrong.
> That way it can fall back to re-negotiating something the driver
> stack is capable of. PS883x is not the place where this starts,
> but where it's convenient to stop.
I understand that part. That's why I suggested to just put the
disable_usb4 = true; in there without the DT check instead of
something completley differnt. That's exactly the same, except
that the information is fully contained within the kernel.
This is actually __less__ intrusive:
- less code
- there is no need to touch all board files
- the hardware description stays correct
- it does not create ABI (you are supposed to continue supporting
the new flag also after known users dropped it)
- affects the same devices (all X1E)
- but automatically also affects newly added boards
- it's easier to revert (no need to touch all board files)
If you don't want to have a hack, the proper fix would be to detect
that the follow-up stack is not capable of handlin USB4 and avoid
exposing it. I'm aware that this is a quite complex task and
considering USB4 is WIP anyways, I would go with the hack until
then.
> I did some tests without USB4 disabled and the 40B0 stack in
> type-c cable fallback mode, and most of the time it just works.
> Except for an unlucky plug, and despite it shouldn't request USB4,
> the request lands at the redriver. Disabling USB4 modes reliably
> let's it renegotiate.
I'm not doubting the result of the patch series and plan to test
with my TB capable Dell U2725QE later.
Greetings,
-- Sebastian
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2026-07-22 16:03 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-18 17:06 [PATCH 0/5] usb: typec: ps883x: fixes for older Thunderbolt 4 / USB4 docks Jens Glathe via B4 Relay
2026-07-18 17:06 ` Jens Glathe
2026-07-18 17:06 ` [PATCH 1/5] dt-bindings: usb: parade,ps8830: Add parade,disable-usb4 property Jens Glathe via B4 Relay
2026-07-18 17:06 ` Jens Glathe
2026-07-18 17:11 ` sashiko-bot
2026-07-21 10:24 ` Krzysztof Kozlowski
2026-07-18 17:06 ` [PATCH 2/5] usb: typec: ps883x: Return -EOPNOTSUPP for USB4 when parade,disable-usb4 is set Jens Glathe via B4 Relay
2026-07-18 17:06 ` Jens Glathe
2026-07-18 17:14 ` sashiko-bot
2026-07-19 1:14 ` Dr. David Alan Gilbert
2026-07-21 17:57 ` Dmitry Baryshkov
2026-07-22 8:45 ` Jens Glathe
2026-07-18 17:06 ` [PATCH 3/5] usb: typec: mux: ps883x: refactor DP altmode handling and support TYPEC_DP_STATE_F Jens Glathe via B4 Relay
2026-07-18 17:06 ` Jens Glathe
2026-07-18 17:29 ` sashiko-bot
2026-07-21 10:45 ` Heikki Krogerus
2026-07-21 18:02 ` Dmitry Baryshkov
2026-07-18 17:06 ` [PATCH 4/5] usb: typec: mux: ps883x: add a delay after writing config regs Jens Glathe via B4 Relay
2026-07-18 17:06 ` Jens Glathe
2026-07-21 10:53 ` Heikki Krogerus
2026-07-22 17:36 ` Jens Glathe
2026-07-18 17:06 ` [PATCH 5/5] arm64: dts: qcom: x1: disable ps883x USB4 capability Jens Glathe via B4 Relay
2026-07-18 17:06 ` Jens Glathe
2026-07-18 17:22 ` sashiko-bot
2026-07-19 1:15 ` Dr. David Alan Gilbert
2026-07-21 0:43 ` [PATCH 0/5] usb: typec: ps883x: fixes for older Thunderbolt 4 / USB4 docks Sebastian Reichel
2026-07-21 16:24 ` Dr. David Alan Gilbert
2026-07-21 23:34 ` Sebastian Reichel
2026-07-22 8:27 ` Konrad Dybcio
2026-07-22 15:34 ` Sebastian Reichel
2026-07-22 8:38 ` Jens Glathe
2026-07-22 16:03 ` Sebastian Reichel [this message]
2026-07-22 17:18 ` Jens Glathe
2026-07-21 17:56 ` Dmitry Baryshkov
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=amDi7e8fqqzCRlAc@venus \
--to=sre@kernel.org \
--cc=abelvesa@kernel.org \
--cc=andersson@kernel.org \
--cc=conor+dt@kernel.org \
--cc=dave@treblig.org \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=heikki.krogerus@linux.intel.com \
--cc=jens.glathe@oldschoolsolutions.biz \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=robh@kernel.org \
--cc=stable@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.