summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoel Challis <git@zvecr.com>2022-03-03 22:35:51 +0000
committerGitHub <noreply@github.com>2022-03-03 22:35:51 +0000
commit7fb312ccd7d62a151a35ba70decb722aa9193115 (patch)
treef91712b8d54eda77035a4a44cafee877de63d608
parent4a66bdf29443607ae01c1a6c87b657f89d3a1769 (diff)
Fix use of ISSI driver config before init (#16493)
-rw-r--r--tmk_core/protocol/arm_atsam/i2c_master.c3
-rw-r--r--tmk_core/protocol/arm_atsam/main_arm_atsam.c2
-rw-r--r--tmk_core/protocol/arm_atsam/md_rgb_matrix.c6
3 files changed, 9 insertions, 2 deletions
diff --git a/tmk_core/protocol/arm_atsam/i2c_master.c b/tmk_core/protocol/arm_atsam/i2c_master.c
index 6b0b9a703b..07ffcc8172 100644
--- a/tmk_core/protocol/arm_atsam/i2c_master.c
+++ b/tmk_core/protocol/arm_atsam/i2c_master.c
@@ -297,6 +297,9 @@ uint8_t I2C3733_Init_Drivers(void) {
     if (gcr_actual > LED_GCR_MAX) gcr_actual = LED_GCR_MAX;
     gcr_desired = gcr_actual;
 
+    void issi3733_prepare_arrays(void);
+    issi3733_prepare_arrays();
+
     // Set up master device
     i2c_led_send_CRWL(0);
     i2c_led_select_page(0, 3);
diff --git a/tmk_core/protocol/arm_atsam/main_arm_atsam.c b/tmk_core/protocol/arm_atsam/main_arm_atsam.c
index d092da8682..8ee9e042e7 100644
--- a/tmk_core/protocol/arm_atsam/main_arm_atsam.c
+++ b/tmk_core/protocol/arm_atsam/main_arm_atsam.c
@@ -300,8 +300,6 @@ int main(void) {
     i2c1_init();
 #endif // RGB_MATRIX_ENABLE
 
-    matrix_init();
-
     USB_Hub_init();
 
     DBGC(DC_MAIN_UDC_START_BEGIN);
diff --git a/tmk_core/protocol/arm_atsam/md_rgb_matrix.c b/tmk_core/protocol/arm_atsam/md_rgb_matrix.c
index 84ce3ee24b..3ed83a44a6 100644
--- a/tmk_core/protocol/arm_atsam/md_rgb_matrix.c
+++ b/tmk_core/protocol/arm_atsam/md_rgb_matrix.c
@@ -206,6 +206,12 @@ void gcr_compute(void) {
 }
 
 void issi3733_prepare_arrays(void) {
+    static bool s_init = false;
+    if (s_init) {
+        return;
+    }
+    s_init = true;
+
     memset(issidrv, 0, sizeof(issi3733_driver_t) * ISSI3733_DRIVER_COUNT);
 
     int     i;