diff options
author | Joakim Tufvegren <jocke@barbanet.com> | 2021-08-03 23:38:37 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-04 07:38:37 +1000 |
commit | 1409b368517a8ce9af1320acc75f7a8fbcdfca18 (patch) | |
tree | d60cb7ecaedc9e61367d4ad357a111747d8256f4 | |
parent | 34de7ca224d613e1ae19a45860e27c15d40254dd (diff) |
Remove the #10088 hotfix for Teensy 3.1-like Input:Club keyboards (#12870)
* Remove the #10088 hotfix for K20x MCU:s.
It seems to _cause_ the issue it intended to solve there.
* Cleaner way of removing #10088 hotfix.
Now only affects Ergodox Infinity, Whitefox and K-type, though.
Switches over Ergodox Infinity to the `IC_TEENSY_3_1` board, since that
was a nice place to implement the `restart_usb_driver` override.
However, I would guess this issue is present for other K20x/Teensy 3.1
boards as well...
* Fix comment regarding `IC_TEENSY_3_1` for all keyboards using it.
-rw-r--r-- | keyboards/ergodox_infinity/rules.mk | 7 | ||||
-rw-r--r-- | keyboards/k_type/rules.mk | 3 | ||||
-rw-r--r-- | keyboards/whitefox/rules.mk | 8 | ||||
-rw-r--r-- | platforms/chibios/IC_TEENSY_3_1/board/board.c | 5 | ||||
-rw-r--r-- | tmk_core/protocol/chibios/usb_main.c | 2 |
5 files changed, 18 insertions, 7 deletions
diff --git a/keyboards/ergodox_infinity/rules.mk b/keyboards/ergodox_infinity/rules.mk index fbd52cd257..6c490ca0d8 100644 --- a/keyboards/ergodox_infinity/rules.mk +++ b/keyboards/ergodox_infinity/rules.mk @@ -4,6 +4,13 @@ MCU = MK20DX256 # Bootloader selection BOOTLOADER = kiibohd +# Board: it should exist either in <chibios>/os/hal/boards/ +# or <this_dir>/boards +# This board was copied from PJRC_TEENSY_3_1. The only difference should be a +# hack to ensure the watchdog has started before trying to disable it, and an +# override to disable restart of USB driver after returning from suspend. +BOARD = IC_TEENSY_3_1 + # Build Options # comment out to disable the options. # diff --git a/keyboards/k_type/rules.mk b/keyboards/k_type/rules.mk index 369cab4f09..ffd350ef8a 100644 --- a/keyboards/k_type/rules.mk +++ b/keyboards/k_type/rules.mk @@ -7,7 +7,8 @@ BOOTLOADER = kiibohd # Board: it should exist either in <chibios>/os/hal/boards/ # or <this_dir>/boards # This board was copied from PJRC_TEENSY_3_1. The only difference should be a -# hack to ensure the watchdog has started before trying to disable it. +# hack to ensure the watchdog has started before trying to disable it, and an +# override to disable restart of USB driver after returning from suspend. BOARD = IC_TEENSY_3_1 # Build Options diff --git a/keyboards/whitefox/rules.mk b/keyboards/whitefox/rules.mk index 7c1d0c3def..cc02f3472e 100644 --- a/keyboards/whitefox/rules.mk +++ b/keyboards/whitefox/rules.mk @@ -6,11 +6,9 @@ BOOTLOADER = kiibohd # Board: it should exist either in <chibios>/os/hal/boards/ # or <this_dir>/boards -# - BOARD = -# - PJRC_TEENSY_LC for Teensy LC -# - PJRC_TEENSY_3 for Teensy 3.0 -# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2 -# - MCHCK_K20 for Infinity KB +# This board was copied from PJRC_TEENSY_3_1. The only difference should be a +# hack to ensure the watchdog has started before trying to disable it, and an +# override to disable restart of USB driver after returning from suspend. BOARD = IC_TEENSY_3_1 # Build Options diff --git a/platforms/chibios/IC_TEENSY_3_1/board/board.c b/platforms/chibios/IC_TEENSY_3_1/board/board.c index 36ae8051ee..424e0c975b 100644 --- a/platforms/chibios/IC_TEENSY_3_1/board/board.c +++ b/platforms/chibios/IC_TEENSY_3_1/board/board.c @@ -144,3 +144,8 @@ void __early_init(void) { * @todo Add your board-specific code, if any. */ void boardInit(void) {} + + +void restart_usb_driver(USBDriver *usbp) { + // Do nothing. Restarting the USB driver on these boards breaks it. +} diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c index 3adbb97994..441cfab970 100644 --- a/tmk_core/protocol/chibios/usb_main.c +++ b/tmk_core/protocol/chibios/usb_main.c @@ -705,7 +705,7 @@ void init_usb_driver(USBDriver *usbp) { chVTObjectInit(&keyboard_idle_timer); } -void restart_usb_driver(USBDriver *usbp) { +__attribute__((weak)) void restart_usb_driver(USBDriver *usbp) { usbStop(usbp); usbDisconnectBus(usbp); |