+ // If some devices needed reset
+ if(cnt_runtime > 0){
+ iters = 0;
+ // Wait until all devices re-enumerate, or timeout occurs
+ while((cnt_after < cnt_bootrom + cnt_runtime) && (iters < ITERATIONS)){
+ usleep(SLEEP_MS*1000);
+ cnt_after = 0;
+ if ((rc = libusb_get_device_list(NULL, &devs)) < 0)
+ return;
+ i = 0;
+ while ((dev = devs[i++]) != NULL) {
+ if ((rc = libusb_get_device_descriptor(dev, &desc)) < 0)
+ continue;
+ if (desc.idVendor == DEFAULT_VID &&
+ desc.idProduct == DEFAULT_PID)
+ cnt_after++;
+ }
+ iters++;
+ }
+ }