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 >