diff --git a/lib/drivers/rgb_backlight.c b/lib/drivers/rgb_backlight.c index 7fcb3a472..097fa30de 100644 --- a/lib/drivers/rgb_backlight.c +++ b/lib/drivers/rgb_backlight.c @@ -228,6 +228,9 @@ void rgb_backlight_reconfigure(bool enabled) { rgb_state.rainbow_hsv.s = rgb_settings.rainbow_saturation; rgb_backlight_update(rgb_state.last_brightness, false); + if(rgb_state.enabled && rgb_settings.rainbow_mode == RGBBacklightRainbowModeOff) + SK6805_update(); + furi_check(furi_mutex_release(rgb_state.mutex) == FuriStatusOk); } @@ -286,8 +289,10 @@ void rgb_backlight_update(uint8_t brightness, bool tick) { return; } + bool brightness_changed = brightness != rgb_state.last_brightness; rgb_state.last_brightness = brightness; - SK6805_update(); + if(rgb_settings.rainbow_mode != RGBBacklightRainbowModeOff || brightness_changed) + SK6805_update(); furi_check(furi_mutex_release(rgb_state.mutex) == FuriStatusOk); }