| @@ -95,6 +95,7 @@ int usb_joystick_send() | |||
| if (!usb_configuration) return -1; | |||
| yield(); | |||
| } | |||
| delayNanoseconds(30); // TODO: why is status ready too soon? | |||
| uint8_t *buffer = txbuffer + head * TX_BUFSIZE; | |||
| memcpy(buffer, usb_joystick_data, JOYSTICK_SIZE); | |||
| usb_prepare_transfer(xfer, buffer, JOYSTICK_SIZE, 0); | |||
| @@ -544,6 +544,7 @@ static int usb_keyboard_transmit(int endpoint, const uint8_t *data, uint32_t len | |||
| if (!usb_configuration) return -1; | |||
| yield(); | |||
| } | |||
| delayNanoseconds(30); // min req'd 11 ns, TODO: why is status ready too soon? | |||
| uint8_t *buffer = txbuffer + head * TX_BUFSIZE; | |||
| memcpy(buffer, data, len); | |||
| usb_prepare_transfer(xfer, buffer, len, 0); | |||
| @@ -159,6 +159,7 @@ static int usb_mouse_transmit(const uint8_t *data, uint32_t len) | |||
| if (!usb_configuration) return -1; | |||
| yield(); | |||
| } | |||
| delayNanoseconds(30); // TODO: why is status ready too soon? | |||
| uint8_t *buffer = txbuffer + head * TX_BUFSIZE; | |||
| memcpy(buffer, data, len); | |||
| usb_prepare_transfer(xfer, buffer, len, 0); | |||
| @@ -109,6 +109,7 @@ static int transmit(const uint8_t *data) | |||
| if (status & 0x68) { | |||
| // TODO: what if status has errors??? | |||
| } | |||
| delayNanoseconds(30); // TODO: is this needed? (probably not) | |||
| uint8_t *buffer = txbuffer + head * TX_BUFSIZE; | |||
| memcpy(buffer, data, MULTITOUCH_SIZE); | |||
| usb_prepare_transfer(xfer, buffer, MULTITOUCH_SIZE, 0); | |||