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)) {