Re: [PATCH] usb: typec: ucsi: Add UCSI_USB4_IMPLIES_USB quirk for X1E80100
From: Krishna Kurapati PSSNV
Date: Fri Mar 13 2026 - 05:19:34 EST
On Fri, Mar 13, 2026 at 2:24 PM Heikki Krogerus
<heikki.krogerus@xxxxxxxxxxxxxxx> wrote:
>
> Thu, Mar 12, 2026 at 03:44:31PM +0530, Krishna Kurapati kirjoitti:
> > On X1E80100, when we connect a USB4 capable dock, the PARTNER_FLAGS
> > indicate USB4_GEN3 being set whilst keeping the PARTNER_FLAGS_USB
> > cleared. Due to this, during ucsi_partner_change call, the usb role
> > is marked as ROLE_NONE and passed to DWC3 controller the same way.
> >
> > Fix this by adding UCSI_USB4_IMPLIES_USB quirk and check for it to
> > decide and pass on proper ROLE information to DWC3 layer.
>
> Do we need a quirk for this - can't we just always check the
> USB4_GET<X>? With USB4, don't we always support USB2?
>
Thanks for the review Heikki.
So you mean check for all the 3 bits (Bit 21/23 and 24) and if none of
them is set, then pass ROLE_NONE ?
I wasn't sure if all PPMs would work that way or not and hence made
this quirk. Let me know if something like the following is fine:
!((UCSI_CONSTAT(con, PARTNER_FLAG_USB)) ||
(UCSI_CONSTAT(con, PARTNER_FLAG_USB4_GEN3)) ||
(UCSI_CONSTAT(con, PARTNER_FLAG_USB4_GEN4)))
The if check would see if all the 3 bits are "0" and then pass NONE to
usb controller.
Regards,
Krishna,