]> sigrok.org Git - libsigrok.git/commitdiff
sr: zeroplus: Remove unused gl_open()/gl_close().
authorUwe Hermann <redacted>
Thu, 2 Feb 2012 20:08:33 +0000 (21:08 +0100)
committerUwe Hermann <redacted>
Thu, 2 Feb 2012 20:46:10 +0000 (21:46 +0100)
Merge the missing function calls into zeroplus.c's init functions.

hardware/zeroplus-logic-cube/gl_usb.c
hardware/zeroplus-logic-cube/gl_usb.h
hardware/zeroplus-logic-cube/zeroplus.c

index 7353f65db0bc252ec4cab0aa1d88808b8ce44208..613028ed9391cf099c5e7a1e34ab0483cd7a756a 100644 (file)
@@ -140,69 +140,3 @@ int gl_reg_read(libusb_device_handle *devh, unsigned int reg)
        ret = gl_read_data(devh);
        return ret;
 }
-
-int gl_open(int vid)
-{
-       int ret;
-       struct libusb_device **devs;
-       struct libusb_device *dev;
-       size_t i = 0;
-       struct libusb_device_descriptor desc;
-
-       ret = libusb_init(NULL);
-       if (ret < 0)
-               return GL_ELIBUSB;
-
-       if (libusb_get_device_list(NULL, &devs) < 0) {
-               ret = GL_EOPEN;
-               goto gl_open_error;
-       }
-
-       while ((dev = devs[i++]) != NULL) {
-               if (libusb_get_device_descriptor(dev, &desc) < 0)
-                       break;
-
-               if (desc.idVendor == vid) {
-                       if (libusb_open(dev, &g_devh) < 0)
-                               g_devh = NULL;
-                       break;
-               }
-       }
-
-       libusb_free_device_list(devs, 1);
-
-       if (!g_devh) {
-               ret = GL_EOPEN;
-               goto gl_open_error;
-       }
-
-       ret = libusb_set_configuration(g_devh, 1);
-       if (ret < 0) {
-               ret = GL_ESETCONFIG;
-               goto gl_open_error;
-       }
-
-       ret = libusb_claim_interface(g_devh, 0);
-       if (ret < 0) {
-               ret = GL_ECLAIM;
-               goto gl_open_error;
-       }
-
-       return GL_OK;
-
-gl_open_error:
-       gl_close();
-       return ret;
-}
-
-int gl_close(void)
-{
-       if (g_devh) {
-               libusb_release_interface(g_devh, 0);
-               libusb_reset_device(g_devh);
-               libusb_close(g_devh);
-       }
-       libusb_exit(NULL);
-
-       return 0;
-}
index 921dae8e78588a1274384b819e0e1b5eaade850e..2bc1d93863ff7cb40519257b530250ac1b258cbe 100644 (file)
@@ -47,7 +47,5 @@ int gl_read_bulk(libusb_device_handle *devh, void *buffer, unsigned int size);
 int gl_reg_write(libusb_device_handle *devh, unsigned int reg,
                 unsigned int val);
 int gl_reg_read(libusb_device_handle *devh, unsigned int reg);
-int gl_open(int vid);
-int gl_close(void);
 
 #endif
index 1632c877d7cea18f6d85052f4a02588bfe246efe..cd50c45d063d62479508765a2b964d97f6a92ecd 100644 (file)
@@ -283,8 +283,10 @@ static void close_device(struct sr_device_instance *sdi)
        sr_info("closing device %d on %d.%d interface %d", sdi->index,
                zp->usb->bus, zp->usb->address, USB_INTERFACE);
        libusb_release_interface(zp->usb->devhdl, USB_INTERFACE);
+       libusb_reset_device(zp->usb->devhdl);
        libusb_close(zp->usb->devhdl);
        zp->usb->devhdl = NULL;
+       /* TODO: Call libusb_exit() here or only in hw_cleanup()? */
        sdi->status = SR_ST_INACTIVE;
 }
 
@@ -367,7 +369,7 @@ static int hw_init(const char *deviceinfo)
 
        /* Find all ZeroPlus analyzers and add them to device list. */
        devcnt = 0;
-       libusb_get_device_list(usb_context, &devlist);
+       libusb_get_device_list(usb_context, &devlist); /* TODO: Errors. */
 
        for (i = 0; devlist[i]; i++) {
                err = libusb_get_device_descriptor(devlist[i], &des);
@@ -425,11 +427,19 @@ static int hw_opendev(int device_index)
                return SR_ERR_ARG;
        }
 
+       err = libusb_set_configuration(zp->usb->devhdl, USB_CONFIGURATION);
+       if (err < 0) {
+               sr_warn("zp: Unable to set USB configuration %d: %d",
+                       USB_CONFIGURATION, err);
+               return SR_ERR;
+       }
+
        err = libusb_claim_interface(zp->usb->devhdl, USB_INTERFACE);
        if (err != 0) {
                sr_warn("Unable to claim interface: %d", err);
                return SR_ERR;
        }
+
        analyzer_reset(zp->usb->devhdl);
        analyzer_initialize(zp->usb->devhdl);