diff options
Diffstat (limited to 'quantum/backlight/backlight.c')
| -rw-r--r-- | quantum/backlight/backlight.c | 21 | 
1 files changed, 14 insertions, 7 deletions
| diff --git a/quantum/backlight/backlight.c b/quantum/backlight/backlight.c index e89b34696c..eb64dd71e8 100644 --- a/quantum/backlight/backlight.c +++ b/quantum/backlight/backlight.c @@ -42,20 +42,26 @@ backlight_config_t backlight_config;  static uint8_t breathing_period = BREATHING_PERIOD;  #endif +static void backlight_check_config(void) { +    /* Add some out of bound checks for backlight config */ + +    if (backlight_config.level > BACKLIGHT_LEVELS) { +        backlight_config.level = BACKLIGHT_LEVELS; +    } +} +  /** \brief Backlight initialization   *   * FIXME: needs doc   */  void backlight_init(void) { -    /* check signature */ -    if (!eeconfig_is_enabled()) { -        eeconfig_init(); -        eeconfig_update_backlight_default(); -    }      backlight_config.raw = eeconfig_read_backlight(); -    if (backlight_config.level > BACKLIGHT_LEVELS) { -        backlight_config.level = BACKLIGHT_LEVELS; +    if (!backlight_config.valid) { +        dprintf("backlight_init backlight_config.valid = 0. Write default values to EEPROM.\n"); +        eeconfig_update_backlight_default();      } +    backlight_check_config(); +      backlight_set(backlight_config.enable ? backlight_config.level : 0);  } @@ -183,6 +189,7 @@ void eeconfig_update_backlight_current(void) {  }  void eeconfig_update_backlight_default(void) { +    backlight_config.valid     = true;      backlight_config.enable    = BACKLIGHT_DEFAULT_ON;      backlight_config.breathing = BACKLIGHT_DEFAULT_BREATHING;      backlight_config.level     = BACKLIGHT_DEFAULT_LEVEL; | 
