]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
usb: typec: ucsi: Fix a missing bits to bytes conversion in ucsi_init()
authorHeikki Krogerus <heikki.krogerus@linux.intel.com>
Mon, 11 Nov 2024 10:02:20 +0000 (12:02 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 12 Nov 2024 11:14:47 +0000 (12:14 +0100)
The GET_CAPABILITY size is wrong. The definitions for the
command sizes are for bitfieds and therefore in bits, not
bytes.

This fixes an issue that prevents the interface from being
registered with UCSI versions older than 2.0 because the
command size exceeds the MESSAGE_IN field size.

Fixes: 226ff2e681d0 ("usb: typec: ucsi: Convert connector specific commands to bitmaps")
Reported-by: Abel Vesa <abel.vesa@linaro.org>
Closes: https://lore.kernel.org/linux-usb/Zy864W7sysWZbCTd@linaro.org/
Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Reviewed-by: Abel Vesa <abel.vesa@linaro.org>
Tested-by: Abel Vesa <abel.vesa@linaro.org>
Link: https://lore.kernel.org/r/20241111100220.1743872-1-heikki.krogerus@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/ucsi/ucsi.c

index 974a441155e1881a4cade70cbd5ea569d31822fc..c435c0835744ad71cffe6d99630c1eeb1176d072 100644 (file)
@@ -1775,7 +1775,8 @@ static int ucsi_init(struct ucsi *ucsi)
 
        /* Get PPM capabilities */
        command = UCSI_GET_CAPABILITY;
-       ret = ucsi_send_command(ucsi, command, &ucsi->cap, UCSI_GET_CAPABILITY_SIZE);
+       ret = ucsi_send_command(ucsi, command, &ucsi->cap,
+                               BITS_TO_BYTES(UCSI_GET_CAPABILITY_SIZE));
        if (ret < 0)
                goto err_reset;