summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--quantum/led_matrix.c24
1 files changed, 6 insertions, 18 deletions
diff --git a/quantum/led_matrix.c b/quantum/led_matrix.c
index f849d478dd..2709de1123 100644
--- a/quantum/led_matrix.c
+++ b/quantum/led_matrix.c
@@ -82,7 +82,7 @@ void eeconfig_update_led_matrix_default(void) {
eeconfig_update_led_matrix(led_matrix_config.raw);
}
void eeconfig_debug_led_matrix(void) {
- dprintf("led_matrix_config eprom\n");
+ dprintf("led_matrix_config eeprom\n");
dprintf("led_matrix_config.enable = %d\n", led_matrix_config.enable);
dprintf("led_matrix_config.mode = %d\n", led_matrix_config.mode);
dprintf("led_matrix_config.val = %d\n", led_matrix_config.val);
@@ -176,21 +176,12 @@ void led_matrix_task(void) {
return;
}
- // delay 1 second before driving LEDs or doing anything else
- // FIXME: Can't we use wait_ms() here?
- static uint8_t startup_tick = 0;
- if (startup_tick < 20) {
- startup_tick++;
- return;
- }
-
g_tick++;
if (g_any_key_hit < 0xFFFFFFFF) {
g_any_key_hit++;
}
-/* FIXME: WHY YOU COMMENT OUT?!
for (int led = 0; led < LED_DRIVER_LED_COUNT; led++) {
if (g_key_hit[led] < 255) {
if (g_key_hit[led] == 254)
@@ -199,12 +190,6 @@ void led_matrix_task(void) {
}
}
- // Factory default magic value
- if (led_matrix_config.mode == 255) {
- led_matrix_uniform_brightness();
- return;
- }
-*/
// Ideally we would also stop sending zeros to the LED driver PWM buffers
// while suspended and just do a software shutdown. This is a cheap hack for now.
bool suspend_backlight = ((g_suspend_state && LED_DISABLE_WHEN_USB_SUSPENDED) ||
@@ -263,25 +248,28 @@ void led_matrix_indicators_user(void) {}
void led_matrix_init(void) {
led_matrix_driver.init();
- // TODO: put the 1 second startup delay here?
+ // Wait a second for the driver to finish initializing
+ wait_ms(1000);
// clear the key hits
for (int led=0; led<LED_DRIVER_LED_COUNT; led++) {
g_key_hit[led] = 255;
}
-
if (!eeconfig_is_enabled()) {
dprintf("led_matrix_init_drivers eeconfig is not enabled.\n");
eeconfig_init();
eeconfig_update_led_matrix_default();
}
+
led_matrix_config.raw = eeconfig_read_led_matrix();
+
if (!led_matrix_config.mode) {
dprintf("led_matrix_init_drivers led_matrix_config.mode = 0. Write default values to EEPROM.\n");
eeconfig_update_led_matrix_default();
led_matrix_config.raw = eeconfig_read_led_matrix();
}
+
eeconfig_debug_led_matrix(); // display current eeprom values
}