summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2008-12-02 12:43:20 +0000
committerMichael Sevakis <jethead71@rockbox.org>2008-12-02 12:43:20 +0000
commitc96c2f476d9d3bfe0c7c3a6f682f820249d86c1c (patch)
tree98ca0c3427343c122bbe529ef5c088711bd1365d
parent8c442b6b12a4131fdbaf211a8e423abe673d491f (diff)
downloadrockbox-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
-rw-r--r--firmware/target/arm/s3c2440/gigabeat-fx/backlight-meg-fx.c20
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
33static 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. */
35static 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
36static void led_control_service(void); 39static 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
395void _buttonlight_set_brightness(int brightness) 398void _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
405bool _backlight_init(void) 406bool _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);