summaryrefslogtreecommitdiff
path: root/host
diff options
context:
space:
mode:
Diffstat (limited to 'host')
-rw-r--r--host/opcd_usb.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/host/opcd_usb.c b/host/opcd_usb.c
index d73289d..9224516 100644
--- a/host/opcd_usb.c
+++ b/host/opcd_usb.c
@@ -50,8 +50,6 @@ opcd_hexdump(const void *data, unsigned int len)
return string;
}
-#define OPCD_VENDOR_ID 0x2342
-#define OPCD_PRODUCT_ID 0x0001
#define OPCD_OUT_EP 0x01
#define OPCD_IN_EP 0x82
#define OPCD_INT_EP 0x83
@@ -63,12 +61,12 @@ static struct usb_device *find_opcd_handle(void)
for (bus = usb_busses; bus; bus = bus->next) {
struct usb_device *dev;
for (dev = bus->devices; dev; dev = dev->next) {
- if (dev->descriptor.idVendor == OPCD_VENDOR_ID
- && dev->descriptor.idProduct == OPCD_PRODUCT_ID
+ if (dev->descriptor.idVendor == OPENPCD_VENDOR_ID
+ && (dev->descriptor.idProduct == OPENPCD_PRODUCT_ID ||
+ dev->descriptor.idProduct == OPENPCD_PRODUCT_ID)
&& dev->descriptor.iManufacturer == 0
&& dev->descriptor.iProduct == 0
&& dev->descriptor.bNumConfigurations == 1
- && dev->config->bNumInterfaces == 2
&& dev->config->iConfiguration == 0)
return dev;
}
@@ -186,6 +184,7 @@ int opcd_send_command(struct opcd_handle *od, u_int8_t cmd,
ohdr->cmd = cmd;
ohdr->reg = reg;
ohdr->val = val;
+ ohdr->flags = OPENPCD_FLAG_RESPOND;
if (data && len)
memcpy(ohdr->data, data, len);
@@ -213,10 +212,13 @@ int opcd_usbperf(struct opcd_handle *od, unsigned int frames)
printf("starting DATA IN performance test (%u frames of 64 bytes)\n",
frames);
- opcd_send_command(od, OPENPCD_CMD_USBTEST_IN, transfers, frames, 0, NULL);
gettimeofday(&tv_start, NULL);
+ opcd_send_command(od, OPENPCD_CMD_USBTEST_IN, transfers, frames, 0, NULL);
for (i = 0; i < transfers; i++) {
int ret;
+
+ if (i < transfers - 1)
+ opcd_send_command(od, OPENPCD_CMD_USBTEST_IN, transfers, frames, 0, NULL);
ret = ausb_bulk_read(od->hdl, OPCD_IN_EP, buf, sizeof(buf), 0);
if (ret < 0) {
fprintf(stderr, "error receiving data in transaction\n");
personal git repositories of Harald Welte. Your mileage may vary