Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extensible split data sync #11930

Merged
merged 3 commits into from Jun 17, 2021
Merged

Commits on Jun 16, 2021

  1. 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.
    tzarc committed Jun 16, 2021
    Configuration menu
    Copy the full SHA
    6a959aa View commit details
    Browse the repository at this point in the history
  2. Fixup LED_MATRIX compile.

    tzarc committed Jun 16, 2021
    Configuration menu
    Copy the full SHA
    82ef0c2 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    9fa3e05 View commit details
    Browse the repository at this point in the history