]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
usb: typec: ucsi: fix probe failure in gaokun_ucsi_probe()
authorDuoming Zhou <duoming@zju.edu.cn>
Tue, 25 Nov 2025 10:36:26 +0000 (18:36 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 26 Nov 2025 11:59:21 +0000 (12:59 +0100)
The gaokun_ucsi_probe() uses ucsi_create() to allocate a UCSI instance.
The ucsi_create() validates whether ops->poll_cci is defined, and if not,
it directly returns -EINVAL. However, the gaokun_ucsi_ops structure does
not define the poll_cci, causing ucsi_create() always fail with -EINVAL.
This issue can be observed in the kernel log with the following error:

ucsi_huawei_gaokun.ucsi huawei_gaokun_ec.ucsi.0: probe with driver
ucsi_huawei_gaokun.ucsi failed with error -22

Fix the issue by adding the missing poll_cci callback to gaokun_ucsi_ops.

Fixes: 00327d7f2c8c ("usb: typec: ucsi: add Huawei Matebook E Go ucsi driver")
Cc: stable <stable@kernel.org>
Signed-off-by: Duoming Zhou <duoming@zju.edu.cn>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Reviewed-by: Pengyu Luo <mitltlatltl@gmail.com>
Link: https://patch.msgid.link/4d077d6439d728be68646bb8c8678436a3a0885e.1764065838.git.duoming@zju.edu.cn
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/ucsi/ucsi_huawei_gaokun.c

index 7b5222081bbb54c5637ce165391ac78136d33cec..8401ab414bd927e268f4f1e70aeada6da10891a1 100644 (file)
@@ -196,6 +196,7 @@ static void gaokun_ucsi_connector_status(struct ucsi_connector *con)
 const struct ucsi_operations gaokun_ucsi_ops = {
        .read_version = gaokun_ucsi_read_version,
        .read_cci = gaokun_ucsi_read_cci,
+       .poll_cci = gaokun_ucsi_read_cci,
        .read_message_in = gaokun_ucsi_read_message_in,
        .sync_control = ucsi_sync_control_common,
        .async_control = gaokun_ucsi_async_control,