summaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorAntony Pavlov <antonynpavlov@gmail.com>2015-10-02 10:23:30 +0300
committerSascha Hauer <s.hauer@pengutronix.de>2015-10-02 10:06:47 +0200
commitd0a5ea479e6d3d89ea3ce0586de7eb51c9c39131 (patch)
tree2059aeac672decc73e4742b4c3ceb3c2cf667d22 /drivers/usb
parentb0ae09acdacd212e681a3b6b670563d911a89153 (diff)
downloadbarebox-d0a5ea479e6d3d89ea3ce0586de7eb51c9c39131.tar.gz
barebox-d0a5ea479e6d3d89ea3ce0586de7eb51c9c39131.tar.xz
usb: core: drop unnecessary le16_to_cpu() conversion
In drivers/usb/core/usb.c we already have le16_to_cpus() conversion just after usb_get_descriptor(): 390 /* correct le values */ 391 le16_to_cpus(&dev->descriptor->bcdUSB); 392 le16_to_cpus(&dev->descriptor->idVendor); 393 le16_to_cpus(&dev->descriptor->idProduct); 394 le16_to_cpus(&dev->descriptor->bcdDevice); so no additional idVendor/idProduct descriptor fields le16_to_cpu() conversion is needed after that. On the big-endian machines extra le16_to_cpu() conversion leads to wrong idVendor/idProduct USB device parameters values (e.g. see devinfo <usb-device> output), and to a much more serious problem: idVendor/idProduct-based USB device detection does not work. Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/core/usb.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
index f8d6014b30..a3fb1e8808 100644
--- a/drivers/usb/core/usb.c
+++ b/drivers/usb/core/usb.c
@@ -445,9 +445,9 @@ int usb_new_device(struct usb_device *dev)
dev_add_param_fixed(&dev->dev, "Product", dev->prod);
dev_add_param_fixed(&dev->dev, "SerialNumber", dev->serial);
dev_add_param_int_ro(&dev->dev, "idVendor",
- le16_to_cpu(dev->descriptor->idVendor), "%04x");
+ dev->descriptor->idVendor, "%04x");
dev_add_param_int_ro(&dev->dev, "idProduct",
- le16_to_cpu(dev->descriptor->idProduct), "%04x");
+ dev->descriptor->idProduct, "%04x");
list_add_tail(&dev->list, &usb_device_list);
dev_count++;
@@ -938,11 +938,11 @@ int usb_driver_register(struct usb_driver *drv)
static int usb_match_device(struct usb_device *dev, const struct usb_device_id *id)
{
if ((id->match_flags & USB_DEVICE_ID_MATCH_VENDOR) &&
- id->idVendor != le16_to_cpu(dev->descriptor->idVendor))
+ id->idVendor != dev->descriptor->idVendor)
return 0;
if ((id->match_flags & USB_DEVICE_ID_MATCH_PRODUCT) &&
- id->idProduct != le16_to_cpu(dev->descriptor->idProduct))
+ id->idProduct != dev->descriptor->idProduct)
return 0;
return 1;