{
struct usb_device *dev = (struct usb_device *) malloc(sizeof(struct usb_device));
dev->conf = (struct usb_conf *) malloc(sizeof(struct usb_conf));
dev->address = 0;
{
struct usb_device *dev = (struct usb_device *) malloc(sizeof(struct usb_device));
dev->conf = (struct usb_conf *) malloc(sizeof(struct usb_conf));
dev->address = 0;
- /* send at first time only 8 bytes */
- dev->bMaxPacketSize0 = 8;
+ dev->fullspeed = lowspeed ? 0 : 1;
+ /* send at first time only 8 bytes for lowspeed devices
+ * 64 bytes for fullspeed
+ */
+ dev->bMaxPacketSize0 = lowspeed ? 8 : 64;
+ dev->ohci = reg;
/* select configuration */
ret = usb_set_configuration(dev, dev->conf->bConfigurationValue);
printf("=============\nusb_set_configuration(ret: %d) %d\n", ret, dev->conf->bConfigurationValue);
printf("=============\nusb_get_configuration: %d\n", usb_get_configuration(dev));
/* select configuration */
ret = usb_set_configuration(dev, dev->conf->bConfigurationValue);
printf("=============\nusb_set_configuration(ret: %d) %d\n", ret, dev->conf->bConfigurationValue);
printf("=============\nusb_get_configuration: %d\n", usb_get_configuration(dev));
- usb_control_msg(dev, 0x00, SET_INTERFACE, 0, dev->conf->intf->bInterfaceNumber, 8, buf, 0);
+ usb_control_msg(dev, 0x00, SET_INTERFACE, 0, dev->conf->intf->bInterfaceNumber, 0, buf, 0);
- usb_control_msg(dev, 0x80, GET_INTERFACE, 0, 0, 8, buf, 0);
+ usb_control_msg(dev, 0x81, GET_INTERFACE, 0, dev->conf->intf->bInterfaceNumber, 8, buf, 0);
printf("iProduct(0x%02X): \"%s\"\n", dev->iProduct, dev->iProduct ? usb_get_string_simple(dev, dev->iProduct) : "no String");
printf("iSerialNumber(0x%02X): \"%s\"\n", dev->iSerialNumber, dev->iSerialNumber ? usb_get_string_simple(dev, dev->iSerialNumber) : "no String");
printf("bNumConfigurations 0x%02X\n", dev->bNumConfigurations);
printf("iProduct(0x%02X): \"%s\"\n", dev->iProduct, dev->iProduct ? usb_get_string_simple(dev, dev->iProduct) : "no String");
printf("iSerialNumber(0x%02X): \"%s\"\n", dev->iSerialNumber, dev->iSerialNumber ? usb_get_string_simple(dev, dev->iSerialNumber) : "no String");
printf("bNumConfigurations 0x%02X\n", dev->bNumConfigurations);
/* pruefe ob noch weitere Pakete vom Device abgeholt werden muessen */
restlength = restlength - irp->epsize;
/* pruefe ob noch weitere Pakete vom Device abgeholt werden muessen */
restlength = restlength - irp->epsize;