diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2008-12-02 12:43:20 +0000 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2008-12-02 12:43:20 +0000 |
commit | c96c2f476d9d3bfe0c7c3a6f682f820249d86c1c (patch) | |
tree | 98ca0c3427343c122bbe529ef5c088711bd1365d /firmware/target/arm/s3c2440 | |
parent | 8c442b6b12a4131fdbaf211a8e423abe673d491f (diff) | |
download | rockbox-c96c2f476d9d3bfe0c7c3a6f682f820249d86c1c.tar.gz rockbox-c96c2f476d9d3bfe0c7c3a6f682f820249d86c1c.zip |
Meg-FX: Do a bit of LED service simplification and save a tiny bit of code size.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19300 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/s3c2440')
-rw-r--r-- | firmware/target/arm/s3c2440/gigabeat-fx/backlight-meg-fx.c | 20 |
1 files changed, 11 insertions, 9 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 db32aa189a..2d8fad5555 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,12 @@ | |||
28 | #include "power.h" | 28 | #include "power.h" |
29 | 29 | ||
30 | #define BUTTONLIGHT_MENU (SC606_LED_B1) | 30 | #define BUTTONLIGHT_MENU (SC606_LED_B1) |
31 | #define BUTTONLIGHT_ALL (SC606_LED_B1 | SC606_LED_B2 | SC606_LED_C1 | SC606_LED_C2) | 31 | #define BUTTONLIGHT_ALL (SC606_LED_B1 | SC606_LED_B2 | \ |
32 | SC606_LED_C1 | SC606_LED_C2) | ||
32 | 33 | ||
33 | static const int log_brightness[12] = {0,1,2,3,5,7,10,15,22,31,44,63}; | 34 | /* Dummy value at index 0, 1-12 used. */ |
35 | static const unsigned char log_brightness[13] = | ||
36 | {0,0,1,2,3,5,7,10,15,22,31,44,63}; | ||
34 | 37 | ||
35 | #ifndef BOOTLOADER | 38 | #ifndef BOOTLOADER |
36 | static void led_control_service(void); | 39 | static void led_control_service(void); |
@@ -75,7 +78,7 @@ void _backlight_set_brightness(int brightness) | |||
75 | { | 78 | { |
76 | /* stop the interrupt from messing us up */ | 79 | /* stop the interrupt from messing us up */ |
77 | backlight_control = BACKLIGHT_CONTROL_IDLE; | 80 | backlight_control = BACKLIGHT_CONTROL_IDLE; |
78 | _backlight_brightness = log_brightness[brightness - 1]; | 81 | _backlight_brightness = log_brightness[brightness]; |
79 | backlight_control = BACKLIGHT_CONTROL_SET; | 82 | backlight_control = BACKLIGHT_CONTROL_SET; |
80 | } | 83 | } |
81 | 84 | ||
@@ -394,25 +397,24 @@ void _buttonlight_off(void) | |||
394 | 397 | ||
395 | void _buttonlight_set_brightness(int brightness) | 398 | void _buttonlight_set_brightness(int brightness) |
396 | { | 399 | { |
397 | /* clamp the brightness value */ | ||
398 | brightness = MAX(1, MIN(12, brightness)); | ||
399 | /* stop the interrupt from messing us up */ | 400 | /* stop the interrupt from messing us up */ |
400 | buttonlight_control = BUTTONLIGHT_CONTROL_IDLE; | 401 | buttonlight_control = BUTTONLIGHT_CONTROL_IDLE; |
401 | buttonlight_brightness = log_brightness[brightness - 1]; | 402 | buttonlight_brightness = log_brightness[brightness]; |
402 | buttonlight_control = BUTTONLIGHT_CONTROL_SET; | 403 | buttonlight_control = BUTTONLIGHT_CONTROL_SET; |
403 | } | 404 | } |
404 | 405 | ||
405 | bool _backlight_init(void) | 406 | bool _backlight_init(void) |
406 | { | 407 | { |
407 | buttonlight_brightness = log_brightness[DEFAULT_BRIGHTNESS_SETTING-1]; | 408 | unsigned char brightness = log_brightness[DEFAULT_BRIGHTNESS_SETTING]; |
408 | _backlight_brightness = log_brightness[DEFAULT_BRIGHTNESS_SETTING-1]; | 409 | buttonlight_brightness = brightness; |
410 | _backlight_brightness = brightness; | ||
409 | 411 | ||
410 | buttonlight_control = BUTTONLIGHT_CONTROL_IDLE; | 412 | buttonlight_control = BUTTONLIGHT_CONTROL_IDLE; |
411 | backlight_control = BACKLIGHT_CONTROL_ON; | 413 | backlight_control = BACKLIGHT_CONTROL_ON; |
412 | 414 | ||
413 | /* Set the backlight up in a known state */ | 415 | /* Set the backlight up in a known state */ |
414 | sc606_init(); | 416 | sc606_init(); |
415 | sc606_write(SC606_REG_A , _backlight_brightness); | 417 | sc606_write(SC606_REG_A , brightness); |
416 | sc606_write(SC606_REG_B , 0); | 418 | sc606_write(SC606_REG_B , 0); |
417 | sc606_write(SC606_REG_C , 0); | 419 | sc606_write(SC606_REG_C , 0); |
418 | sc606_write(SC606_REG_CONF , 0x03); | 420 | sc606_write(SC606_REG_CONF , 0x03); |