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