1、添加log,打印亮灭屏期间lcd大概花的时间
fbmem.c中
int fb_blank(struct fb_info *info, int blank)
{
struct fb_event event;
int ret = -EINVAL, early_ret;
if (blank > FB_BLANK_POWERDOWN)
blank = FB_BLANK_POWERDOWN;
pr_err("[0000]%s:LCD power on/off start! blank=%d\n",__func__,blank); //lcd 开始进入亮屏准备
event.info = info;
event.data = ␣
early_ret = fb_notifier_call_chain(FB_EARLY_EVENT_BLANK, &event);
if (info->fbops->fb_blank)
ret = info->fbops->fb_blank(blank, info);
if (!ret)
fb_notifier_call_chain(FB_EVENT_BLANK, &event);
else {
/*
* if fb_blank is failed then revert effects of
* the early blank event.
*/
if (!early_ret)
fb_notifier_call_chain(FB_R_EARLY_EVENT_BLANK, &event);
}
pr_err("[0000]%s:LCD power on/off end! blank=%d\n",__func__,blank); //lcd 开始亮屏准备结束,包括(上电、RESET、下init code)
return ret;
}
2、log分析
从lk进入kernel(未重新亮灭屏):从log看基本不占用时间,因为lk阶段已经上过电,下过 init code
[32m[ 19.523849] [31m[0000]fb_blank:LCD power on/off start! blank=0
[32m[ 19.523859] [0m[FTS_TS/I]fb_notifier_callback:FB event:16,blank:0
[32m[ 19.523862] [33m[FTS_TS/I]fb_notifier_callback:resume[0m: event = 16, not care
[32m[ 19.523862] [0m
[32m[ 19.523867] [33mmdss_fb_blank[31m: [0000]mdss_fb_blank:enter mode: 0,mfd->op_enable:1
[32m[ 19.523879] [33mmdss_fb_blank_sub[31m: [0000]mdss_fb_blank_sub:enter
[32m[ 19.523879] [33mmdss_fb_blank_sub[31m: unblank called. cur pwr state=1 //cur pwr state=1 power on 状态
[32m[ 19.523906] [33mmdss_fb_blank_unblank[31m: [0000]mdss_fb_blank_unblank:enter
[32m[ 19.523914] [33mmdss_fb_blank_sub[31m: [0000]mdss_fb_blank_sub:exit
[32m[ 19.523914] [33mmdss_fb_blank[31m: [0000]mdss_fb_blank:exi
LCD亮屏时间分析
最新推荐文章于 2024-06-21 23:28:23 发布
本文详细探讨了LCD显示屏的亮屏时间分析,从硬件到软件层面剖析影响亮屏时间的因素,包括电源管理、控制器响应、刷新率等内容,旨在为优化设备续航提供指导。
摘要由CSDN通过智能技术生成