summaryrefslogtreecommitdiff
path: root/firmware/target/arm/sandisk/sansa-e200/backlight-e200.c
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2007-06-07 06:11:03 +0000
committerMichael Sevakis <jethead71@rockbox.org>2007-06-07 06:11:03 +0000
commit7a16069507a290a1aab84165aa0fb6f8ee4f1b59 (patch)
tree8258e42933fac463e9b6eba54d6a8203ca6e6df4 /firmware/target/arm/sandisk/sansa-e200/backlight-e200.c
parent66f42ac12dbfdaa70f5440c16567c53205aed059 (diff)
downloadrockbox-7a16069507a290a1aab84165aa0fb6f8ee4f1b59.tar.gz
rockbox-7a16069507a290a1aab84165aa0fb6f8ee4f1b59.zip
e200: Better sync of display enabling and display update. The display would be remain stale after being turned back on with no screen activity. Block out the fiddling with DMA when writing to driver framebuffer. Melts seem too rare to catch now. There seems to be no significant advantage from an appearance point of view to be meddling around with the transfer anyway.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13582 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/sandisk/sansa-e200/backlight-e200.c')
-rw-r--r--firmware/target/arm/sandisk/sansa-e200/backlight-e200.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/firmware/target/arm/sandisk/sansa-e200/backlight-e200.c b/firmware/target/arm/sandisk/sansa-e200/backlight-e200.c
index b608c1b9e6..29c6ab4b45 100644
--- a/firmware/target/arm/sandisk/sansa-e200/backlight-e200.c
+++ b/firmware/target/arm/sandisk/sansa-e200/backlight-e200.c
@@ -23,32 +23,27 @@
23#include "i2c-pp.h" 23#include "i2c-pp.h"
24 24
25static unsigned short backlight_brightness = DEFAULT_BRIGHTNESS_SETTING; 25static unsigned short backlight_brightness = DEFAULT_BRIGHTNESS_SETTING;
26static bool backlight_is_on = true;
27
28int __backlight_is_on(void)
29{
30 return (int)backlight_is_on;
31}
32 26
33void __backlight_set_brightness(int brightness) 27void __backlight_set_brightness(int brightness)
34{ 28{
35 backlight_brightness = brightness; 29 backlight_brightness = brightness;
36 pp_i2c_send( 0x46, 0x23, backlight_brightness); 30
37 backlight_is_on = true; 31 if (brightness > 0)
32 __backlight_on();
33 else
34 __backlight_off();
38} 35}
39 36
40void __backlight_on(void) 37void __backlight_on(void)
41{ 38{
42 lcd_enable(true); /* power on lcd */ 39 lcd_enable(true); /* power on lcd */
43 pp_i2c_send( 0x46, 0x23, backlight_brightness); 40 pp_i2c_send( 0x46, 0x23, backlight_brightness);
44 backlight_is_on = true;
45} 41}
46 42
47void __backlight_off(void) 43void __backlight_off(void)
48{ 44{
49 pp_i2c_send( 0x46, 0x23, 0x0); 45 pp_i2c_send( 0x46, 0x23, 0x0);
50 lcd_enable(false); /* power off lcd */ 46 lcd_enable(false); /* power off lcd */
51 backlight_is_on = false;
52} 47}
53 48
54 49