Commit Graph

420 Commits

Author SHA1 Message Date
412e7a03e4 eeprom driver: Refactor where eeprom driver initialisation (and EEPROM emulation initialisation) occurs to make it non-target-specific. (#12671) 2021-04-25 18:57:49 +10:00
2a61a500de Merge remote-tracking branch 'origin/master' into develop 2021-04-25 03:16:16 +00:00
d3bf3d3b1c Format code according to conventions (#12681)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-25 13:15:48 +10:00
64a9cf18e1 Merge remote-tracking branch 'origin/master' into develop 2021-04-25 03:12:09 +00:00
dbd65d01b6 Fix how USB queue overflow is handled in chibios. (#12576)
* Fix how USB queue overflow is handled in chibios.

This commit reverts PR 12472 (commit c823fe2d3f23ed090e36ce39beed4c448298bd2f),
and it implements the original intent of the commit in a better way.
The original intent of the above mentioned commit was to not deadlock the
keyboard when console is enabled, and hid_listen is not started.

The above mentioned commit had a few drawbacks:
1) When a lot of data was printed to the console, the queue would get full,
and drop data, even if hid_listen was running. (For example having matrix debug
enabled just didn't work right at all)
2) I believe the function in which this was implemented is used by all other
USB endpoints, so with the above change, overflow, and data loss could
happen in other important functions of QMK as well.

This commit implements deadlock prevention in a slightly similar way to how
it's done on AVR. There is an additional static local variable, that memorizes
whether the console has timeouted before. If we are in the timeouted=false
state, then we send the character normally with a 5ms timeout. If it does
time out, then hid_listen is likely not running, and future characters should
not be sent with a timeout, but those characters should still be sent if there
is space in the queue. The difference between the AVR implementation and this
one is that the AVR implementation checks the queue state directly, but this
implementation instead attempts to write the character with a zero timeout.
If it fails, then we remain in the timeouted=true state, if it succeeds, then
hid_listen started removing data from the queue, so we can go out of the
timeouted=true state.

* Added comment explaining the timeouted logic to console flow control.

* Console flow control: refactor chibios flowcontrol code to make it more readable, and rename the timeouted variable to timed_out on both chibios and lufa. Changed comments to says timed_out is an approximation of listener_disconnected, to make it clear that it's not the same thing

* fix typo
2021-04-25 13:11:41 +10:00
dcb8407ed6 Apply the "NO_LIMITED_CONTROLLER_CONNECT" fix to atmega16u2 (#12482)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-19 09:33:24 -07:00
34323ecd8b Merge remote-tracking branch 'origin/master' into develop 2021-04-10 16:34:58 +00:00
7daa2e210c Format code according to conventions (#12540)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-10 17:34:26 +01:00
d5a8431af4 Merge remote-tracking branch 'origin/master' into develop 2021-04-10 15:04:12 +00:00
7d953332e0 ChibiOS USB driver: prevent deadlock with CONSOLE_ENABLE = yes (#12472)
Before this commit, attaching an ARM-based (i.e. ChibiOS-based) keyboard that
uses CONSOLE_ENABLE = yes and produces debug messages would deadlock the
keyboard unless one was running hid_listen.

With this commit, dead-locking writes to the queue are detected and prevented.

fixes #5631
2021-04-10 16:03:38 +01:00
2f6236d1ea Merge remote-tracking branch 'origin/master' into develop 2021-03-25 11:31:17 +00:00
eae7343741 Move API_SYSEX_MAX_SIZE out of config_common.h (#12302) 2021-03-25 22:30:42 +11:00
af5c10ef0c Merge remote-tracking branch 'origin/master' into develop 2021-03-18 01:29:25 +00:00
9807225f90 [CI] Format code according to conventions (#12277)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-03-18 12:28:50 +11:00
4aa57e9e46 Merge remote-tracking branch 'origin/master' into develop 2021-03-18 00:48:52 +00:00
9331c22620 XT converter cleanup (#12264) 2021-03-18 11:48:09 +11:00
5ba4391cf2 Refactor of USB code within split_common (#11890)
* Initial refactor of usb code within split_common

* Add headers

* Correct disable condition

* Format

* Align func name
2021-02-28 15:52:58 +00:00
deaabff752 Format code according to conventions (#12046)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-02-27 22:35:41 +00:00
6623744172 Fix build for attiny85-based boards. (#12044) 2021-02-28 09:33:33 +11:00
d99e330548 Format code according to conventions (#12024)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-02-26 17:47:22 +11:00
abe189377c [BUG] Massdrop develop rgb fix (#12022)
* Allow for disabling RGB_MATRIX on Massdrop boards.

* Fixup init sequence.

* Make some functions static as they've got very generic names.
2021-02-26 17:07:05 +11:00
23fd1aee00 Merge remote-tracking branch 'upstream/master' into develop 2021-02-25 16:04:53 +11:00
39694d5eb0 V-USB suspend refactor (#11891) 2021-02-25 15:54:25 +11:00
7ab9f6a101 Output selection: Remove "USB and BT" option (#11940) 2021-02-20 18:11:02 +11:00
c27a778281 Format code according to conventions (#11905)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-02-15 06:55:43 +11:00
1f2fe2eab9 Refactor platform logic within print.h (#11863)
* Remove GCC check from debug

* Remove platform logic from common.mk

* Refactor platform logic within print.h

* restore debug.c format

* headers

* Rename function pointer type

* review comments

* Update tmk_core/common/printf.c

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Format

Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-02-14 01:44:22 +00:00
3a98bd75c8 Merge remote-tracking branch 'origin/master' into develop 2021-02-07 23:16:47 +00:00
99bffc2a21 Migrate some tmk_core files to quantum (#11791)
* Migrate some tmk_core files to quantum

* Fix build errors
2021-02-07 23:16:15 +00:00
f5a38b95c1 Remove legacy print backward compatiblitly (#11805)
* Remove legacy print backward compatiblitly

* Remove legacy print backward compatiblitly - core

* revert comment changes
2021-02-06 16:56:13 +00:00
a1ddba6bc4 Merge remote-tracking branch 'origin/master' into develop 2021-02-06 14:16:03 +00:00
9b874d5071 Manual formatting fix for serial_uart.c (#11806) 2021-02-06 14:15:30 +00:00
843643aef3 Merge remote-tracking branch 'origin/master' into develop 2021-02-05 22:21:23 +00:00
5ea92a9c1c Serial refactor (#11521) 2021-02-06 09:20:48 +11:00
9a4618b05b Address wake from sleep instability (#11450)
* resolve race condition between suspend and wake in LUFA

* avoid multiple calls to suspend_power_down() / suspend_wakeup_init()

* Remove duplicate suspend_power_down_kb() call

* pause on wakeup to wait for USB state to settle

* need the repeated suspend_power_down() (that's where the sleep is)

* more efficient implementation

* fine tune the pause after sending wakeup

* speculative chibios version of pause-after-wake

* make wakeup delay configurable, and adjust value

* better location for wakeup delay
2021-02-02 11:12:41 +11:00
db11a2a1fd Decouple USB events from the USB interrupt handler. (#10437) 2021-02-01 08:19:00 +11:00
99f3df2893 Add support for 8 buttons to mouse report (#10807)
* Add support for 8 buttons to mouse report

This includes support for 8 buttons in mousekeys.  However, this does move the keys around due to the fact that the last mousekey keycode is already 0xFF, so any past that would not work with register_code and the like, breaking them for tap hold keys, encoders, and other features.

* Update mouse key docs

* Add changes based on feedback

* Fix VUSB report size comment

Because drashna red gud

* Fix typo in action.c

* Fix IS_MOUSE_BUTTON check

* Change start range for mousekeys so that the end is 0xFF properly

* condense mousekeys check
2021-01-28 04:38:34 +11:00
28b1c913b4 Remove duplicated housekeeping in arm_atsam (#11672) 2021-01-24 12:55:43 +11:00
ca7da3866d Merge remote-tracking branch 'upstream/master' into develop 2021-01-15 18:34:12 +11:00
84e2f1ec17 Adafruit BLE cleanups (#11556) 2021-01-15 14:32:00 +11:00
f519a9908e arm_atsam: temporarily lower raw HID endpoint/report size (#11554) 2021-01-15 14:11:04 +11:00
3bc436988d Merge remote-tracking branch 'origin/master' into develop 2021-01-11 08:47:07 +00:00
aa0e33eca0 Add support for shared EP on V-USB boards (#11103) 2021-01-11 19:46:30 +11:00
e3da93e658 Merge remote-tracking branch 'upstream/master' into develop 2021-01-01 05:09:50 +11:00
a68d289fa5 Manually run formatting CI process (#11375) 2021-01-01 03:50:32 +11:00
1b3504e329 Update ADB impelemtation in TMK Core (#11168)
* Update ADB impelmentation in tmk_core to recent version.

Pcked from tmk_keyboard repository revision: 48d696443857512d45f9a7329e0dd0a76345860f

* Restore convenient ADB functions used in QMK port.

* Do cformat.
2020-12-29 19:18:16 -08:00
99d6349978 Merge remote-tracking branch 'origin/master' into develop 2020-12-27 17:37:04 +00:00
1b7b72c0e9 Ensure single newline at EOF for core files (#11310) 2020-12-28 04:36:32 +11:00
0b37c0dfa0 Merge remote-tracking branch 'origin/master' into develop 2020-12-26 04:56:43 +00:00
1d1d5da43f Change include guards in tmk_core/ and drivers/ to pragma once (#11240) 2020-12-26 15:56:11 +11:00
1c04608b0a Merge remote-tracking branch 'origin/master' into develop 2020-12-22 20:33:41 +00:00