diff options
Diffstat (limited to 'tmk_core/common/backlight.c')
-rw-r--r-- | tmk_core/common/backlight.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/tmk_core/common/backlight.c b/tmk_core/common/backlight.c index d03bfe931..4d2491b98 100644 --- a/tmk_core/common/backlight.c +++ b/tmk_core/common/backlight.c | |||
@@ -61,6 +61,8 @@ void backlight_decrease(void) | |||
61 | void backlight_toggle(void) | 61 | void backlight_toggle(void) |
62 | { | 62 | { |
63 | backlight_config.enable ^= 1; | 63 | backlight_config.enable ^= 1; |
64 | if (backlight_config.raw == 1) // enabled but level = 0 | ||
65 | backlight_config.level = 1; | ||
64 | eeconfig_update_backlight(backlight_config.raw); | 66 | eeconfig_update_backlight(backlight_config.raw); |
65 | dprintf("backlight toggle: %u\n", backlight_config.enable); | 67 | dprintf("backlight toggle: %u\n", backlight_config.enable); |
66 | backlight_set(backlight_config.enable ? backlight_config.level : 0); | 68 | backlight_set(backlight_config.enable ? backlight_config.level : 0); |
@@ -81,7 +83,9 @@ void backlight_step(void) | |||
81 | 83 | ||
82 | void backlight_level(uint8_t level) | 84 | void backlight_level(uint8_t level) |
83 | { | 85 | { |
84 | backlight_config.level ^= level; | 86 | if (level > BACKLIGHT_LEVELS) |
87 | level = BACKLIGHT_LEVELS; | ||
88 | backlight_config.level = level; | ||
85 | backlight_config.enable = !!backlight_config.level; | 89 | backlight_config.enable = !!backlight_config.level; |
86 | eeconfig_update_backlight(backlight_config.raw); | 90 | eeconfig_update_backlight(backlight_config.raw); |
87 | backlight_set(backlight_config.level); | 91 | backlight_set(backlight_config.level); |