summaryrefslogtreecommitdiff
path: root/libusb/os/linux_usbfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'libusb/os/linux_usbfs.c')
-rw-r--r--libusb/os/linux_usbfs.c19
1 files changed, 6 insertions, 13 deletions
diff --git a/libusb/os/linux_usbfs.c b/libusb/os/linux_usbfs.c
index f5fbee1..cfa9402 100644
--- a/libusb/os/linux_usbfs.c
+++ b/libusb/os/linux_usbfs.c
@@ -516,17 +516,6 @@ static int read_sysfs_attr(struct libusb_context *ctx,
return 0;
}
-static int op_get_device_descriptor(struct libusb_device *dev,
- void *buffer, int *host_endian)
-{
- struct linux_device_priv *priv = usbi_get_device_priv(dev);
-
- *host_endian = priv->sysfs_dir != NULL;
- memcpy(buffer, priv->descriptors, LIBUSB_DT_DEVICE_SIZE);
-
- return 0;
-}
-
static int sysfs_scan_device(struct libusb_context *ctx, const char *devname)
{
uint8_t busnum, devaddr;
@@ -899,8 +888,13 @@ static int initialize_device(struct libusb_device *dev, uint8_t busnum,
return LIBUSB_ERROR_IO;
}
- if (sysfs_dir)
+ memcpy(&dev->device_descriptor, priv->descriptors, LIBUSB_DT_DEVICE_SIZE);
+
+ if (sysfs_dir) {
+ /* sysfs descriptors are in bus-endian format */
+ usbi_localize_device_descriptor(&dev->device_descriptor);
return LIBUSB_SUCCESS;
+ }
/* cache active config */
if (wrapped_fd < 0)
@@ -2664,7 +2658,6 @@ const struct usbi_os_backend usbi_backend = {
.init = op_init,
.exit = op_exit,
.hotplug_poll = op_hotplug_poll,
- .get_device_descriptor = op_get_device_descriptor,
.get_active_config_descriptor = op_get_active_config_descriptor,
.get_config_descriptor = op_get_config_descriptor,
.get_config_descriptor_by_value = op_get_config_descriptor_by_value,