aboutsummaryrefslogtreecommitdiff
path: root/tmk_core/protocol
diff options
context:
space:
mode:
Diffstat (limited to 'tmk_core/protocol')
-rw-r--r--tmk_core/protocol/chibios/usb_main.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c
index cbe257194..e79ff15e8 100644
--- a/tmk_core/protocol/chibios/usb_main.c
+++ b/tmk_core/protocol/chibios/usb_main.c
@@ -717,12 +717,14 @@ void send_mouse(report_mouse_t *report) {
717 } 717 }
718 osalSysUnlock(); 718 osalSysUnlock();
719 719
720 /* TODO: LUFA manually waits for the endpoint to become ready
721 * for about 10ms for mouse, kbd, system; 1ms for nkro
722 * is this really needed?
723 */
724
725 osalSysLock(); 720 osalSysLock();
721 if(usbGetTransmitStatusI(&USB_DRIVER, MOUSE_IN_EPNUM)) {
722 /* Need to either suspend, or loop and call unlock/lock during
723 * every iteration - otherwise the system will remain locked,
724 * no interrupts served, so USB not going through as well.
725 * Note: for suspend, need USB_USE_WAIT == TRUE in halconf.h */
726 osalThreadSuspendS(&(&USB_DRIVER)->epc[MOUSE_IN_EPNUM]->in_state->thread);
727 }
726 usbStartTransmitI(&USB_DRIVER, MOUSE_IN_EPNUM, (uint8_t *)report, sizeof(report_mouse_t)); 728 usbStartTransmitI(&USB_DRIVER, MOUSE_IN_EPNUM, (uint8_t *)report, sizeof(report_mouse_t));
727 osalSysUnlock(); 729 osalSysUnlock();
728} 730}