fastboot花屏问题分析

来源:互联网 发布:网络营销策划方案模板 编辑:程序博客网 时间:2024/05/16 13:59

问题:进入fastboot下载模式显示log不全,如下图:


原因分析:

上半部分显示看不出异常,但是下半部分有时候白有时候是彩色斑点,感觉下半部分没在显示区域内,跟踪代码分析.

在msm_display_init 函数中调用到了display_image_on_screen()函数,这个是显示第一屏log的函数,这个函数中分两步,第一步 fetch_image_from_partition(),即从分区中读取logo,另外会做判断,加入分区中没读到,那么就显示一个124X113的imageBuffer_rgb888中存储的小企鹅图片。从上面图片可以确认我们是有logo的。继续看fetch中的操作

……

fb_display =fbcon_display();

         if(fb_display)

         {

logo_index =partition_get_index("logo");

         logo_ptn= partition_get_offset(logo_index);

n =ROUND_TO_PAGE((fb_display->width * fb_display->height *fb_display->bpp/8), 2048-1);

……

}

这里log可以看到通过索引和偏移找到logo所在位置并读取,从日志看到这里宽和高是 480和854,因此显示出来的数据只有整个logo的一部分,问题原因找到。

fb_display结构体中的数据是从fbcon_display()àfbcon_setup(&(panel->fb))中获取的,而此时初始化的panel是oem_panel_select中默认的ILI9806E_TXD_450DKP_FWVGA_VIDEO_PANEL,在这个驱动文件中找到video_panel_res结构体中解析度是480、854,这才是导致显示不完全的原因,将默认panel改成现在使用的任意QHD的panel,则在显示读取logo时候会读取到完整的图片,显示整个屏幕,经验证,问题解决。

0 0
原创粉丝点击