diff options
Diffstat (limited to 'firmware/target/arm')
12 files changed, 43 insertions, 24 deletions
diff --git a/firmware/target/arm/as3525/sansa-c200v2/lcd-c200v2.c b/firmware/target/arm/as3525/sansa-c200v2/lcd-c200v2.c index 2fc3e1f6c5..88adcd9d96 100644 --- a/firmware/target/arm/as3525/sansa-c200v2/lcd-c200v2.c +++ b/firmware/target/arm/as3525/sansa-c200v2/lcd-c200v2.c | |||
@@ -322,7 +322,7 @@ void lcd_enable(bool on) | |||
322 | if(on) | 322 | if(on) |
323 | { | 323 | { |
324 | _display_on(); | 324 | _display_on(); |
325 | lcd_call_enable_hook(); | 325 | lcd_activation_call_hook(); |
326 | } | 326 | } |
327 | else | 327 | else |
328 | { | 328 | { |
@@ -332,7 +332,7 @@ void lcd_enable(bool on) | |||
332 | } | 332 | } |
333 | } | 333 | } |
334 | 334 | ||
335 | bool lcd_enabled(void) | 335 | bool lcd_active(void) |
336 | { | 336 | { |
337 | return display_on; | 337 | return display_on; |
338 | } | 338 | } |
diff --git a/firmware/target/arm/as3525/sansa-clip/lcd-ssd1303.c b/firmware/target/arm/as3525/sansa-clip/lcd-ssd1303.c index bfa02e796d..640f6694c9 100644 --- a/firmware/target/arm/as3525/sansa-clip/lcd-ssd1303.c +++ b/firmware/target/arm/as3525/sansa-clip/lcd-ssd1303.c | |||
@@ -159,22 +159,43 @@ void lcd_set_flip(bool yesno) | |||
159 | } | 159 | } |
160 | } | 160 | } |
161 | 161 | ||
162 | #ifdef HAVE_LCD_ENABLE | ||
163 | static void (*lcd_activation_hook)(void) = NULL; | ||
164 | |||
165 | void lcd_activation_set_hook(void (*func)(void)) | ||
166 | { | ||
167 | lcd_activation_hook = func; | ||
168 | } | ||
169 | |||
170 | void lcd_activation_call_hook(void) | ||
171 | { | ||
172 | void (*func)(void) = lcd_activation_hook; | ||
173 | |||
174 | if (func != NULL) | ||
175 | func(); | ||
176 | } | ||
177 | |||
178 | |||
162 | void lcd_enable(bool enable) | 179 | void lcd_enable(bool enable) |
163 | { | 180 | { |
164 | if(display_on == enable) | 181 | if(display_on == enable) |
165 | return; | 182 | return; |
166 | 183 | ||
167 | if( (display_on = enable) ) /* simple '=' is not a typo ! */ | 184 | if( (display_on = enable) ) /* simple '=' is not a typo ! */ |
185 | { | ||
168 | lcd_write_command(LCD_SET_DISPLAY_ON); | 186 | lcd_write_command(LCD_SET_DISPLAY_ON); |
187 | lcd_activation_call_hook(); | ||
188 | } | ||
169 | else | 189 | else |
170 | lcd_write_command(LCD_SET_DISPLAY_OFF); | 190 | lcd_write_command(LCD_SET_DISPLAY_OFF); |
171 | } | 191 | } |
172 | 192 | ||
173 | bool lcd_enabled(void) | 193 | bool lcd_active(void) |
174 | { | 194 | { |
175 | return display_on; | 195 | return display_on; |
176 | } | 196 | } |
177 | 197 | ||
198 | #endif | ||
178 | 199 | ||
179 | /* LCD init, largely based on what OF does */ | 200 | /* LCD init, largely based on what OF does */ |
180 | void lcd_init_device(void) | 201 | void lcd_init_device(void) |
diff --git a/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c b/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c index 57d5649570..8715622717 100644 --- a/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c +++ b/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c | |||
@@ -328,7 +328,7 @@ void lcd_enable(bool on) | |||
328 | if(on) | 328 | if(on) |
329 | { | 329 | { |
330 | _display_on(); | 330 | _display_on(); |
331 | lcd_call_enable_hook(); | 331 | lcd_activation_call_hook(); |
332 | } | 332 | } |
333 | else | 333 | else |
334 | { | 334 | { |
@@ -338,7 +338,7 @@ void lcd_enable(bool on) | |||
338 | } | 338 | } |
339 | } | 339 | } |
340 | 340 | ||
341 | bool lcd_enabled(void) | 341 | bool lcd_active(void) |
342 | { | 342 | { |
343 | return display_on; | 343 | return display_on; |
344 | } | 344 | } |
diff --git a/firmware/target/arm/as3525/sansa-fuze/lcd-fuze.c b/firmware/target/arm/as3525/sansa-fuze/lcd-fuze.c index 44451133ca..5196784a2f 100644 --- a/firmware/target/arm/as3525/sansa-fuze/lcd-fuze.c +++ b/firmware/target/arm/as3525/sansa-fuze/lcd-fuze.c | |||
@@ -206,6 +206,7 @@ void lcd_enable(bool on) | |||
206 | /* a bit of delay before returning to | 206 | /* a bit of delay before returning to |
207 | * avoid irritating flash on backlight on */ | 207 | * avoid irritating flash on backlight on */ |
208 | while(delay--); | 208 | while(delay--); |
209 | lcd_activation_call_hook(); | ||
209 | 210 | ||
210 | } | 211 | } |
211 | else | 212 | else |
@@ -217,7 +218,7 @@ void lcd_enable(bool on) | |||
217 | } | 218 | } |
218 | } | 219 | } |
219 | 220 | ||
220 | bool lcd_enabled(void) | 221 | bool lcd_active(void) |
221 | { | 222 | { |
222 | return display_on; | 223 | return display_on; |
223 | } | 224 | } |
diff --git a/firmware/target/arm/imx31/gigabeat-s/lcd-imx31.c b/firmware/target/arm/imx31/gigabeat-s/lcd-imx31.c index 47834b3b19..bddf03c5f6 100644 --- a/firmware/target/arm/imx31/gigabeat-s/lcd-imx31.c +++ b/firmware/target/arm/imx31/gigabeat-s/lcd-imx31.c | |||
@@ -121,7 +121,7 @@ void lcd_enable(bool state) | |||
121 | lcd_powered = true; | 121 | lcd_powered = true; |
122 | lcd_on = true; | 122 | lcd_on = true; |
123 | lcd_update(); | 123 | lcd_update(); |
124 | lcd_call_enable_hook(); | 124 | lcd_activation_call_hook(); |
125 | } | 125 | } |
126 | else | 126 | else |
127 | { | 127 | { |
@@ -129,7 +129,7 @@ void lcd_enable(bool state) | |||
129 | } | 129 | } |
130 | } | 130 | } |
131 | 131 | ||
132 | bool lcd_enabled(void) | 132 | bool lcd_active(void) |
133 | { | 133 | { |
134 | return lcd_on; | 134 | return lcd_on; |
135 | } | 135 | } |
diff --git a/firmware/target/arm/ipod/video/lcd-video.c b/firmware/target/arm/ipod/video/lcd-video.c index d1701ea3d7..c0e98cf53c 100644 --- a/firmware/target/arm/ipod/video/lcd-video.c +++ b/firmware/target/arm/ipod/video/lcd-video.c | |||
@@ -575,10 +575,7 @@ void lcd_awake(void) | |||
575 | lcd_state.state = LCD_INITIAL; | 575 | lcd_state.state = LCD_INITIAL; |
576 | tick_add_task(&lcd_tick); | 576 | tick_add_task(&lcd_tick); |
577 | lcd_state.display_on = true; | 577 | lcd_state.display_on = true; |
578 | /* Note that only the RGB data from lcd_framebuffer has been | 578 | lcd_activation_call_hook(); |
579 | displayed. If YUV data was displayed, it needs to be updated | ||
580 | now. (eg. see lcd_call_enable_hook()) | ||
581 | */ | ||
582 | } | 579 | } |
583 | mutex_unlock(&lcdstate_lock); | 580 | mutex_unlock(&lcdstate_lock); |
584 | } | 581 | } |
diff --git a/firmware/target/arm/iriver/h10/lcd-h10_20gb.c b/firmware/target/arm/iriver/h10/lcd-h10_20gb.c index ffd8ab69ec..03a398af8d 100644 --- a/firmware/target/arm/iriver/h10/lcd-h10_20gb.c +++ b/firmware/target/arm/iriver/h10/lcd-h10_20gb.c | |||
@@ -363,7 +363,7 @@ void lcd_enable(bool on) | |||
363 | /* Probably out of sync and we don't wanna pepper the code with | 363 | /* Probably out of sync and we don't wanna pepper the code with |
364 | lcd_update() calls for this. */ | 364 | lcd_update() calls for this. */ |
365 | lcd_update(); | 365 | lcd_update(); |
366 | lcd_call_enable_hook(); | 366 | lcd_activation_call_hook(); |
367 | } | 367 | } |
368 | else | 368 | else |
369 | { | 369 | { |
@@ -371,7 +371,7 @@ void lcd_enable(bool on) | |||
371 | } | 371 | } |
372 | } | 372 | } |
373 | 373 | ||
374 | bool lcd_enabled(void) | 374 | bool lcd_active(void) |
375 | { | 375 | { |
376 | return display_on; | 376 | return display_on; |
377 | } | 377 | } |
diff --git a/firmware/target/arm/s3c2440/gigabeat-fx/lcd-meg-fx.c b/firmware/target/arm/s3c2440/gigabeat-fx/lcd-meg-fx.c index d9a28d152f..fd52eda5e9 100644 --- a/firmware/target/arm/s3c2440/gigabeat-fx/lcd-meg-fx.c +++ b/firmware/target/arm/s3c2440/gigabeat-fx/lcd-meg-fx.c | |||
@@ -42,7 +42,7 @@ extern struct viewport* current_vp; | |||
42 | extern void lcd_copy_buffer_rect(fb_data *dst, const fb_data *src, | 42 | extern void lcd_copy_buffer_rect(fb_data *dst, const fb_data *src, |
43 | int width, int height); | 43 | int width, int height); |
44 | 44 | ||
45 | bool lcd_enabled(void) | 45 | bool lcd_active(void) |
46 | { | 46 | { |
47 | return lcd_on; | 47 | return lcd_on; |
48 | } | 48 | } |
@@ -308,7 +308,7 @@ void lcd_enable(bool state) | |||
308 | 308 | ||
309 | lcd_on = true; | 309 | lcd_on = true; |
310 | lcd_update(); | 310 | lcd_update(); |
311 | lcd_call_enable_hook(); | 311 | lcd_activation_call_hook(); |
312 | } | 312 | } |
313 | else | 313 | else |
314 | { | 314 | { |
diff --git a/firmware/target/arm/sandisk/sansa-e200/lcd-e200.c b/firmware/target/arm/sandisk/sansa-e200/lcd-e200.c index e477f4fd45..e1a4d738d7 100644 --- a/firmware/target/arm/sandisk/sansa-e200/lcd-e200.c +++ b/firmware/target/arm/sandisk/sansa-e200/lcd-e200.c | |||
@@ -438,7 +438,7 @@ void lcd_enable(bool on) | |||
438 | DEV_EN |= DEV_LCD; /* Enable LCD controller */ | 438 | DEV_EN |= DEV_LCD; /* Enable LCD controller */ |
439 | lcd_display_on(); /* Turn on display */ | 439 | lcd_display_on(); /* Turn on display */ |
440 | lcd_update(); /* Resync display */ | 440 | lcd_update(); /* Resync display */ |
441 | lcd_call_enable_hook(); | 441 | lcd_activation_call_hook(); |
442 | LCD_REG_6 |= 1; /* Restart DMA */ | 442 | LCD_REG_6 |= 1; /* Restart DMA */ |
443 | sleep(HZ/50); /* Wait for a frame to be written */ | 443 | sleep(HZ/50); /* Wait for a frame to be written */ |
444 | } | 444 | } |
@@ -451,7 +451,7 @@ void lcd_enable(bool on) | |||
451 | } | 451 | } |
452 | } | 452 | } |
453 | 453 | ||
454 | bool lcd_enabled(void) | 454 | bool lcd_active(void) |
455 | { | 455 | { |
456 | return display_on; | 456 | return display_on; |
457 | } | 457 | } |
diff --git a/firmware/target/arm/tcc77x/iaudio7/lcd-iaudio7.c b/firmware/target/arm/tcc77x/iaudio7/lcd-iaudio7.c index 0ca18bee67..134d936e7b 100644 --- a/firmware/target/arm/tcc77x/iaudio7/lcd-iaudio7.c +++ b/firmware/target/arm/tcc77x/iaudio7/lcd-iaudio7.c | |||
@@ -143,7 +143,7 @@ void lcd_enable(bool on) | |||
143 | 143 | ||
144 | if (on) { | 144 | if (on) { |
145 | _display_on(); | 145 | _display_on(); |
146 | lcd_call_enable_hook(); | 146 | lcd_activation_call_hook(); |
147 | } else { | 147 | } else { |
148 | /** Off sequence according to datasheet, p. 130 **/ | 148 | /** Off sequence according to datasheet, p. 130 **/ |
149 | lcd_write_reg(R_FRAME_CYCLE_CONTROL, 0x0002); /* EQ=0, 18 clks/line */ | 149 | lcd_write_reg(R_FRAME_CYCLE_CONTROL, 0x0002); /* EQ=0, 18 clks/line */ |
@@ -166,7 +166,7 @@ void lcd_enable(bool on) | |||
166 | } | 166 | } |
167 | } | 167 | } |
168 | 168 | ||
169 | bool lcd_enabled(void) | 169 | bool lcd_active(void) |
170 | { | 170 | { |
171 | return display_on; | 171 | return display_on; |
172 | } | 172 | } |
diff --git a/firmware/target/arm/tcc780x/cowond2/lcd-cowond2.c b/firmware/target/arm/tcc780x/cowond2/lcd-cowond2.c index d6ee5f3649..7b64493c0a 100644 --- a/firmware/target/arm/tcc780x/cowond2/lcd-cowond2.c +++ b/firmware/target/arm/tcc780x/cowond2/lcd-cowond2.c | |||
@@ -230,7 +230,7 @@ void lcd_enable(bool on) | |||
230 | lcd_display_on(); | 230 | lcd_display_on(); |
231 | LCDC_CTRL |= 1; /* controller enable */ | 231 | LCDC_CTRL |= 1; /* controller enable */ |
232 | lcd_update(); /* Resync display */ | 232 | lcd_update(); /* Resync display */ |
233 | lcd_call_enable_hook(); | 233 | lcd_activation_call_hook(); |
234 | } | 234 | } |
235 | else | 235 | else |
236 | { | 236 | { |
@@ -239,7 +239,7 @@ void lcd_enable(bool on) | |||
239 | } | 239 | } |
240 | } | 240 | } |
241 | 241 | ||
242 | bool lcd_enabled(void) | 242 | bool lcd_active(void) |
243 | { | 243 | { |
244 | return display_on; | 244 | return display_on; |
245 | } | 245 | } |
diff --git a/firmware/target/arm/tms320dm320/creative-zvm/lcd-creativezvm.c b/firmware/target/arm/tms320dm320/creative-zvm/lcd-creativezvm.c index f34e43687a..cd07fa9e6f 100644 --- a/firmware/target/arm/tms320dm320/creative-zvm/lcd-creativezvm.c +++ b/firmware/target/arm/tms320dm320/creative-zvm/lcd-creativezvm.c | |||
@@ -237,7 +237,7 @@ return; | |||
237 | { | 237 | { |
238 | lcd_display_on(false); /* Turn on display */ | 238 | lcd_display_on(false); /* Turn on display */ |
239 | lcd_update(); /* Resync display */ | 239 | lcd_update(); /* Resync display */ |
240 | lcd_call_enable_hook(); | 240 | lcd_activation_call_hook(); |
241 | } | 241 | } |
242 | else | 242 | else |
243 | { | 243 | { |
@@ -245,7 +245,7 @@ return; | |||
245 | } | 245 | } |
246 | } | 246 | } |
247 | 247 | ||
248 | bool lcd_enabled(void) | 248 | bool lcd_active(void) |
249 | { | 249 | { |
250 | return display_on; | 250 | return display_on; |
251 | } | 251 | } |