diff options
Diffstat (limited to 'tmk_core')
| -rw-r--r-- | tmk_core/chibios.mk | 4 | ||||
| -rw-r--r-- | tmk_core/protocol/chibios/usb_main.c | 12 |
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)) | |||
| 125 | EXTRAINCDIRS += $(CHIBIOS)/os/license \ | 125 | EXTRAINCDIRS += $(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) | |||
| 145 | EEP = | 145 | EEP = |
| 146 | BIN = $(OBJCOPY) -O binary | 146 | BIN = $(OBJCOPY) -O binary |
| 147 | 147 | ||
| 148 | COMMON_VPATH += $(DRIVER_PATH)/arm | ||
| 149 | |||
| 148 | THUMBFLAGS = -DTHUMB_PRESENT -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -mthumb -DTHUMB | 150 | THUMBFLAGS = -DTHUMB_PRESENT -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -mthumb -DTHUMB |
| 149 | 151 | ||
| 150 | COMPILEFLAGS += -fomit-frame-pointer | 152 | COMPILEFLAGS += -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 | } |
