From d0075db6b63114091ae6b4b55e855c7a60ed43ec Mon Sep 17 00:00:00 2001 From: zvecr Date: Thu, 20 Jan 2022 18:56:47 +0000 Subject: [PATCH 1/3] Relocate matrix_init_quantum content --- quantum/keyboard.c | 43 +++++++++++++++++++++++++++++++++++++++++ quantum/matrix.c | 6 ------ quantum/matrix_common.c | 6 ------ quantum/quantum.c | 30 +--------------------------- 4 files changed, 44 insertions(+), 41 deletions(-) diff --git a/quantum/keyboard.c b/quantum/keyboard.c index fa20c675c3f4..de3836c824a6 100644 --- a/quantum/keyboard.c +++ b/quantum/keyboard.c @@ -16,6 +16,7 @@ along with this program. If not, see . */ #include +#include "magic.h" #include "quantum.h" #include "keyboard.h" #include "matrix.h" @@ -101,6 +102,12 @@ along with this program. If not, see . #ifdef SLEEP_LED_ENABLE # include "sleep_led.h" #endif +#ifdef SPLIT_KEYBOARD +# include "split_util.h" +#endif +#ifdef BLUETOOTH_ENABLE +# include "outputselect.h" +#endif static uint32_t last_input_modification_time = 0; uint32_t last_input_activity_time(void) { return last_input_modification_time; } @@ -291,6 +298,36 @@ void housekeeping_task(void) { housekeeping_task_user(); } +/** \brief Init tasks previously located in matrix_init_quantum + * + * TODO: rationalise against keyboard_init and current split role + */ +void quantum_init(void) { + magic(); + led_init_ports(); +#ifdef BACKLIGHT_ENABLE + backlight_init_ports(); +#endif +#ifdef AUDIO_ENABLE + audio_init(); +#endif +#ifdef LED_MATRIX_ENABLE + led_matrix_init(); +#endif +#ifdef RGB_MATRIX_ENABLE + rgb_matrix_init(); +#endif +#if defined(UNICODE_COMMON_ENABLE) + unicode_input_mode_init(); +#endif +#ifdef HAPTIC_ENABLE + haptic_init(); +#endif +#if defined(BLUETOOTH_ENABLE) && defined(OUTPUT_AUTO_ENABLE) + set_output(OUTPUT_AUTO); +#endif +} + /** \brief keyboard_init * * FIXME: needs doc @@ -300,6 +337,9 @@ void keyboard_init(void) { sync_timer_init(); #ifdef VIA_ENABLE via_init(); +#endif +#ifdef SPLIT_KEYBOARD + split_pre_init(); #endif matrix_init(); #if defined(CRC_ENABLE) @@ -342,6 +382,9 @@ void keyboard_init(void) { #ifdef VIRTSER_ENABLE virtser_init(); #endif +#ifdef SPLIT_KEYBOARD + split_post_init(); +#endif #if defined(DEBUG_MATRIX_SCAN_RATE) && defined(CONSOLE_ENABLE) debug_enable = true; diff --git a/quantum/matrix.c b/quantum/matrix.c index a58cc752fbe8..1dd9655e5748 100644 --- a/quantum/matrix.c +++ b/quantum/matrix.c @@ -252,8 +252,6 @@ __attribute__((weak)) void matrix_read_rows_on_col(matrix_row_t current_matrix[] void matrix_init(void) { #ifdef SPLIT_KEYBOARD - split_pre_init(); - // Set pinout for right half if pinout for that half is defined if (!isLeftHand) { # ifdef DIRECT_PINS_RIGHT @@ -292,10 +290,6 @@ void matrix_init(void) { debounce_init(ROWS_PER_HAND); matrix_init_quantum(); - -#ifdef SPLIT_KEYBOARD - split_post_init(); -#endif } #ifdef SPLIT_KEYBOARD diff --git a/quantum/matrix_common.c b/quantum/matrix_common.c index 98b83ddcf6a6..d67aaf508c2c 100644 --- a/quantum/matrix_common.c +++ b/quantum/matrix_common.c @@ -139,8 +139,6 @@ __attribute__((weak)) void matrix_slave_scan_user(void) {} __attribute__((weak)) void matrix_init(void) { #ifdef SPLIT_KEYBOARD - split_pre_init(); - thisHand = isLeftHand ? 0 : (ROWS_PER_HAND); thatHand = ROWS_PER_HAND - thisHand; #endif @@ -156,10 +154,6 @@ __attribute__((weak)) void matrix_init(void) { debounce_init(ROWS_PER_HAND); matrix_init_quantum(); - -#ifdef SPLIT_KEYBOARD - split_post_init(); -#endif } __attribute__((weak)) uint8_t matrix_scan(void) { diff --git a/quantum/quantum.c b/quantum/quantum.c index ac99bcbd4547..082d18c3a167 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -15,7 +15,6 @@ */ #include "quantum.h" -#include "magic.h" #ifdef BLUETOOTH_ENABLE # include "outputselect.h" @@ -368,35 +367,8 @@ layer_state_t update_tri_layer_state(layer_state_t state, uint8_t layer1, uint8_ void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) { layer_state_set(update_tri_layer_state(layer_state, layer1, layer2, layer3)); } -void matrix_init_quantum() { - magic(); - led_init_ports(); -#ifdef BACKLIGHT_ENABLE - backlight_init_ports(); -#endif -#ifdef AUDIO_ENABLE - audio_init(); -#endif -#ifdef LED_MATRIX_ENABLE - led_matrix_init(); -#endif -#ifdef RGB_MATRIX_ENABLE - rgb_matrix_init(); -#endif -#if defined(UNICODE_COMMON_ENABLE) - unicode_input_mode_init(); -#endif -#ifdef HAPTIC_ENABLE - haptic_init(); -#endif -#if defined(BLUETOOTH_ENABLE) && defined(OUTPUT_AUTO_ENABLE) - set_output(OUTPUT_AUTO); -#endif - - matrix_init_kb(); -} - // TODO: remove legacy api +void matrix_init_quantum() { matrix_init_kb(); } void matrix_scan_quantum() { matrix_scan_kb(); } //------------------------------------------------------------------------------ From 4026e5ed34d18bd21f02e12244e7407c0c45f5a5 Mon Sep 17 00:00:00 2001 From: zvecr Date: Thu, 20 Jan 2022 19:02:27 +0000 Subject: [PATCH 2/3] Update include order --- quantum/keyboard.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quantum/keyboard.c b/quantum/keyboard.c index de3836c824a6..5b32d7c7a593 100644 --- a/quantum/keyboard.c +++ b/quantum/keyboard.c @@ -16,11 +16,11 @@ along with this program. If not, see . */ #include -#include "magic.h" #include "quantum.h" #include "keyboard.h" #include "matrix.h" #include "keymap.h" +#include "magic.h" #include "host.h" #include "led.h" #include "keycode.h" From c83a02c76992112a6b2a076a1bcc5a1e287432bd Mon Sep 17 00:00:00 2001 From: zvecr Date: Sat, 22 Jan 2022 20:56:53 +0000 Subject: [PATCH 3/3] Fix cherry pick from 15722 --- quantum/keyboard.c | 1 + 1 file changed, 1 insertion(+) diff --git a/quantum/keyboard.c b/quantum/keyboard.c index 5b32d7c7a593..9ef5418f4e34 100644 --- a/quantum/keyboard.c +++ b/quantum/keyboard.c @@ -342,6 +342,7 @@ void keyboard_init(void) { split_pre_init(); #endif matrix_init(); + quantum_init(); #if defined(CRC_ENABLE) crc_init(); #endif