Re: [PATCH] usb: typec: ucsi: Skip CAM query when partner has no alt modes

From: Andrei Kuchynski

Date: Mon Sep 28 2026 - 04:48:55 EST


On Sun, Sep 27, 2026 at 2:17 AM Gris Ge <cnfourt@xxxxxxxxx> wrote:
>
> Since Thunderbolt alternate mode support was added,
> `ucsi_altmode_update_active()` is called on every Connector Partner
> Changed event. This made the driver send `UCSI_GET_CURRENT_CAM` to
> PPMs even when the partner had no alternate modes registered. Firmware
> that does not support the optional alternate mode details answered Not
> Supported, which produced a spurious error on every partner change:
>
> ```
> ucsi_acpi USBC000:00: GET_CURRENT_CAM command failed
> ```
>
> Fixed by skipping the command when there is nothing to update.
>
> Fixes: da87d45b1951 ("usb: typec: ucsi: Add Thunderbolt alternate mode support")
> Cc: stable@xxxxxxxxxxxxxxx # v7.0+
> Assisted-by: Codex:deepseek-v4.1-flash
> Signed-off-by: Gris Ge <cnfourt@xxxxxxxxx>
> ---
> drivers/usb/typec/ucsi/ucsi.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c
> index bef3f9b71d71..71b28e4df470 100644
> --- a/drivers/usb/typec/ucsi/ucsi.c
> +++ b/drivers/usb/typec/ucsi/ucsi.c
> @@ -360,6 +360,15 @@ void ucsi_altmode_update_active(struct ucsi_connector *con)
> u8 cur;
> int i;
>
> + /*
> + * Alternate mode support is optional, and the PPM is not required to
> + * support GET_CURRENT_CAM when it does not support alternate modes.
> + * There is also nothing to update when the partner has not registered
> + * any alternate modes, so don't send the command in that case.
> + */
> + if (!con->partner_altmode[0])

Should we move this validation into ucsi_handle_connector_change?

if (con->partner_altmode[0])
ucsi_altmode_update_active(con);

All other call sites are already guarded by this condition.
Besides, I don't think we need that comment above.

Thanks,
Andrei