diff options
author | Nick Brassel <nick@tzarc.org> | 2021-06-18 09:10:06 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-18 09:10:06 +1000 |
commit | 172e6a703041363decd6fc829542f33180c13beb (patch) | |
tree | a5d4afaa672ab44826865fd76b201e3899083192 /quantum/split_common/matrix.c | |
parent | ef92c9ee2cf4745637635ec1895399e4f013914c (diff) | |
download | qmk_firmware-172e6a703041363decd6fc829542f33180c13beb.tar.gz qmk_firmware-172e6a703041363decd6fc829542f33180c13beb.zip |
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.
Diffstat (limited to 'quantum/split_common/matrix.c')
-rw-r--r-- | quantum/split_common/matrix.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/quantum/split_common/matrix.c b/quantum/split_common/matrix.c index 2cf7b7058..56d91b07f 100644 --- a/quantum/split_common/matrix.c +++ b/quantum/split_common/matrix.c | |||
@@ -23,9 +23,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
23 | #include "quantum.h" | 23 | #include "quantum.h" |
24 | #include "split_util.h" | 24 | #include "split_util.h" |
25 | #include "config.h" | 25 | #include "config.h" |
26 | #include "transport.h" | 26 | #include "transactions.h" |
27 | 27 | ||
28 | #define ERROR_DISCONNECT_COUNT 5 | 28 | #ifndef ERROR_DISCONNECT_COUNT |
29 | # define ERROR_DISCONNECT_COUNT 5 | ||
30 | #endif // ERROR_DISCONNECT_COUNT | ||
29 | 31 | ||
30 | #define ROWS_PER_HAND (MATRIX_ROWS / 2) | 32 | #define ROWS_PER_HAND (MATRIX_ROWS / 2) |
31 | 33 | ||