diff options
Diffstat (limited to 'tmk_core/protocol')
| -rw-r--r-- | tmk_core/protocol/chibios/usb_main.c | 12 |
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 | } |
