summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorKarl Kurbjun <kkurbjun@gmail.com>2007-05-08 03:57:42 +0000
committerKarl Kurbjun <kkurbjun@gmail.com>2007-05-08 03:57:42 +0000
commit7ef0af07f17a51ed814285847f55d8d12bef67c7 (patch)
tree36684d330b0bc2ec50bc15df59ce50b28eef2763 /firmware
parentcf478758dd58ae68f53420c7425b1a08b4f93fe0 (diff)
downloadrockbox-7ef0af07f17a51ed814285847f55d8d12bef67c7.tar.gz
rockbox-7ef0af07f17a51ed814285847f55d8d12bef67c7.zip
Faster/Smoother fading on the Gigabeat
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13354 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/target/arm/s3c2440/gigabeat-fx/backlight-meg-fx.c44
1 files changed, 26 insertions, 18 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 a8f8ef5d85..7e143fee8e 100644
--- a/firmware/target/arm/s3c2440/gigabeat-fx/backlight-meg-fx.c
+++ b/firmware/target/arm/s3c2440/gigabeat-fx/backlight-meg-fx.c
@@ -188,17 +188,19 @@ static void led_control_service(void)
188 case BACKLIGHT_CONTROL_FADE: 188 case BACKLIGHT_CONTROL_FADE:
189 sc606_changed=true; 189 sc606_changed=true;
190 sc606regCONFval |= 0x03; 190 sc606regCONFval |= 0x03;
191 /* The SC606 LED driver can set the brightness in 64 steps */ 191 if(backlight_target>sc606regAval)
192 if(backlight_target==sc606regAval) 192 {
193 if(sc606regAval) 193 sc606regAval++;
194 if(backlight_target==sc606regAval)
194 backlight_control = BACKLIGHT_CONTROL_ON; 195 backlight_control = BACKLIGHT_CONTROL_ON;
195 else 196 }
196 backlight_control = BACKLIGHT_CONTROL_OFF;
197 else 197 else
198 if(backlight_target>sc606regAval) 198 {
199 sc606regAval++; 199 sc606regAval--;
200 else 200 if(backlight_target==sc606regAval)
201 sc606regAval--; 201 backlight_control = BACKLIGHT_CONTROL_OFF;
202 }
203
202 break; 204 break;
203 default: 205 default:
204 break; 206 break;
@@ -222,16 +224,19 @@ static void led_control_service(void)
222 case BUTTONLIGHT_CONTROL_FADE: 224 case BUTTONLIGHT_CONTROL_FADE:
223 sc606_changed=true; 225 sc606_changed=true;
224 sc606regCONFval |= 0x3C; 226 sc606regCONFval |= 0x3C;
225 if(buttonlight_target==sc606regBval) 227 if(buttonlight_target>sc606regBval)
226 if(sc606regBval) 228 {
229 sc606regCval=++sc606regBval;
230 if(buttonlight_target==sc606regBval)
227 buttonlight_control = BUTTONLIGHT_CONTROL_ON; 231 buttonlight_control = BUTTONLIGHT_CONTROL_ON;
228 else 232 }
229 buttonlight_control = BUTTONLIGHT_CONTROL_OFF;
230 else 233 else
231 if(buttonlight_target>sc606regBval) 234 {
232 sc606regCval=++sc606regBval; 235 sc606regCval=--sc606regBval;
233 else 236 if(buttonlight_target==sc606regBval)
234 sc606regCval=--sc606regBval; 237 buttonlight_control = BUTTONLIGHT_CONTROL_OFF;
238 }
239
235 break; 240 break;
236 default: 241 default:
237 break; 242 break;
@@ -261,7 +266,10 @@ static void led_control_service(void)
261 case SC606_CONTROL_CONF: 266 case SC606_CONTROL_CONF:
262 sc606_write(SC606_REG_CONF , sc606regCONFval); 267 sc606_write(SC606_REG_CONF , sc606regCONFval);
263 sc606_changed=false; 268 sc606_changed=false;
264 sc606_control=SC606_CONTROL_IDLE; 269 if(backlight_control != BACKLIGHT_CONTROL_IDLE && buttonlight_control != BUTTONLIGHT_CONTROL_IDLE)
270 sc606_control=SC606_CONTROL_A12;
271 else
272 sc606_control=SC606_CONTROL_IDLE;
265 break; 273 break;
266 default: 274 default:
267 sc606_control=SC606_CONTROL_A12; 275 sc606_control=SC606_CONTROL_A12;