X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/hmcfgusb/blobdiff_plain/6c5c2df75ff018417dd6abb38196d998d5fa5b10..f0ed61ccc59824976a1ea45318b926bf75ebbe2d:/flash-hmcfgusb.c diff --git a/flash-hmcfgusb.c b/flash-hmcfgusb.c index 571386f..45d467f 100644 --- a/flash-hmcfgusb.c +++ b/flash-hmcfgusb.c @@ -97,13 +97,11 @@ int main(int argc, char **argv) fprintf(stderr, "\nWaiting for device to reappear...\n"); do { - sleep(2); - } while ((dev = hmcfgusb_init(parse_hmcfgusb, &rdata)) == NULL); - - if (!dev->bootloader) { - fprintf(stderr, "Can't enter bootloader, giving up!\n"); - exit(EXIT_FAILURE); - } + if (dev) { + hmcfgusb_close(dev); + } + sleep(1); + } while (((dev = hmcfgusb_init(parse_hmcfgusb, &rdata)) == NULL) || (!dev->bootloader)); } printf("\nHM-CFG-USB opened.\n\n"); @@ -138,8 +136,10 @@ int main(int argc, char **argv) errno = 0; pfd = hmcfgusb_poll(dev, 1); if ((pfd < 0) && errno) { - perror("\n\nhmcfgusb_poll"); - exit(EXIT_FAILURE); + if (errno != ETIMEDOUT) { + perror("\n\nhmcfgusb_poll"); + exit(EXIT_FAILURE); + } } if (rdata.ack) { break;