Przeglądaj źródła

Fix use of ISSI driver config before init (#16493)

Joel Challis 3 lat temu
rodzic
commit
7fb312ccd7

+ 3 - 0
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);

+ 0 - 2
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);

+ 6 - 0
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;