From 1e1be4c229651703ef7c62784b704a859a3d13cf Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sun, 5 Sep 2021 15:35:42 -0700 Subject: [PATCH] [Bug] Fix compile issues for boards with custom matrix (#14323) --- keyboards/bpiphany/pegasushoof/2015/matrix.c | 12 ++++++++++++ keyboards/handwired/datahand/matrix.c | 15 +++++++++++++-- keyboards/keyboardio/model01/matrix.c | 11 +++++++++++ keyboards/matrix/noah/matrix.c | 11 +++++++++++ keyboards/ymdk/sp64/matrix.c | 11 +++++++++++ 5 files changed, 58 insertions(+), 2 deletions(-) diff --git a/keyboards/bpiphany/pegasushoof/2015/matrix.c b/keyboards/bpiphany/pegasushoof/2015/matrix.c index 42c5da3bc..b05869fed 100644 --- a/keyboards/bpiphany/pegasushoof/2015/matrix.c +++ b/keyboards/bpiphany/pegasushoof/2015/matrix.c @@ -33,6 +33,18 @@ static matrix_row_t matrix_debouncing[MATRIX_ROWS]; static matrix_row_t read_cols(void); static void select_row(uint8_t col); +// user-defined overridable functions + +__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } + +__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } + +__attribute__((weak)) void matrix_init_user(void) {} + +__attribute__((weak)) void matrix_scan_user(void) {} + +// helper functions + inline uint8_t matrix_rows(void) { return MATRIX_ROWS; diff --git a/keyboards/handwired/datahand/matrix.c b/keyboards/handwired/datahand/matrix.c index d276c47b2..9eead28cd 100644 --- a/keyboards/handwired/datahand/matrix.c +++ b/keyboards/handwired/datahand/matrix.c @@ -27,6 +27,17 @@ static matrix_row_t matrix[MATRIX_ROWS]; static matrix_row_t read_cols(void); static void select_row(uint8_t row); +// user-defined overridable functions + +__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } + +__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } + +__attribute__((weak)) void matrix_init_user(void) {} + +__attribute__((weak)) void matrix_scan_user(void) {} + +// helper functions void matrix_init(void) { /* See datahand.h for more detail on pins. */ @@ -48,7 +59,7 @@ void matrix_init(void) { /* Turn off the lock LEDs. */ PORTF |= LED_CAPS_LOCK | LED_NUM_LOCK | LED_SCROLL_LOCK | LED_MOUSE_LOCK; - matrix_init_user(); + matrix_init_quantum(); } uint8_t matrix_scan(void) { @@ -62,7 +73,7 @@ uint8_t matrix_scan(void) { matrix[row] = read_cols(); } - matrix_scan_user(); + matrix_scan_quantum(); return 1; } diff --git a/keyboards/keyboardio/model01/matrix.c b/keyboards/keyboardio/model01/matrix.c index 450e48d94..524ec9bdc 100644 --- a/keyboards/keyboardio/model01/matrix.c +++ b/keyboards/keyboardio/model01/matrix.c @@ -25,6 +25,17 @@ static matrix_row_t rows[MATRIX_ROWS]; #define ROWS_PER_HAND (MATRIX_ROWS / 2) +// user-defined overridable functions + +__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } + +__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } + +__attribute__((weak)) void matrix_init_user(void) {} + +__attribute__((weak)) void matrix_scan_user(void) {} + +// helper functions inline uint8_t matrix_rows(void) { return MATRIX_ROWS; diff --git a/keyboards/matrix/noah/matrix.c b/keyboards/matrix/noah/matrix.c index 94a27b181..17f7a2fb6 100644 --- a/keyboards/matrix/noah/matrix.c +++ b/keyboards/matrix/noah/matrix.c @@ -26,6 +26,17 @@ static matrix_row_t matrix_debouncing[MATRIX_COLS]; static bool debouncing = false; static uint16_t debouncing_time = 0; +// user-defined overridable functions + +__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } + +__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } + +__attribute__((weak)) void matrix_init_user(void) {} + +__attribute__((weak)) void matrix_scan_user(void) {} + +// helper functions void matrix_init(void) { //debug_enable = true; diff --git a/keyboards/ymdk/sp64/matrix.c b/keyboards/ymdk/sp64/matrix.c index 74bddc057..9a6e37bcd 100644 --- a/keyboards/ymdk/sp64/matrix.c +++ b/keyboards/ymdk/sp64/matrix.c @@ -38,6 +38,17 @@ static void matrix_select_row(uint8_t row); static uint8_t mcp23018_reset_loop = 0; #endif +// user-defined overridable functions + +__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } + +__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } + +__attribute__((weak)) void matrix_init_user(void) {} + +__attribute__((weak)) void matrix_scan_user(void) {} + +// helper functions void matrix_init(void) { // all outputs for rows high