Hi Stefan, On Thu, Jul 2, 2020 at 4:47 PM Stefan Roese <[email protected]> wrote: > > These values are already swapped to CPU endianess, so swapping them
Can you please add more details as to when these values are swapped? I assume this is inside usb_select_config() which is called before this function is called? But I wonder how this code ever worked on ARM/x86? > again is a bug. Let's remove the swap here instead. > > Signed-off-by: Stefan Roese <[email protected]> > Cc: Bin Meng <[email protected]> > Cc: Marek Vasut <[email protected]> > --- > > drivers/usb/host/usb-uclass.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/usb/host/usb-uclass.c b/drivers/usb/host/usb-uclass.c > index cb79dfbbd5..aa08d4ffc6 100644 > --- a/drivers/usb/host/usb-uclass.c > +++ b/drivers/usb/host/usb-uclass.c > @@ -416,21 +416,21 @@ static int usb_match_device(const struct > usb_device_descriptor *desc, > const struct usb_device_id *id) > { > if ((id->match_flags & USB_DEVICE_ID_MATCH_VENDOR) && > - id->idVendor != le16_to_cpu(desc->idVendor)) > + id->idVendor != desc->idVendor) > return 0; > > if ((id->match_flags & USB_DEVICE_ID_MATCH_PRODUCT) && > - id->idProduct != le16_to_cpu(desc->idProduct)) > + id->idProduct != desc->idProduct) > return 0; > > /* No need to test id->bcdDevice_lo != 0, since 0 is never > greater than any unsigned number. */ > if ((id->match_flags & USB_DEVICE_ID_MATCH_DEV_LO) && > - (id->bcdDevice_lo > le16_to_cpu(desc->bcdDevice))) > + (id->bcdDevice_lo > desc->bcdDevice)) > return 0; > > if ((id->match_flags & USB_DEVICE_ID_MATCH_DEV_HI) && > - (id->bcdDevice_hi < le16_to_cpu(desc->bcdDevice))) > + (id->bcdDevice_hi < desc->bcdDevice)) > return 0; > > if ((id->match_flags & USB_DEVICE_ID_MATCH_DEV_CLASS) && Reviewed-by: Bin Meng <[email protected]> Regards, Bin

