- EPI0_config (0x12, 0x1, TRUE, (uint32 *) send_data);
+ /*
+ * only send less or equal than requested length.
+ * no need to care about larger reqeust than possible
+ * descriptor length because of zero-length packet
+ * generated by usb controller
+ */
+ EPI0_config (min(USB_DT_DEVICE_SIZE, length), 0x1, TRUE, (uint32 *) send_data);