summaryrefslogtreecommitdiffstats
path: root/src/disk.c
diff options
context:
space:
mode:
authorPali Rohár <pali.rohar@gmail.com>2016-12-06 22:39:44 +0100
committerPali Rohár <pali.rohar@gmail.com>2016-12-06 22:39:44 +0100
commit676da477510cb1966a74273f89c8aa64654a1d49 (patch)
tree6b494e6129e9908f5e7ad33290f92f257560dd2d /src/disk.c
parentea7f2a441a68bc4496733a2fcabc6bf8d2962d04 (diff)
download0xFFFF-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.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/disk.c b/src/disk.c
index 4a34068..b8e9f51 100644
--- a/src/disk.c
+++ b/src/disk.c
@@ -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 ) {