diff --git a/host/libraries/libbladeRF/src/backend/usb/cyapi.c b/host/libraries/libbladeRF/src/backend/usb/cyapi.c index 11e818de8..f5ef4cfb1 100644 --- a/host/libraries/libbladeRF/src/backend/usb/cyapi.c +++ b/host/libraries/libbladeRF/src/backend/usb/cyapi.c @@ -87,6 +87,7 @@ static inline struct stream_data * get_stream_data(struct bladerf_stream *s) return (struct stream_data *) s->backend_data; } + static int open_device(CCyUSBDevice *dev, int instance, HANDLE *mutex) { int status = 0; @@ -154,18 +155,18 @@ static bool device_matches_target(CCyUSBDevice *dev, static int cyapi_probe(backend_probe_target probe_target, struct bladerf_devinfo_list *info_list) { - int status = 0; CCyUSBDevice *dev = new CCyUSBDevice(NULL, driver_guid); if (dev == NULL) { return BLADERF_ERR_MEM; } - for (int i = 0; i < dev->DeviceCount() && status == 0; i++) { + for (int i = 0; i < dev->DeviceCount(); i++) { struct bladerf_devinfo info; - HANDLE mutex; + bool opened; + int status; - status = open_device(dev, i, &mutex); - if (status == 0) { + opened = dev->Open(i); + if (opened) { if (device_matches_target(dev, probe_target)) { const size_t max_serial = sizeof(info.serial) - 1; info.instance = i; @@ -175,7 +176,7 @@ static int cyapi_probe(backend_probe_target probe_target, info.usb_bus = 0; /* CyAPI doesn't provide this */ info.backend = BLADERF_BACKEND_CYPRESS; status = bladerf_devinfo_list_add(info_list, &info); - if (status) { + if (status != 0) { log_error("Could not add device to list: %s\n", bladerf_strerror(status)); } else { @@ -185,12 +186,11 @@ static int cyapi_probe(backend_probe_target probe_target, } dev->Close(); - CloseHandle(mutex); } } delete dev; - return status; + return 0; }