diff options
-rw-r--r-- | firmware/target/arm/s3c2440/gigabeat-fx/backlight-meg-fx.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/firmware/target/arm/s3c2440/gigabeat-fx/backlight-meg-fx.c b/firmware/target/arm/s3c2440/gigabeat-fx/backlight-meg-fx.c index 913deab371..076c06b0d8 100644 --- a/firmware/target/arm/s3c2440/gigabeat-fx/backlight-meg-fx.c +++ b/firmware/target/arm/s3c2440/gigabeat-fx/backlight-meg-fx.c | |||
@@ -28,9 +28,10 @@ | |||
28 | #define BUTTONLIGHT_MENU (SC606_LED_B1) | 28 | #define BUTTONLIGHT_MENU (SC606_LED_B1) |
29 | #define BUTTONLIGHT_ALL (SC606_LED_B1 | SC606_LED_B2 | SC606_LED_C1 | SC606_LED_C2) | 29 | #define BUTTONLIGHT_ALL (SC606_LED_B1 | SC606_LED_B2 | SC606_LED_C1 | SC606_LED_C2) |
30 | 30 | ||
31 | static const int log_brightness[12] = {0,1,2,3,5,7,10,15,22,31,44,63}; | ||
32 | |||
31 | #ifndef BOOTLOADER | 33 | #ifndef BOOTLOADER |
32 | static void led_control_service(void); | 34 | static void led_control_service(void); |
33 | const int log_brightness[12] = {0,1,2,3,5,7,10,15,22,31,44,63}; | ||
34 | 35 | ||
35 | static enum sc606_states | 36 | static enum sc606_states |
36 | { | 37 | { |
@@ -390,8 +391,11 @@ void _buttonlight_off(void) | |||
390 | 391 | ||
391 | void _buttonlight_set_brightness(int brightness) | 392 | void _buttonlight_set_brightness(int brightness) |
392 | { | 393 | { |
394 | /* clamp the brightness value */ | ||
395 | brightness = MAX(1, MIN(12, brightness)); | ||
396 | /* stop the interrupt from messing us up */ | ||
393 | buttonlight_control = BUTTONLIGHT_CONTROL_IDLE; | 397 | buttonlight_control = BUTTONLIGHT_CONTROL_IDLE; |
394 | buttonlight_brightness = brightness; | 398 | buttonlight_brightness = log_brightness[brightness - 1]; |
395 | buttonlight_control = BUTTONLIGHT_CONTROL_SET; | 399 | buttonlight_control = BUTTONLIGHT_CONTROL_SET; |
396 | } | 400 | } |
397 | 401 | ||