- make openpcd driver work with most recent openpcd dumbreader firmware
authorHarald Welte <laforge@gnumonks.org>
Wed, 4 Oct 2006 10:23:54 +0000 (10:23 +0000)
committerHarald Welte <laforge@gnumonks.org>
Wed, 4 Oct 2006 10:23:54 +0000 (10:23 +0000)
- make openpcd driver work if it is called after some other usb driver
  was initialized

git-svn-id: https://svn.gnumonks.org/trunk/librfid@1893 e0336214-984f-0b4b-a45f-81c69e1f0ede

src/rfid_reader_openpcd.c

index b964165..51852f0 100644 (file)
@@ -116,12 +116,13 @@ static struct usb_device *find_opcd_device(void)
                struct usb_device *dev;
                for (dev = bus->devices; dev; dev = dev->next) {
                        int i;
+                       printf("usb: %4x:%4x\n", dev->descriptor.idVendor,
+                               dev->descriptor.idProduct);
                        for (i = 0; i < ARRAY_SIZE(opcd_usb_ids); i++) {
                                const struct usb_id *id = &opcd_usb_ids[i];
+                               printf("%x:%x\n", id->vid, id->pid);
                                if (dev->descriptor.idVendor == id->vid &&
-                                   dev->descriptor.idProduct == id->pid &&
-                                   dev->descriptor.bNumConfigurations == 1 &&
-                                   dev->config->iConfiguration == 0)
+                                   dev->descriptor.idProduct == id->pid)
                                        return dev;
                        }
                }
@@ -321,9 +322,9 @@ openpcd_open(void *data)
        rcv_hdr = (struct openpcd_hdr *)rcv_buf;
 
        usb_init();
-       if (!usb_find_busses())
+       if (usb_find_busses() < 0)
                return NULL;
-       if (!usb_find_devices())
+       if (usb_find_devices() < 0) 
                return NULL;
        
        dev = find_opcd_device();