qmk-dactyl-manuform-a/tmk_core/common
Nick Brassel 172e6a7030
Extensible split data sync (#11930)
* Extensible split data sync capability through transactions.

- Split common transport has been split up between the transport layer
  and data layer.
- Split "transactions" model used, with convergence between I2C and
  serial data definitions.
- Slave matrix "generation count" is used to determine if the full slave
  matrix needs to be retrieved.
- Encoders get the same "generation count" treatment.
- All other blocks of data are synchronised when a change is detected.
- All transmissions have a globally-configurable deadline before a
  transmission is forced (`FORCED_SYNC_THROTTLE_MS`, default 100ms).
- Added atomicity for all core-synced data, preventing partial updates
- Added retries to AVR i2c_master's i2c_start, to minimise the number of
  failed transactions when interrupts are disabled on the slave due to
  atomicity checks.
- Some keyboards have had slight modifications made in order to ensure
  that they still build due to firmware size restrictions.

* Fixup LED_MATRIX compile.

* Parameterise ERROR_DISCONNECT_COUNT.
2021-06-18 09:10:06 +10:00
..
arm_atsam Avoid 8-bit timer overflows in debounce algorithms (#12240) 2021-06-09 17:23:21 +10:00
avr Avoid 8-bit timer overflows in debounce algorithms (#12240) 2021-06-09 17:23:21 +10:00
chibios core: make RESET key work with Teensy 4.x (#13076) 2021-06-15 21:53:27 -07:00
test Move gpio wait logic to wait.h (#12067) 2021-03-10 22:47:36 +00:00
action.c run: qmk cformat --core-only 2021-05-29 13:53:10 -07:00
action.h run: qmk cformat --core-only 2021-05-29 13:53:10 -07:00
action_code.h Change include guards in tmk_core/ and drivers/ to pragma once (#11240) 2020-12-26 15:56:11 +11:00
action_layer.c Optimization for scanning less layers. (#8311) 2020-05-11 01:04:38 +01:00
action_layer.h Change include guards in tmk_core/ and drivers/ to pragma once (#11240) 2020-12-26 15:56:11 +11:00
action_macro.c clang-format changes 2019-08-30 15:01:52 -07:00
action_macro.h Change include guards in tmk_core/ and drivers/ to pragma once (#11240) 2020-12-26 15:56:11 +11:00
action_tapping.c Format code according to conventions (#12380) 2021-03-25 23:18:59 +11:00
action_tapping.h manually run formatting job (#11503) 2021-01-10 22:15:29 +00:00
action_util.c Add ability to toggle One Shot functionality (#4198) 2021-03-01 08:57:02 -08:00
action_util.h Add ability to toggle One Shot functionality (#4198) 2021-03-01 08:57:02 -08:00
atomic_util.h Split gpio and atomic to platform (#11792) 2021-02-14 11:51:06 +11:00
bootloader.h Change include guards in tmk_core/ and drivers/ to pragma once (#11240) 2020-12-26 15:56:11 +11:00
debug.c Refactor platform logic within print.h (#11863) 2021-02-14 01:44:22 +00:00
debug.h Change include guards in tmk_core/ and drivers/ to pragma once (#11240) 2020-12-26 15:56:11 +11:00
eeconfig.c Backlight: add defines for default level and breathing state (#12560) 2021-05-26 22:21:15 -07:00
eeconfig.h Backlight: add defines for default level and breathing state (#12560) 2021-05-26 22:21:15 -07:00
eeprom.h Change include guards in tmk_core/ and drivers/ to pragma once (#11240) 2020-12-26 15:56:11 +11:00
gpio.h Split gpio and atomic to platform (#11792) 2021-02-14 11:51:06 +11:00
host.c Extensible split data sync (#11930) 2021-06-18 09:10:06 +10:00
host.h New and improved lock LED callbacks (#7215) 2019-11-06 00:42:16 +00:00
host_driver.h Change include guards in tmk_core/ and drivers/ to pragma once (#11240) 2020-12-26 15:56:11 +11:00
keyboard.c Add CRC8 calculation subsystem to quantum (#12641) 2021-06-18 00:09:43 +01:00
keyboard.h run: qmk cformat --core-only 2021-05-29 13:53:10 -07:00
keycode.h Format code according to conventions (#12244) 2021-03-15 12:21:14 +11:00
lib_printf.mk Refactor platform logic within print.h (#11863) 2021-02-14 01:44:22 +00:00
nodebug.h Change include guards in tmk_core/ and drivers/ to pragma once (#11240) 2020-12-26 15:56:11 +11:00
pin_defs.h Split gpio and atomic to platform (#11792) 2021-02-14 11:51:06 +11:00
print.h Refactor platform logic within print.h (#11863) 2021-02-14 01:44:22 +00:00
printf.c Refactor platform logic within print.h (#11863) 2021-02-14 01:44:22 +00:00
progmem.h Refactor platform logic within print.h (#11863) 2021-02-14 01:44:22 +00:00
raw_hid.h Change include guards in tmk_core/ and drivers/ to pragma once (#11240) 2020-12-26 15:56:11 +11:00
report.c format code according to conventions [skip ci] 2020-03-13 18:44:56 +00:00
report.h Add a handful of consumer/gendesk page usages (#12811) 2021-05-06 17:16:07 +01:00
sendchar.h Refactor platform logic within print.h (#11863) 2021-02-14 01:44:22 +00:00
sendchar_null.c Initial vusb console support (#8559) 2020-05-03 01:25:39 +01:00
sendchar_uart.c clang-format changes 2019-08-30 15:01:52 -07:00
sleep_led.h Change include guards in tmk_core/ and drivers/ to pragma once (#11240) 2020-12-26 15:56:11 +11:00
suspend.h Set default for USB_SUSPEND_WAKEUP_DELAY to 0/disabled (#12081) 2021-03-02 14:31:23 +00:00
sync_timer.c [Split] Sync Timer feature (#10997) 2020-12-01 10:04:42 -08:00
sync_timer.h [Split] Sync Timer feature (#10997) 2020-12-01 10:04:42 -08:00
timer.h Avoid 8-bit timer overflows in debounce algorithms (#12240) 2021-06-09 17:23:21 +10:00
usb_util.c Refactor of USB code within split_common (#11890) 2021-02-28 15:52:58 +00:00
usb_util.h Refactor of USB code within split_common (#11890) 2021-02-28 15:52:58 +00:00
virtser.h Change include guards in tmk_core/ and drivers/ to pragma once (#11240) 2020-12-26 15:56:11 +11:00
wait.h Move gpio wait logic to wait.h (#12067) 2021-03-10 22:47:36 +00:00