darwin: fix topology
authorNathan Hjelm <hjelmn@me.com>
Wed, 15 May 2013 01:25:55 +0000 (19:25 -0600)
committerHans de Goede <hdegoede@redhat.com>
Thu, 16 May 2013 08:55:59 +0000 (10:55 +0200)
The parent device should always already be in the context when a
device is processed. Use the parent device's location to find the
parent dev.

Note: we might want to replicate the notion of a locationID in the
core. If done right the parent dev could be determined in the core.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
libusb/os/darwin_usb.c
libusb/version_nano.h

index f03593d..07d8c5a 100644 (file)
@@ -767,21 +767,8 @@ static int process_new_device (struct libusb_context *ctx, usb_device_t **device
     if (ret < 0)
       break;
 
-    /* the device iterator provides devices in increasing order of location. given this property
-     * we can use the last device to find the parent. */
-/* TODO: FIX TOPOLOGY!
-    for (parent = *last_dev ; parent ; parent = parent->parent_dev) {
-      struct darwin_device_priv *parent_priv = (struct darwin_device_priv *) parent->os_priv;
-
-      if (parent_priv->location == parent_location) {
-        break;
-      }
-    }
-
-    dev->parent_dev = parent;
-
+    dev->parent_dev     = usbi_get_device_by_session_id (ctx, parent_location);
     dev->port_number    = port;
-*/
     dev->bus_number     = locationID >> 24;
     dev->device_address = address;
 
index dbc62bf..3430774 100644 (file)
@@ -1 +1 @@
-#define LIBUSB_NANO 10671
+#define LIBUSB_NANO 10672