diff options
author | Pali Rohár <pali.rohar@gmail.com> | 2016-12-06 22:39:44 +0100 |
---|---|---|
committer | Pali Rohár <pali.rohar@gmail.com> | 2016-12-06 22:39:44 +0100 |
commit | 676da477510cb1966a74273f89c8aa64654a1d49 (patch) | |
tree | 6b494e6129e9908f5e7ad33290f92f257560dd2d /src/disk.c | |
parent | ea7f2a441a68bc4496733a2fcabc6bf8d2962d04 (diff) | |
download | 0xFFFF-676da477510cb1966a74273f89c8aa64654a1d49.tar.bz2 |
all: Revert libusb-1.0 support
Listing of usb devices with libusb-1.0 is too slow and not usable for
flashing or cold-flashing Nokia N900.
Old libusb (0.1) does not have this problem and works perfectly.
Problem for libusb-1.0 was reported at least two times into libusb-devel
mailing list, but upstream developers are totally ignore it. One message is
in archive: https://sourceforge.net/p/libusb/mailman/message/34985373/
Because of that there is just one option: use tested and working libusb 0.1
library instead some experimental and non-working libusb-1.0.
Diffstat (limited to 'src/disk.c')
-rw-r--r-- | src/disk.c | 14 |
1 files changed, 4 insertions, 10 deletions
@@ -281,20 +281,14 @@ int disk_init(struct usb_device_info * dev) { unsigned int devnum; unsigned int busnum; - uint8_t usbdevnum; - uint8_t usbbusnum; + struct usb_device * device; - struct libusb_device * device; - - device = libusb_get_device(dev->udev); - if ( ! device ) { + device = usb_device(dev->udev); + if ( ! device || ! device->bus ) { ERROR_INFO("Cannot read usb devnum and busnum"); return -1; } - usbbusnum = libusb_get_bus_number(device); - usbdevnum = libusb_get_device_address(device); - dir = opendir("/sys/dev/block/"); if ( ! dir ) { ERROR_INFO("Cannot open '/sys/dev/block/' directory"); @@ -334,7 +328,7 @@ int disk_init(struct usb_device_info * dev) { fclose(f); - if ( devnum != usbdevnum || usbbusnum != busnum ) + if ( devnum != device->devnum || device->bus->location != busnum ) continue; if ( sscanf(dirent->d_name, "%d:%d", &maj2, &min2) != 2 ) { |