From 796620b3ab72725e5cb3330557fb0caea44dbd57 Mon Sep 17 00:00:00 2001 From: zhangzhaopeng Date: Tue, 22 Apr 2025 17:34:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96lcd=E9=A9=B1=E5=8A=A8?= =?UTF-8?q?=E8=83=8C=E5=85=89=E8=8E=B7=E5=8F=96=E5=94=A4=E9=86=92=E6=BA=90?= =?UTF-8?q?=E7=9A=84=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../video/fbdev/sunxi/disp2/disp/de/disp_lcd.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/lichee/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/disp_lcd.c b/lichee/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/disp_lcd.c index faf3537b8..eb583e4d1 100644 --- a/lichee/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/disp_lcd.c +++ b/lichee/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/disp_lcd.c @@ -88,8 +88,10 @@ static int panel_timing_init(int disp, int lcd_index, STARTUP_START_PWM_VALUE _/ */ -#define WEIGHT_ADDR 0x4307F000 // 权重加载的内存地址处 +#ifndef CONFIG_MEM_OPERATION +#define WEIGHT_ADDR 0x4304B000 // 权重加载的内存地址处 #define M_PAGE_SIZE (4 * 1024) // 内存对齐,应该是4K +#endif typedef enum { HAS_APP_WAKEUP_SOURCE_NONE, @@ -115,6 +117,11 @@ static has_startup_bl_t startup_bl = { .timer_flag = 0, .timer.data = 0, }; + +#if defined(CONFIG_MEM_OPERATION) +extern unsigned char mem_get_wakeup_source(void); +#endif + #endif static int disp_check_timing_param(struct disp_panel_para *panel) { @@ -1314,7 +1321,9 @@ static s32 disp_lcd_backlight_enable(struct disp_device *lcd) unsigned long flags; #if defined(CONFIG_DISP2_HAS_SUPPORT_FRONT_WKSRCBL) || defined(CONFIG_DISP2_HAS_SUPPORT_BACK_WKSRCBL) +#ifndef CONFIG_MEM_OPERATION void __iomem *vaddr = NULL; +#endif unsigned char wakeupsource = 0; #endif if ((lcd == NULL) || (lcdp == NULL)) { @@ -1354,12 +1363,16 @@ static s32 disp_lcd_backlight_enable(struct disp_device *lcd) disp_sys_gpio_request(gpio_info, 1); } #if defined(CONFIG_DISP2_HAS_SUPPORT_FRONT_WKSRCBL) || defined(CONFIG_DISP2_HAS_SUPPORT_BACK_WKSRCBL) +#if defined(CONFIG_MEM_OPERATION) + wakeupsource = mem_get_wakeup_source(); +#else vaddr = memremap(WEIGHT_ADDR, M_PAGE_SIZE, MEMREMAP_WB); if (vaddr) { wakeupsource = readb(vaddr); memunmap(vaddr); } +#endif if ((wakeupsource != HAS_APP_WAKEUP_SOURCE_BACK_PANEL) && (wakeupsource != HAS_APP_WAKEUP_SOURCE_NONE)) {