1.1 --- a/test.c Wed Mar 13 14:56:35 2013 +0000
1.2 +++ b/test.c Wed Mar 13 15:25:27 2013 +0000
1.3 @@ -44,7 +44,7 @@
1.4 {
1.5 bool in_toggle, out_toggle;
1.6 struct usb_device_descriptor desc;
1.7 - uint8_t address;
1.8 + uint8_t address, max_packet_size;
1.9 } max_device;
1.10
1.11 static uint16_t next_address = 1;
1.12 @@ -612,7 +612,7 @@
1.13
1.14 max_write(MAX_REG_PERADDR, device->address);
1.15
1.16 - setup_packet(setup, USB_ENDPOINT_IN, USB_REQ_GET_DESCRIPTOR, usb_descriptor_type(type) | value, index, 64);
1.17 + setup_packet(setup, USB_ENDPOINT_IN, USB_REQ_GET_DESCRIPTOR, usb_descriptor_type(type) | value, index, usb_descriptor_size(type));
1.18 max_control(setup);
1.19 if (!max_control_input(data, &len, device))
1.20 {
1.21 @@ -669,6 +669,8 @@
1.22 printf("iProduct: %d\n", device->desc.iProduct);
1.23 printf("iSerialNumber: %d\n", device->desc.iSerialNumber);
1.24 printf("bNumConfigurations: %d\n", device->desc.bNumConfigurations);
1.25 +
1.26 + device->max_packet_size = device->desc.bMaxPacketSize0;
1.27 return true;
1.28 }
1.29
1.30 @@ -794,6 +796,7 @@
1.31
1.32 device.in_toggle = false;
1.33 device.out_toggle = false;
1.34 + device.max_packet_size = 8;
1.35
1.36 signal(SIGINT, &shutdown);
1.37