From f2213c8fc26c94f091563aa4d8ca96f1369f079d Mon Sep 17 00:00:00 2001 From: Bertrik Sikken Date: Tue, 5 Aug 2008 20:17:17 +0000 Subject: Apply FS#9195 (LCD disable for sansa c200), which puts the sansa c200 display controller in standby when the backlight is turned off and thereby improves runtime. I measured 40 minutes improvement over a runtime of about 14h. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18198 a1c6a512-1295-4272-9138-f99709370657 --- firmware/export/config-c200.h | 2 +- firmware/target/arm/sandisk/sansa-c200/lcd-c200.c | 24 +++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/firmware/export/config-c200.h b/firmware/export/config-c200.h index 81b79373e4..d7b8e7e824 100644 --- a/firmware/export/config-c200.h +++ b/firmware/export/config-c200.h @@ -48,7 +48,7 @@ #define LCD_PIXELFORMAT RGB565 /* rgb565 */ /* define this if you have LCD enable function */ -/* TODO: #define HAVE_LCD_ENABLE */ +#define HAVE_LCD_ENABLE /* Define this if your LCD can be put to sleep. HAVE_LCD_ENABLE should be defined as well. */ diff --git a/firmware/target/arm/sandisk/sansa-c200/lcd-c200.c b/firmware/target/arm/sandisk/sansa-c200/lcd-c200.c index fc936b1287..9e7c81e20d 100644 --- a/firmware/target/arm/sandisk/sansa-c200/lcd-c200.c +++ b/firmware/target/arm/sandisk/sansa-c200/lcd-c200.c @@ -26,6 +26,7 @@ /* Display status */ static unsigned lcd_yuv_options SHAREDBSS_ATTR = 0; +static bool is_lcd_enabled = true; /* LCD command set for Samsung S6B33B2 */ @@ -189,6 +190,29 @@ void lcd_set_invert_display(bool yesno) (void)yesno; } +void lcd_enable(bool yesno) +{ + if (yesno == is_lcd_enabled) + return; + + if (yesno) + { + lcd_send_command(R_STANDBY_OFF); + lcd_send_command(R_DISPLAY_ON); + } + else + { + lcd_send_command(R_STANDBY_ON); + } + is_lcd_enabled = yesno; +} + +bool lcd_enabled(void) +{ + return is_lcd_enabled; +} + + /* turn the display upside down (call lcd_update() afterwards) */ void lcd_set_flip(bool yesno) { -- cgit v1.2.3