diff options
author | Miika Pekkarinen <miipekk@ihme.org> | 2005-06-19 10:12:11 +0000 |
---|---|---|
committer | Miika Pekkarinen <miipekk@ihme.org> | 2005-06-19 10:12:11 +0000 |
commit | 6b3a14a7fd1a9c2ebcb07871afddde5d4e1a0515 (patch) | |
tree | 90b8c22d209428bcbb25b6a0197df826aa48fe9c /firmware/backlight.c | |
parent | 0a81bb344e50a84d7ac21b093a8fd82f700ceb4d (diff) | |
download | rockbox-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/backlight.c')
-rw-r--r-- | firmware/backlight.c | 5 |
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)); | |||
116 | void TIMER1(void) | 115 | void 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; |