优化lcd驱动背光获取唤醒源的方式

This commit is contained in:
张兆鹏 2025-04-22 17:34:41 +08:00
parent 5d71fcb5db
commit 796620b3ab
1 changed files with 14 additions and 1 deletions

View File

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