aboutsummaryrefslogtreecommitdiff
path: root/tmk_core
diff options
context:
space:
mode:
Diffstat (limited to 'tmk_core')
-rw-r--r--tmk_core/chibios.mk4
-rw-r--r--tmk_core/protocol/chibios/usb_main.c12
2 files changed, 10 insertions, 6 deletions
diff --git a/tmk_core/chibios.mk b/tmk_core/chibios.mk
index e53204905..25c49204b 100644
--- a/tmk_core/chibios.mk
+++ b/tmk_core/chibios.mk
@@ -125,7 +125,7 @@ CHIBISRC := $(patsubst $(TOP_DIR)/%,%,$(CHIBISRC))
125EXTRAINCDIRS += $(CHIBIOS)/os/license \ 125EXTRAINCDIRS += $(CHIBIOS)/os/license \
126 $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ 126 $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
127 $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ 127 $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
128 $(STREAMSINC) $(CHIBIOS)/os/various 128 $(STREAMSINC) $(CHIBIOS)/os/various $(COMMON_VPATH)
129 129
130# 130#
131# Project, sources and paths 131# Project, sources and paths
@@ -145,6 +145,8 @@ HEX = $(OBJCOPY) -O $(FORMAT)
145EEP = 145EEP =
146BIN = $(OBJCOPY) -O binary 146BIN = $(OBJCOPY) -O binary
147 147
148COMMON_VPATH += $(DRIVER_PATH)/arm
149
148THUMBFLAGS = -DTHUMB_PRESENT -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -mthumb -DTHUMB 150THUMBFLAGS = -DTHUMB_PRESENT -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -mthumb -DTHUMB
149 151
150COMPILEFLAGS += -fomit-frame-pointer 152COMPILEFLAGS += -fomit-frame-pointer
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}