summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaurus Cuelenaere <mcuelenaere@gmail.com>2010-01-03 15:57:09 +0000
committerMaurus Cuelenaere <mcuelenaere@gmail.com>2010-01-03 15:57:09 +0000
commit4fdf4ad728ac93336c850c7da8966e8d00bddbf8 (patch)
treef571a9f2f5049d7da50e614a51c968539b3d30e3
parent5313bf52b54c7a02222b1787f8432f43a76e0056 (diff)
downloadrockbox-4fdf4ad728ac93336c850c7da8966e8d00bddbf8.tar.gz
rockbox-4fdf4ad728ac93336c850c7da8966e8d00bddbf8.tar.bz2
rockbox-4fdf4ad728ac93336c850c7da8966e8d00bddbf8.zip
Onda VX747/VX777: disable LCD when backlight is off (saves power)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24167 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/target/mips/ingenic_jz47xx/lcd-jz4740.c13
-rw-r--r--firmware/target/mips/ingenic_jz47xx/onda_vx747/backlight-onda_vx7X7.c9
2 files changed, 18 insertions, 4 deletions
diff --git a/firmware/target/mips/ingenic_jz47xx/lcd-jz4740.c b/firmware/target/mips/ingenic_jz47xx/lcd-jz4740.c
index 99ffcf2981..7561d593db 100644
--- a/firmware/target/mips/ingenic_jz47xx/lcd-jz4740.c
+++ b/firmware/target/mips/ingenic_jz47xx/lcd-jz4740.c
@@ -49,20 +49,27 @@ void lcd_init_device(void)
system_enable_irq(DMA_IRQ(DMA_LCD_CHANNEL));
}
+#ifdef HAVE_LCD_ENABLE
void lcd_enable(bool state)
{
+ if(lcd_is_on == state)
+ return;
+
+ __cpm_start_lcd();
+
if(state)
{
lcd_on();
-#ifdef HAVE_LCD_ENABLE
send_event(LCD_EVENT_ACTIVATION, NULL);
-#endif
}
else
lcd_off();
-
+
+ __cpm_stop_lcd();
+
lcd_is_on = state;
}
+#endif
bool lcd_active(void)
{
diff --git a/firmware/target/mips/ingenic_jz47xx/onda_vx747/backlight-onda_vx7X7.c b/firmware/target/mips/ingenic_jz47xx/onda_vx747/backlight-onda_vx7X7.c
index 315432ef6b..7f834129b3 100644
--- a/firmware/target/mips/ingenic_jz47xx/onda_vx747/backlight-onda_vx7X7.c
+++ b/firmware/target/mips/ingenic_jz47xx/onda_vx747/backlight-onda_vx7X7.c
@@ -22,6 +22,7 @@
#include "config.h"
#include "jz4740.h"
#include "backlight-target.h"
+#include "lcd.h"
/* PWM_CHN7 == GPIO(32*3 + 31) */
#define BACKLIGHT_GPIO (32*3+31)
@@ -89,12 +90,18 @@ bool _backlight_init(void)
void _backlight_on(void)
{
+#ifdef HAVE_LCD_ENABLE
+ lcd_enable(true); /* power on lcd */
+#endif
set_backlight_on();
}
void _backlight_off(void)
{
set_backlight_off();
+#ifdef HAVE_LCD_ENABLE
+ lcd_enable(false); /* power off lcd */
+#endif
}
#ifdef HAVE_BACKLIGHT_BRIGHTNESS
@@ -108,6 +115,6 @@ void _backlight_set_brightness(int brightness)
/* Turn off LED supply */
void _backlight_lcd_sleep(void)
{
- set_backlight_off();
+ _backlight_off();
}
#endif