Re: Unplugging USB-C charger cable causes `ucsi_acpi USBC000:00: ucsi_handle_connector_change: ACK failed (-110)`

From: Paul Menzel
Date: Tue Nov 21 2023 - 09:26:31 EST


Dear Heikki,


Thank you for your prompt reply.

Am 21.11.23 um 15:08 schrieb Heikki Krogerus:
On Tue, Nov 21, 2023 at 12:50:43PM +0100, Paul Menzel wrote:

On the Dell XPS 13, BIOS 2.21.0 06/02/2022, with Debian sid/unstable and
Linux 6.5.10, when unplugging the (Dell) USB Type-C charger cable, Linux
logs the error below:

ucsi_acpi USBC000:00: ucsi_handle_connector_change: ACK failed (-110)

As this is logged with level error, can this be somehow fixed?

drivers/usb/typec/ucsi/ucsi.c: dev_err(ucsi->dev, "%s: ACK failed (%d)", __func__, ret);

Please find the output of `dmesg` attached.

Thanks. The firmware not reacting to the ACK command is weird, but I'm
not sure if it's critical. Does the interface continue working after
that? Do you see the partner devices appearing under /sys/class/typec/
when you plug them, and disappearing when you unplug them?

```
$ LANG= grep . /sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000\:001/*
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/current_max:0
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/current_now:0
grep: /sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/device: Is a directory
grep: /sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/hwmon7: Is a directory
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/online:0
grep: /sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/power: Is a directory
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/scope:System
grep: /sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/subsystem: Is a directory
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/type:USB
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/uevent:POWER_SUPPLY_NAME=ucsi-source-psy-USBC000:001
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/uevent:POWER_SUPPLY_TYPE=USB
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/uevent:POWER_SUPPLY_USB_TYPE=[C] PD PD_PPS
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/uevent:POWER_SUPPLY_ONLINE=0
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/uevent:POWER_SUPPLY_VOLTAGE_MIN=5000000
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/uevent:POWER_SUPPLY_VOLTAGE_MAX=5000000
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/uevent:POWER_SUPPLY_VOLTAGE_NOW=5000000
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/uevent:POWER_SUPPLY_CURRENT_MAX=0
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/uevent:POWER_SUPPLY_CURRENT_NOW=0
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/uevent:POWER_SUPPLY_SCOPE=System
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/usb_type:[C] PD PD_PPS
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/voltage_max:5000000
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/voltage_min:5000000
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/voltage_now:5000000
grep: /sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/wakeup49: Is a directory
```

Now I unplugged the device, and the error is *not* logged. (I had a USB Type-C port replicator plugged in during the day before.)

The directory is still there:

```
$ LANG= grep . /sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000\:001/*
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/current_max:0
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/current_now:0
grep: /sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/device: Is a directory
grep: /sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/hwmon7: Is a directory
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/online:0
grep: /sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/power: Is a directory
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/scope:System
grep: /sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/subsystem: Is a directory
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/type:USB
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/uevent:POWER_SUPPLY_NAME=ucsi-source-psy-USBC000:001
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/uevent:POWER_SUPPLY_TYPE=USB
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/uevent:POWER_SUPPLY_USB_TYPE=[C] PD PD_PPS
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/uevent:POWER_SUPPLY_ONLINE=0
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/uevent:POWER_SUPPLY_VOLTAGE_MIN=5000000
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/uevent:POWER_SUPPLY_VOLTAGE_MAX=5000000
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/uevent:POWER_SUPPLY_VOLTAGE_NOW=5000000
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/uevent:POWER_SUPPLY_CURRENT_MAX=0
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/uevent:POWER_SUPPLY_CURRENT_NOW=0
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/uevent:POWER_SUPPLY_SCOPE=System
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/usb_type:[C] PD PD_PPS
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/voltage_max:5000000
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/voltage_min:5000000
/sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/voltage_now:5000000
grep: /sys/class/typec/port0/device/power_supply/ucsi-source-psy-USBC000:001/wakeup49: Is a directory
```

I guess, that is the wrong directory I look at though?

(I am going to monitor the logs over the next days.)


Kind regards,

Paul
```