summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorMiika Pekkarinen <miipekk@ihme.org>2005-06-19 10:12:11 +0000
committerMiika Pekkarinen <miipekk@ihme.org>2005-06-19 10:12:11 +0000
commit6b3a14a7fd1a9c2ebcb07871afddde5d4e1a0515 (patch)
tree90b8c22d209428bcbb25b6a0197df826aa48fe9c /firmware
parent0a81bb344e50a84d7ac21b093a8fd82f700ceb4d (diff)
downloadrockbox-6b3a14a7fd1a9c2ebcb07871afddde5d4e1a0515.tar.gz
rockbox-6b3a14a7fd1a9c2ebcb07871afddde5d4e1a0515.zip
Only stop backlight pwm timer if display is fully dimmed either
on or off. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6765 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/backlight.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/firmware/backlight.c b/firmware/backlight.c
index 84d3f1a31e..699b3bffa5 100644
--- a/firmware/backlight.c
+++ b/firmware/backlight.c
@@ -63,7 +63,6 @@ static unsigned int remote_backlight_timeout = 5;
63#define BL_PWM_COUNT 100 63#define BL_PWM_COUNT 100
64/* Cycle interval in ms */ 64/* Cycle interval in ms */
65#define BL_PWM_INTERVAL 5000 65#define BL_PWM_INTERVAL 5000
66#define BL_PWM_INTERVAL_IDLE 500000
67#define BL_DIM_SPEED 4 66#define BL_DIM_SPEED 4
68#define __backlight_on __backlight_fade_in 67#define __backlight_on __backlight_fade_in
69#define __backlight_off __backlight_fade_out 68#define __backlight_off __backlight_fade_out
@@ -116,6 +115,7 @@ void TIMER1(void) __attribute__ ((interrupt_handler));
116void TIMER1(void) 115void TIMER1(void)
117{ 116{
118 int timer_period; 117 int timer_period;
118 bool idle = false;
119#ifdef HAVE_REMOTE_LCD_DIMMABLE 119#ifdef HAVE_REMOTE_LCD_DIMMABLE
120 int new_timer_period; 120 int new_timer_period;
121#endif 121#endif
@@ -133,6 +133,7 @@ void TIMER1(void)
133 timer_period = timer_period * bl_pwm_counter / BL_PWM_COUNT; 133 timer_period = timer_period * bl_pwm_counter / BL_PWM_COUNT;
134 bl_dim_state = DIM_STATE_MAIN; 134 bl_dim_state = DIM_STATE_MAIN;
135 } else { 135 } else {
136 idle = true;
136 if (bl_dim_current) 137 if (bl_dim_current)
137 GPIO1_OUT &= ~0x00020000; 138 GPIO1_OUT &= ~0x00020000;
138 else 139 else
@@ -144,6 +145,7 @@ void TIMER1(void)
144 bl_pwm_remote_counter = 0; 145 bl_pwm_remote_counter = 0;
145 if (bl_dim_remote_current > 0 && 146 if (bl_dim_remote_current > 0 &&
146 bl_dim_remote_current < BL_PWM_COUNT) { 147 bl_dim_remote_current < BL_PWM_COUNT) {
148 idle = false;
147 GPIO_OUT &= ~0x00000800; 149 GPIO_OUT &= ~0x00000800;
148 bl_pwm_remote_counter = bl_dim_remote_current; 150 bl_pwm_remote_counter = bl_dim_remote_current;
149 if (bl_dim_state == DIM_STATE_START) { 151 if (bl_dim_state == DIM_STATE_START) {
@@ -204,7 +206,6 @@ void TIMER1(void)
204 } 206 }
205 207
206 if (bl_cycle_counter >= BL_DIM_SPEED) { 208 if (bl_cycle_counter >= BL_DIM_SPEED) {
207 bool idle = true;
208 if (bl_dim_target > bl_dim_current) { 209 if (bl_dim_target > bl_dim_current) {
209 bl_dim_current++; 210 bl_dim_current++;
210 idle = false; 211 idle = false;