|  |  |  | @ -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
 | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | 
 |