summaryrefslogtreecommitdiff
path: root/tmk_core
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 /tmk_core
parent4a66bdf29443607ae01c1a6c87b657f89d3a1769 (diff)
downloadqmk_firmware-7fb312ccd7d62a151a35ba70decb722aa9193115.tar.gz
qmk_firmware-7fb312ccd7d62a151a35ba70decb722aa9193115.zip
Fix use of ISSI driver config before init (#16493)
Diffstat (limited to 'tmk_core')
-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;