From 0634e4eb92e9c4749854cccc87a9a891c1340936 Mon Sep 17 00:00:00 2001 From: Joerg Wunsch Date: Wed, 2 Mar 2016 16:45:10 +0000 Subject: [PATCH] Support packet fragmentation and reassembly in hid_thread(), for mEDBG devices. git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1385 81a1dc3b-b13d-400b-aceb-764788c761c2 --- jtag3.c | 30 +++--------------------------- 1 file changed, 3 insertions(+), 27 deletions(-) diff --git a/jtag3.c b/jtag3.c index 3084c320..8349913b 100644 --- a/jtag3.c +++ b/jtag3.c @@ -1315,7 +1315,7 @@ int jtag3_open_common(PROGRAMMER * pgm, char * port) int rv = -1; #if !defined(HAVE_LIBUSB) && !defined(HAVE_LIBHIDAPI) - avrdude_message(MSG_INFO, "avrdude was compiled without USB or HIDAPI support.\n"); + avrdude_message(MSG_INFO, "avrdude was compiled without usb / HID API support.\n"); return -1; #endif @@ -1325,6 +1325,7 @@ int jtag3_open_common(PROGRAMMER * pgm, char * port) return -1; } + serdev = &usb_serdev_frame; if (pgm->usbvid) pinfo.usbinfo.vid = pgm->usbvid; else @@ -1334,42 +1335,17 @@ int jtag3_open_common(PROGRAMMER * pgm, char * port) if (lfirst(pgm->usbpid) == NULL) ladd(pgm->usbpid, (void *)USB_DEVICE_JTAGICE3); -#if defined(HAVE_LIBHIDAPI) - /* - * Try HIDAPI first. LibUSB is more generic, but might then cause - * troubles for HID-class devices in some OSes (like Windows). - */ - serdev = &usbhid_serdev; for (usbpid = lfirst(pgm->usbpid); rv < 0 && usbpid != NULL; usbpid = lnext(usbpid)) { pinfo.usbinfo.flags = PINFO_FL_SILENT; pinfo.usbinfo.pid = *(int *)(ldata(usbpid)); pgm->fd.usb.max_xfer = USBDEV_MAX_XFER_3; pgm->fd.usb.rep = USBDEV_BULK_EP_READ_3; pgm->fd.usb.wep = USBDEV_BULK_EP_WRITE_3; - pgm->fd.usb.eep = 0; + pgm->fd.usb.eep = USBDEV_EVT_EP_READ_3; strcpy(pgm->port, port); rv = serial_open(port, pinfo, &pgm->fd); } - if (rv < 0) { -#endif /* HAVE_LIBHIDAPI */ -#if defined(HAVE_LIBUSB) - serdev = &usb_serdev_frame; - for (usbpid = lfirst(pgm->usbpid); rv < 0 && usbpid != NULL; usbpid = lnext(usbpid)) { - pinfo.usbinfo.flags = PINFO_FL_SILENT; - pinfo.usbinfo.pid = *(int *)(ldata(usbpid)); - pgm->fd.usb.max_xfer = USBDEV_MAX_XFER_3; - pgm->fd.usb.rep = USBDEV_BULK_EP_READ_3; - pgm->fd.usb.wep = USBDEV_BULK_EP_WRITE_3; - pgm->fd.usb.eep = USBDEV_EVT_EP_READ_3; - - strcpy(pgm->port, port); - rv = serial_open(port, pinfo, &pgm->fd); - } -#endif /* HAVE_LIBUSB */ -#if defined(HAVE_LIBHIDAPI) - } -#endif if (rv < 0) { avrdude_message(MSG_INFO, "%s: jtag3_open_common(): Did not find any device matching VID 0x%04x and PID list: ", progname, (unsigned)pinfo.usbinfo.vid);