+ dev = NULL;
+ for (i = 0; i < device_count; i++) {
+ if ((ret = libusb_get_device_descriptor(devlist[i], &des))) {
+ sr_err("zp: Failed to get device descriptor: %s.",
+ libusb_error_name(ret));
+ continue;
+ }
+ if (libusb_get_bus_number(devlist[i]) == devc->usb->bus
+ && libusb_get_device_address(devlist[i]) == devc->usb->address) {
+ dev = devlist[i];
+ break;
+ }
+ }
+ if (!dev) {
+ sr_err("device on bus %d address %d disappeared!",
+ devc->usb->bus, devc->usb->address);
+ return SR_ERR;
+ }
+
+ if (!(ret = libusb_open(dev, &(devc->usb->devhdl)))) {
+ sdi->status = SR_ST_ACTIVE;
+ sr_info("zp: opened device %d on %d.%d interface %d",
+ sdi->index, devc->usb->bus,
+ devc->usb->address, USB_INTERFACE);
+ } else {
+ sr_err("zp: failed to open device: %s", libusb_error_name(ret));
+ return SR_ERR;
+ }
+
+ ret = libusb_set_configuration(devc->usb->devhdl, USB_CONFIGURATION);
+ if (ret < 0) {
+ sr_err("zp: Unable to set USB configuration %d: %s",
+ USB_CONFIGURATION, libusb_error_name(ret));
+ return SR_ERR;
+ }
+
+ ret = libusb_claim_interface(devc->usb->devhdl, USB_INTERFACE);
+ if (ret != 0) {
+ sr_err("zp: Unable to claim interface: %s",
+ libusb_error_name(ret));
+ return SR_ERR;
+ }
+
+ /* Set default configuration after power on */
+ if (analyzer_read_status(devc->usb->devhdl) == 0)
+ analyzer_configure(devc->usb->devhdl);
+
+ analyzer_reset(devc->usb->devhdl);
+ analyzer_initialize(devc->usb->devhdl);
+
+ //analyzer_set_memory_size(MEMORY_SIZE_512K);