* [PATCH v3 1/3] usb: typec: ucsi: Detect and skip duplicate altmodes from buggy firmware
@ 2025-12-24 7:00 Chia-Lin Kao (AceLan)
2025-12-24 7:00 ` [PATCH v3 2/3] usb: typec: ucsi: Add duplicate detection to nvidia registration path Chia-Lin Kao (AceLan)
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Chia-Lin Kao (AceLan) @ 2025-12-24 7:00 UTC (permalink / raw)
To: Heikki Krogerus, Greg Kroah-Hartman, Dmitry Baryshkov,
Pooja Katiyar, Abel Vesa, Andrei Kuchynski, Venkat Jayaraman,
Christian A. Ehrhardt, Pei Xiao, Chia-Lin Kao (AceLan), linux-usb,
linux-kernel
Some firmware implementations incorrectly return the same altmode
multiple times at different offsets when queried via UCSI_GET_ALTERNATE_MODES.
This causes sysfs duplicate filename errors and kernel call traces when
the driver attempts to register the same altmode twice:
sysfs: cannot create duplicate filename '/devices/.../typec/port0/port0.0/partner'
typec-thunderbolt port0-partner.1: failed to create symlinks
typec-thunderbolt port0-partner.1: probe with driver typec-thunderbolt failed with error -17
Detect duplicate altmodes by comparing SVID and VDO before registration.
If a duplicate is detected, skip it and print a single clean warning
message instead of generating a kernel call trace:
ucsi_acpi USBC000:00: con2: Firmware bug: duplicate partner altmode SVID 0x8087 (VDO 0x8087a043 vs 0x00000001) at offset 1, ignoring. Please update your system firmware.
This makes the error handling more user-friendly while still alerting
users to the firmware bug.
The duplicate detection logic is implemented in a reusable helper
function ucsi_altmode_is_duplicate() and used in ucsi_register_altmodes().
The fix applies to all three recipient types: partner (SOP), port (CON),
and plug (SOP_P) altmodes.
Fixes: a79f16efcd00 ("usb: typec: ucsi: Add support for the partner USB Modes")
Cc: stable@vger.kernel.org
Signed-off-by: Chia-Lin Kao (AceLan) <acelan.kao@canonical.com>
---
v3. 1. move ucsi_altmode_is_duplicate() before ucsi_register_altmodes_nvidia()
for later modification on ucsi_register_altmodes_nvidia()
2. use struct typec_altmode **altmodes to simplify the logic
---
drivers/usb/typec/ucsi/ucsi.c | 76 +++++++++++++++++++++++++++++++++++
1 file changed, 76 insertions(+)
diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c
index 9b3df776137a1..b99c86e9f31cb 100644
--- a/drivers/usb/typec/ucsi/ucsi.c
+++ b/drivers/usb/typec/ucsi/ucsi.c
@@ -501,6 +501,73 @@ static int ucsi_register_altmode(struct ucsi_connector *con,
return ret;
}
+/*
+ * Check if an altmode is a duplicate. Some firmware implementations
+ * incorrectly return the same altmode multiple times, causing sysfs errors.
+ * Returns true if the altmode should be skipped.
+ */
+static bool ucsi_altmode_is_duplicate(struct ucsi_connector *con, u8 recipient,
+ const struct ucsi_altmode *alt_batch, int batch_idx,
+ u16 svid, u32 vdo, int offset)
+{
+ struct typec_altmode **altmodes;
+ const char *recipient_name;
+ int k;
+
+ /* Check for duplicates within the current batch first */
+ for (k = 0; k < batch_idx; k++) {
+ if (alt_batch[k].svid == svid && alt_batch[k].mid == vdo) {
+ dev_warn_once(con->ucsi->dev,
+ "con%d: Firmware bug: duplicate altmode SVID 0x%04x in same response at offset %d, ignoring. Please update your system firmware.\n",
+ con->num, svid, offset);
+ return true;
+ }
+ }
+
+ /* Check for duplicates in already registered altmodes */
+
+ switch (recipient) {
+ case UCSI_RECIPIENT_CON:
+ altmodes = con->port_altmode;
+ recipient_name = "port";
+ break;
+ case UCSI_RECIPIENT_SOP:
+ altmodes = con->partner_altmode;
+ recipient_name = "partner";
+ break;
+ case UCSI_RECIPIENT_SOP_P:
+ altmodes = con->plug_altmode;
+ recipient_name = "plug";
+ break;
+ default:
+ return false;
+ }
+
+ for (k = 0; k < UCSI_MAX_ALTMODES; k++) {
+ if (!altmodes[k])
+ break;
+
+ /* Check SVID for all, VDO only for non-SOP */
+ if (altmodes[k]->svid != svid)
+ continue;
+ if (recipient != UCSI_RECIPIENT_SOP && altmodes[k]->vdo != vdo)
+ continue;
+
+ if (recipient == UCSI_RECIPIENT_SOP) {
+ dev_warn(con->ucsi->dev,
+ "con%d: Firmware bug: duplicate %s altmode SVID 0x%04x (VDO 0x%08x vs 0x%08x) at offset %d, ignoring. Please update your system firmware.\n",
+ con->num, recipient_name, svid, altmodes[k]->vdo, vdo, offset);
+ } else {
+ dev_warn_once(con->ucsi->dev,
+ "con%d: Firmware bug: duplicate %s altmode SVID 0x%04x at offset %d, ignoring. Please update your system firmware.\n",
+ con->num, recipient_name, svid, offset);
+ }
+ return true;
+ }
+
+ return false;
+}
+
static int
ucsi_register_altmodes_nvidia(struct ucsi_connector *con, u8 recipient)
{
@@ -631,6 +698,15 @@ static int ucsi_register_altmodes(struct ucsi_connector *con, u8 recipient)
if (!alt[j].svid)
return 0;
+ /*
+ * Check for duplicates in current batch and already
+ * registered altmodes. Skip if duplicate found.
+ */
+ if (ucsi_altmode_is_duplicate(con, recipient, alt, j,
+ alt[j].svid, alt[j].mid,
+ i - num + j))
+ continue;
+
memset(&desc, 0, sizeof(desc));
desc.vdo = alt[j].mid;
desc.svid = alt[j].svid;
--
2.43.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v3 2/3] usb: typec: ucsi: Add duplicate detection to nvidia registration path
2025-12-24 7:00 [PATCH v3 1/3] usb: typec: ucsi: Detect and skip duplicate altmodes from buggy firmware Chia-Lin Kao (AceLan)
@ 2025-12-24 7:00 ` Chia-Lin Kao (AceLan)
2025-12-24 7:00 ` [PATCH v3 3/3] usb: typec: ucsi: yoga_c630: Remove redundant duplicate altmode handling Chia-Lin Kao (AceLan)
2026-02-11 3:32 ` [PATCH v3 1/3] usb: typec: ucsi: Detect and skip duplicate altmodes from buggy firmware AceLan Kao
2 siblings, 0 replies; 9+ messages in thread
From: Chia-Lin Kao (AceLan) @ 2025-12-24 7:00 UTC (permalink / raw)
To: Heikki Krogerus, Greg Kroah-Hartman, Dmitry Baryshkov,
Pooja Katiyar, Abel Vesa, Andrei Kuchynski, Venkat Jayaraman,
Christian A. Ehrhardt, Pei Xiao, Chia-Lin Kao (AceLan), linux-usb,
linux-kernel
Extend the duplicate altmode detection to ucsi_register_altmodes_nvidia()
which is used when a driver provides the update_altmodes() callback.
This ensures all drivers benefit from duplicate detection, whether they
use the standard registration path or the nvidia path with update_altmodes
callback.
Without this fix, drivers using the nvidia path (like yoga_c630) would
still encounter duplicate altmode registration errors from buggy firmware.
Fixes: a79f16efcd00 ("usb: typec: ucsi: Add support for the partner USB Modes")
Cc: stable@vger.kernel.org
Signed-off-by: Chia-Lin Kao (AceLan) <acelan.kao@canonical.com>
---
drivers/usb/typec/ucsi/ucsi.c | 26 ++++++++++++++++----------
1 file changed, 16 insertions(+), 10 deletions(-)
diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c
index b99c86e9f31cb..e41973bd982aa 100644
--- a/drivers/usb/typec/ucsi/ucsi.c
+++ b/drivers/usb/typec/ucsi/ucsi.c
@@ -625,19 +625,25 @@ ucsi_register_altmodes_nvidia(struct ucsi_connector *con, u8 recipient)
/* now register altmodes */
for (i = 0; i < max_altmodes; i++) {
- memset(&desc, 0, sizeof(desc));
- if (multi_dp) {
- desc.svid = updated[i].svid;
- desc.vdo = updated[i].mid;
- } else {
- desc.svid = orig[i].svid;
- desc.vdo = orig[i].mid;
- }
- desc.roles = TYPEC_PORT_DRD;
+ struct ucsi_altmode *altmode_array = multi_dp ? updated : orig;
- if (!desc.svid)
+ if (!altmode_array[i].svid)
return 0;
+ /*
+ * Check for duplicates in current array and already
+ * registered altmodes. Skip if duplicate found.
+ */
+ if (ucsi_altmode_is_duplicate(con, recipient, altmode_array, i,
+ altmode_array[i].svid,
+ altmode_array[i].mid, i))
+ continue;
+
+ memset(&desc, 0, sizeof(desc));
+ desc.svid = altmode_array[i].svid;
+ desc.vdo = altmode_array[i].mid;
+ desc.roles = TYPEC_PORT_DRD;
+
ret = ucsi_register_altmode(con, &desc, recipient);
if (ret)
return ret;
--
2.43.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v3 3/3] usb: typec: ucsi: yoga_c630: Remove redundant duplicate altmode handling
2025-12-24 7:00 [PATCH v3 1/3] usb: typec: ucsi: Detect and skip duplicate altmodes from buggy firmware Chia-Lin Kao (AceLan)
2025-12-24 7:00 ` [PATCH v3 2/3] usb: typec: ucsi: Add duplicate detection to nvidia registration path Chia-Lin Kao (AceLan)
@ 2025-12-24 7:00 ` Chia-Lin Kao (AceLan)
2026-02-11 3:32 ` [PATCH v3 1/3] usb: typec: ucsi: Detect and skip duplicate altmodes from buggy firmware AceLan Kao
2 siblings, 0 replies; 9+ messages in thread
From: Chia-Lin Kao (AceLan) @ 2025-12-24 7:00 UTC (permalink / raw)
To: Heikki Krogerus, Greg Kroah-Hartman, Dmitry Baryshkov,
Pooja Katiyar, Abel Vesa, Andrei Kuchynski, Venkat Jayaraman,
Christian A. Ehrhardt, Pei Xiao, Chia-Lin Kao (AceLan), linux-usb,
linux-kernel
This reverts commit e0c48e42d818 ("usb: typec: ucsi: yoga-c630: remove
duplicate AltModes").
The yoga_c630 driver previously implemented its own duplicate altmode
detection in yoga_c630_ucsi_update_altmodes() to work around buggy EC
firmware that returns duplicate AltModes instead of empty ones.
With the introduction of the common ucsi_altmode_is_duplicate() helper
in both the standard and nvidia registration paths, duplicate detection
is now handled automatically in the core UCSI code. This makes the
yoga_c630-specific implementation added in e0c48e42d818 redundant.
Remove yoga_c630_ucsi_update_altmodes() and its callback to eliminate
code duplication and simplify the driver. Note that this causes the
driver to switch back from the nvidia registration path to the standard
path, which is the original behavior before e0c48e42d818. Both paths
now include duplicate detection, ensuring the firmware bug is still
properly handled.
Signed-off-by: Chia-Lin Kao (AceLan) <acelan.kao@canonical.com>
---
drivers/usb/typec/ucsi/ucsi_yoga_c630.c | 23 -----------------------
1 file changed, 23 deletions(-)
diff --git a/drivers/usb/typec/ucsi/ucsi_yoga_c630.c b/drivers/usb/typec/ucsi/ucsi_yoga_c630.c
index 299081444caa9..564c1e660d53c 100644
--- a/drivers/usb/typec/ucsi/ucsi_yoga_c630.c
+++ b/drivers/usb/typec/ucsi/ucsi_yoga_c630.c
@@ -136,28 +136,6 @@ static int yoga_c630_ucsi_sync_control(struct ucsi *ucsi,
return ret;
}
-static bool yoga_c630_ucsi_update_altmodes(struct ucsi *ucsi,
- u8 recipient,
- struct ucsi_altmode *orig,
- struct ucsi_altmode *updated)
-{
- int i;
-
- if (orig[0].svid == 0 || recipient != UCSI_RECIPIENT_SOP)
- return false;
-
- /* EC is nice and repeats altmodes again and again. Ignore copies. */
- for (i = 1; i < UCSI_MAX_ALTMODES; i++) {
- if (orig[i].svid == orig[0].svid) {
- dev_dbg(ucsi->dev, "Found duplicate altmodes, starting from %d\n", i);
- memset(&orig[i], 0, (UCSI_MAX_ALTMODES - i) * sizeof(*orig));
- break;
- }
- }
-
- return false;
-}
-
static void yoga_c630_ucsi_update_connector(struct ucsi_connector *con)
{
if (con->num == 1)
@@ -171,7 +149,6 @@ static const struct ucsi_operations yoga_c630_ucsi_ops = {
.read_message_in = yoga_c630_ucsi_read_message_in,
.sync_control = yoga_c630_ucsi_sync_control,
.async_control = yoga_c630_ucsi_async_control,
- .update_altmodes = yoga_c630_ucsi_update_altmodes,
.update_connector = yoga_c630_ucsi_update_connector,
};
--
2.43.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [PATCH v3 1/3] usb: typec: ucsi: Detect and skip duplicate altmodes from buggy firmware
2025-12-24 7:00 [PATCH v3 1/3] usb: typec: ucsi: Detect and skip duplicate altmodes from buggy firmware Chia-Lin Kao (AceLan)
2025-12-24 7:00 ` [PATCH v3 2/3] usb: typec: ucsi: Add duplicate detection to nvidia registration path Chia-Lin Kao (AceLan)
2025-12-24 7:00 ` [PATCH v3 3/3] usb: typec: ucsi: yoga_c630: Remove redundant duplicate altmode handling Chia-Lin Kao (AceLan)
@ 2026-02-11 3:32 ` AceLan Kao
2026-02-11 5:36 ` Greg Kroah-Hartman
2026-02-11 5:37 ` Greg Kroah-Hartman
2 siblings, 2 replies; 9+ messages in thread
From: AceLan Kao @ 2026-02-11 3:32 UTC (permalink / raw)
To: Heikki Krogerus, Greg Kroah-Hartman, Dmitry Baryshkov,
Pooja Katiyar, Abel Vesa, Andrei Kuchynski, Venkat Jayaraman,
Christian A. Ehrhardt, Pei Xiao, Chia-Lin Kao (AceLan), linux-usb,
linux-kernel
A gentle ping.
Please help to review these patches, thanks.
Chia-Lin Kao (AceLan) <acelan.kao@canonical.com> 於 2025年12月24日週三 下午3:00寫道:
>
> Some firmware implementations incorrectly return the same altmode
> multiple times at different offsets when queried via UCSI_GET_ALTERNATE_MODES.
> This causes sysfs duplicate filename errors and kernel call traces when
> the driver attempts to register the same altmode twice:
>
> sysfs: cannot create duplicate filename '/devices/.../typec/port0/port0.0/partner'
> typec-thunderbolt port0-partner.1: failed to create symlinks
> typec-thunderbolt port0-partner.1: probe with driver typec-thunderbolt failed with error -17
>
> Detect duplicate altmodes by comparing SVID and VDO before registration.
> If a duplicate is detected, skip it and print a single clean warning
> message instead of generating a kernel call trace:
>
> ucsi_acpi USBC000:00: con2: Firmware bug: duplicate partner altmode SVID 0x8087 (VDO 0x8087a043 vs 0x00000001) at offset 1, ignoring. Please update your system firmware.
>
> This makes the error handling more user-friendly while still alerting
> users to the firmware bug.
>
> The duplicate detection logic is implemented in a reusable helper
> function ucsi_altmode_is_duplicate() and used in ucsi_register_altmodes().
> The fix applies to all three recipient types: partner (SOP), port (CON),
> and plug (SOP_P) altmodes.
>
> Fixes: a79f16efcd00 ("usb: typec: ucsi: Add support for the partner USB Modes")
> Cc: stable@vger.kernel.org
> Signed-off-by: Chia-Lin Kao (AceLan) <acelan.kao@canonical.com>
> ---
> v3. 1. move ucsi_altmode_is_duplicate() before ucsi_register_altmodes_nvidia()
> for later modification on ucsi_register_altmodes_nvidia()
> 2. use struct typec_altmode **altmodes to simplify the logic
> ---
> drivers/usb/typec/ucsi/ucsi.c | 76 +++++++++++++++++++++++++++++++++++
> 1 file changed, 76 insertions(+)
>
> diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c
> index 9b3df776137a1..b99c86e9f31cb 100644
> --- a/drivers/usb/typec/ucsi/ucsi.c
> +++ b/drivers/usb/typec/ucsi/ucsi.c
> @@ -501,6 +501,73 @@ static int ucsi_register_altmode(struct ucsi_connector *con,
> return ret;
> }
>
> +/*
> + * Check if an altmode is a duplicate. Some firmware implementations
> + * incorrectly return the same altmode multiple times, causing sysfs errors.
> + * Returns true if the altmode should be skipped.
> + */
> +static bool ucsi_altmode_is_duplicate(struct ucsi_connector *con, u8 recipient,
> + const struct ucsi_altmode *alt_batch, int batch_idx,
> + u16 svid, u32 vdo, int offset)
> +{
> + struct typec_altmode **altmodes;
> + const char *recipient_name;
> + int k;
> +
> + /* Check for duplicates within the current batch first */
> + for (k = 0; k < batch_idx; k++) {
> + if (alt_batch[k].svid == svid && alt_batch[k].mid == vdo) {
> + dev_warn_once(con->ucsi->dev,
> + "con%d: Firmware bug: duplicate altmode SVID 0x%04x in same response at offset %d, ignoring. Please update your system firmware.\n",
> + con->num, svid, offset);
> + return true;
> + }
> + }
> +
> + /* Check for duplicates in already registered altmodes */
> +
> + switch (recipient) {
> + case UCSI_RECIPIENT_CON:
> + altmodes = con->port_altmode;
> + recipient_name = "port";
> + break;
> + case UCSI_RECIPIENT_SOP:
> + altmodes = con->partner_altmode;
> + recipient_name = "partner";
> + break;
> + case UCSI_RECIPIENT_SOP_P:
> + altmodes = con->plug_altmode;
> + recipient_name = "plug";
> + break;
> + default:
> + return false;
> + }
> +
> + for (k = 0; k < UCSI_MAX_ALTMODES; k++) {
> + if (!altmodes[k])
> + break;
> +
> + /* Check SVID for all, VDO only for non-SOP */
> + if (altmodes[k]->svid != svid)
> + continue;
> + if (recipient != UCSI_RECIPIENT_SOP && altmodes[k]->vdo != vdo)
> + continue;
> +
> + if (recipient == UCSI_RECIPIENT_SOP) {
> + dev_warn(con->ucsi->dev,
> + "con%d: Firmware bug: duplicate %s altmode SVID 0x%04x (VDO 0x%08x vs 0x%08x) at offset %d, ignoring. Please update your system firmware.\n",
> + con->num, recipient_name, svid, altmodes[k]->vdo, vdo, offset);
> + } else {
> + dev_warn_once(con->ucsi->dev,
> + "con%d: Firmware bug: duplicate %s altmode SVID 0x%04x at offset %d, ignoring. Please update your system firmware.\n",
> + con->num, recipient_name, svid, offset);
> + }
> + return true;
> + }
> +
> + return false;
> +}
> +
> static int
> ucsi_register_altmodes_nvidia(struct ucsi_connector *con, u8 recipient)
> {
> @@ -631,6 +698,15 @@ static int ucsi_register_altmodes(struct ucsi_connector *con, u8 recipient)
> if (!alt[j].svid)
> return 0;
>
> + /*
> + * Check for duplicates in current batch and already
> + * registered altmodes. Skip if duplicate found.
> + */
> + if (ucsi_altmode_is_duplicate(con, recipient, alt, j,
> + alt[j].svid, alt[j].mid,
> + i - num + j))
> + continue;
> +
> memset(&desc, 0, sizeof(desc));
> desc.vdo = alt[j].mid;
> desc.svid = alt[j].svid;
> --
> 2.43.0
>
--
Chia-Lin Kao(AceLan)
http://blog.acelan.idv.tw/
E-Mail: acelan.kaoATcanonical.com (s/AT/@/)
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: [PATCH v3 1/3] usb: typec: ucsi: Detect and skip duplicate altmodes from buggy firmware
2026-02-11 3:32 ` [PATCH v3 1/3] usb: typec: ucsi: Detect and skip duplicate altmodes from buggy firmware AceLan Kao
@ 2026-02-11 5:36 ` Greg Kroah-Hartman
2026-02-11 8:43 ` Heikki Krogerus
2026-02-11 5:37 ` Greg Kroah-Hartman
1 sibling, 1 reply; 9+ messages in thread
From: Greg Kroah-Hartman @ 2026-02-11 5:36 UTC (permalink / raw)
To: AceLan Kao
Cc: Heikki Krogerus, Dmitry Baryshkov, Pooja Katiyar, Abel Vesa,
Andrei Kuchynski, Venkat Jayaraman, Christian A. Ehrhardt,
Pei Xiao, linux-usb, linux-kernel
On Wed, Feb 11, 2026 at 11:32:37AM +0800, AceLan Kao wrote:
> A gentle ping.
> Please help to review these patches, thanks.
It is the middle of the merge window, nothing can happen until after
-rc1 is out, you know this :(
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 1/3] usb: typec: ucsi: Detect and skip duplicate altmodes from buggy firmware
2026-02-11 5:36 ` Greg Kroah-Hartman
@ 2026-02-11 8:43 ` Heikki Krogerus
0 siblings, 0 replies; 9+ messages in thread
From: Heikki Krogerus @ 2026-02-11 8:43 UTC (permalink / raw)
To: AceLan Kao, Greg Kroah-Hartman
Cc: Dmitry Baryshkov, Pooja Katiyar, Abel Vesa, Andrei Kuchynski,
Venkat Jayaraman, Christian A. Ehrhardt, Pei Xiao, linux-usb,
linux-kernel
Hi,
On Wed, Feb 11, 2026 at 06:36:50AM +0100, Greg Kroah-Hartman wrote:
> On Wed, Feb 11, 2026 at 11:32:37AM +0800, AceLan Kao wrote:
> > A gentle ping.
> > Please help to review these patches, thanks.
I'm sorry, but I don't seem to have this thread (probable because of
our spam filter). This reply from Greg is the first mail I can see.
This is a Dell platform, right? Did anyone contact Dell about this?
thanks,
> It is the middle of the merge window, nothing can happen until after
> -rc1 is out, you know this :(
--
heikki
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 1/3] usb: typec: ucsi: Detect and skip duplicate altmodes from buggy firmware
2026-02-11 3:32 ` [PATCH v3 1/3] usb: typec: ucsi: Detect and skip duplicate altmodes from buggy firmware AceLan Kao
2026-02-11 5:36 ` Greg Kroah-Hartman
@ 2026-02-11 5:37 ` Greg Kroah-Hartman
2026-03-05 14:58 ` Dmitry Baryshkov
1 sibling, 1 reply; 9+ messages in thread
From: Greg Kroah-Hartman @ 2026-02-11 5:37 UTC (permalink / raw)
To: AceLan Kao
Cc: Heikki Krogerus, Dmitry Baryshkov, Pooja Katiyar, Abel Vesa,
Andrei Kuchynski, Venkat Jayaraman, Christian A. Ehrhardt,
Pei Xiao, linux-usb, linux-kernel
On Wed, Feb 11, 2026 at 11:32:37AM +0800, AceLan Kao wrote:
> A gentle ping.
> Please help to review these patches, thanks.
Wait, no, we rejected this series and said "fix the firmware".
What happened to doing that?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 1/3] usb: typec: ucsi: Detect and skip duplicate altmodes from buggy firmware
2026-02-11 5:37 ` Greg Kroah-Hartman
@ 2026-03-05 14:58 ` Dmitry Baryshkov
2026-03-11 13:57 ` Heikki Krogerus
0 siblings, 1 reply; 9+ messages in thread
From: Dmitry Baryshkov @ 2026-03-05 14:58 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: AceLan Kao, Heikki Krogerus, Pooja Katiyar, Abel Vesa,
Andrei Kuchynski, Venkat Jayaraman, Christian A. Ehrhardt,
Pei Xiao, linux-usb, linux-kernel
On Wed, Feb 11, 2026 at 06:37:41AM +0100, Greg Kroah-Hartman wrote:
> On Wed, Feb 11, 2026 at 11:32:37AM +0800, AceLan Kao wrote:
> > A gentle ping.
> > Please help to review these patches, thanks.
>
> Wait, no, we rejected this series and said "fix the firmware".
>
> What happened to doing that?
Having a similar problem with other platforms. It's not always possible
to fix the firmware. I have one platform with a similar issue, but that
laptop is EOLed long ago (Lenovo Yoga C630, the issue has been worked
around in the EC driver, but I'd be really happy to switch to the
generic fixup). At this point it really feels that there might
be more UCSI implemetations having this issue.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 1/3] usb: typec: ucsi: Detect and skip duplicate altmodes from buggy firmware
2026-03-05 14:58 ` Dmitry Baryshkov
@ 2026-03-11 13:57 ` Heikki Krogerus
0 siblings, 0 replies; 9+ messages in thread
From: Heikki Krogerus @ 2026-03-11 13:57 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Greg Kroah-Hartman, AceLan Kao, Pooja Katiyar, Abel Vesa,
Andrei Kuchynski, Venkat Jayaraman, Christian A. Ehrhardt,
Pei Xiao, linux-usb, linux-kernel
Thu, Mar 05, 2026 at 04:58:02PM +0200, Dmitry Baryshkov kirjoitti:
> On Wed, Feb 11, 2026 at 06:37:41AM +0100, Greg Kroah-Hartman wrote:
> > On Wed, Feb 11, 2026 at 11:32:37AM +0800, AceLan Kao wrote:
> > > A gentle ping.
> > > Please help to review these patches, thanks.
> >
> > Wait, no, we rejected this series and said "fix the firmware".
> >
> > What happened to doing that?
>
> Having a similar problem with other platforms. It's not always possible
> to fix the firmware. I have one platform with a similar issue, but that
> laptop is EOLed long ago (Lenovo Yoga C630, the issue has been worked
> around in the EC driver, but I'd be really happy to switch to the
> generic fixup). At this point it really feels that there might
> be more UCSI implemetations having this issue.
I would still like to get an answer from Dell for this (if this was
the Dell case). It looks like they are using the GET_ALTMODES_COMMAND
in some custom way. It's almost like they are first returning all the
SVIDs without the modes, followed by something else.
So even if these products are EOL, and we will never get the firmware
fixed, we still need to understand what exactly is being returned to
the command, and is it returned like that intentionally or not.
Br,
--
heikki
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-03-11 13:58 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-24 7:00 [PATCH v3 1/3] usb: typec: ucsi: Detect and skip duplicate altmodes from buggy firmware Chia-Lin Kao (AceLan)
2025-12-24 7:00 ` [PATCH v3 2/3] usb: typec: ucsi: Add duplicate detection to nvidia registration path Chia-Lin Kao (AceLan)
2025-12-24 7:00 ` [PATCH v3 3/3] usb: typec: ucsi: yoga_c630: Remove redundant duplicate altmode handling Chia-Lin Kao (AceLan)
2026-02-11 3:32 ` [PATCH v3 1/3] usb: typec: ucsi: Detect and skip duplicate altmodes from buggy firmware AceLan Kao
2026-02-11 5:36 ` Greg Kroah-Hartman
2026-02-11 8:43 ` Heikki Krogerus
2026-02-11 5:37 ` Greg Kroah-Hartman
2026-03-05 14:58 ` Dmitry Baryshkov
2026-03-11 13:57 ` Heikki Krogerus
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox