From 59e0241a408e17dca6f62cba0d1c474c4179b226 Mon Sep 17 00:00:00 2001 From: Joerg Wunsch Date: Fri, 16 Sep 2005 15:01:52 +0000 Subject: [PATCH] * usb_libusb.c (usbdev_drain): actually implement draining to aid synchronizing against a JTAG ICE in weird state. git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@497 81a1dc3b-b13d-400b-aceb-764788c761c2 --- avrdude/ChangeLog | 5 +++++ avrdude/usb_libusb.c | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/avrdude/ChangeLog b/avrdude/ChangeLog index d9a3e243..f357537c 100644 --- a/avrdude/ChangeLog +++ b/avrdude/ChangeLog @@ -1,3 +1,8 @@ +2005-09-16 Joerg Wunsch + + * usb_libusb.c (usbdev_drain): actually implement draining to aid + synchronizing against a JTAG ICE in weird state. + 2005-09-16 Joerg Wunsch * butterfly.c: improve the butterfly initialization so it is more likely diff --git a/avrdude/usb_libusb.c b/avrdude/usb_libusb.c index e801e727..8ffb1ef4 100644 --- a/avrdude/usb_libusb.c +++ b/avrdude/usb_libusb.c @@ -259,6 +259,16 @@ static int usbdev_recv(int fd, unsigned char *buf, size_t nbytes) static int usbdev_drain(int fd, int display) { + usb_dev_handle *udev = (usb_dev_handle *)fd; + int rv; + + do { + rv = usb_bulk_read(udev, JTAGICE_BULK_EP, usbbuf, JTAGICE_MAX_XFER, 100); + if (rv > 0 && verbose >= 4) + fprintf(stderr, "%s: usbdev_drain(): flushed %d characters\n", + progname, rv); + } while (rv > 0); + return 0; }