Re: [PATCH] usb: typec: ucsi: Fix a missing bits to bytes conversion in ucsi_init()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 24-11-11 12:02:20, Heikki Krogerus wrote:
> 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@xxxxxxxxxx>
> Closes: https://lore.kernel.org/linux-usb/Zy864W7sysWZbCTd@xxxxxxxxxx/
> Signed-off-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx>

Reviewed-by: Abel Vesa <abel.vesa@xxxxxxxxxx>
Tested-by: Abel Vesa <abel.vesa@xxxxxxxxxx>

> ---
>  drivers/usb/typec/ucsi/ucsi.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c
> index 974a441155e1..c435c0835744 100644
> --- a/drivers/usb/typec/ucsi/ucsi.c
> +++ b/drivers/usb/typec/ucsi/ucsi.c
> @@ -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;
>  
> -- 
> 2.45.2
> 




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux