]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/fx2lafw/protocol.c
arachnid-labs-re-load-pro: Add initial driver.
[libsigrok.git] / src / hardware / fx2lafw / protocol.c
index b1c20a7159b2f3794dc29047c49b041bb325ca5c..12fc9e2c061166405b494ad813c6c704d146d1fe 100644 (file)
@@ -18,6 +18,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include <glib.h>
 #include <glib/gstdio.h>
 #include "protocol.h"
@@ -156,8 +157,7 @@ SR_PRIV gboolean match_manuf_prod(libusb_device *dev, const char *manufacturer,
        ret = FALSE;
        while (!ret) {
                /* Assume the FW has not been loaded, unless proven wrong. */
-               if (libusb_get_device_descriptor(dev, &des) != 0)
-                       break;
+               libusb_get_device_descriptor(dev, &des);
 
                if (libusb_open(dev, &hdl) != 0)
                        break;
@@ -194,7 +194,7 @@ SR_PRIV int fx2lafw_dev_open(struct sr_dev_inst *sdi, struct sr_dev_driver *di)
        uint8_t revid;
        char connection_id[64];
 
-       drvc = di->priv;
+       drvc = di->context;
        devc = sdi->priv;
        usb = sdi->conn;
 
@@ -210,11 +210,7 @@ SR_PRIV int fx2lafw_dev_open(struct sr_dev_inst *sdi, struct sr_dev_driver *di)
        }
 
        for (i = 0; i < device_count; i++) {
-               if ((ret = libusb_get_device_descriptor(devlist[i], &des))) {
-                       sr_err("Failed to get device descriptor: %s.",
-                              libusb_error_name(ret));
-                       continue;
-               }
+               libusb_get_device_descriptor(devlist[i], &des);
 
                if (des.idVendor != devc->profile->vid
                    || des.idProduct != devc->profile->pid)
@@ -245,8 +241,8 @@ SR_PRIV int fx2lafw_dev_open(struct sr_dev_inst *sdi, struct sr_dev_driver *di)
                }
 
                if (libusb_has_capability(LIBUSB_CAP_SUPPORTS_DETACH_KERNEL_DRIVER)) {
-                       if (libusb_kernel_driver_active(usb->devhdl, 0) == 1) {
-                               if ((ret = libusb_detach_kernel_driver(usb->devhdl, 0)) < 0) {
+                       if (libusb_kernel_driver_active(usb->devhdl, USB_INTERFACE) == 1) {
+                               if ((ret = libusb_detach_kernel_driver(usb->devhdl, USB_INTERFACE)) < 0) {
                                        sr_err("Failed to detach kernel driver: %s.",
                                                libusb_error_name(ret));
                                        return SR_ERR;