第一种情况:
进入kernel或android 后,如果LCM图像示异常,可以通过如下步骤来判断问题出现在哪个层面.
step1:通过DMMS截图,来判断上面刷到LCM的数据是否有问题. 若DMMS获取的图片没有问题,问题基本可以定位在LCM 驱动/模组,以及时序方面.
step2: 若step1中DMMS获取的数据有问题,则需要抓取framebuffer数据进一步分析 adb shell cat /dev/graphics/fb0 > /data/fb.bin 然后将fb.bin通过adb push 出来,通过工具查看fb.bin step3: 若查看fb.bin的数据有问题,则问题一般出现在LCD control做overlay时出了问 题。若查看framebuffer数据没有问题,则需下一步定位分析. step5: 这一步需要继续抓取SF layerdump, 直接运行SF_layerdump.bat脚本. 若dump出来的图片有问题,那应该是在画layer数据时出现问题,需要分析单个app. 若surface data 没有问题,那问题就需要定位在surfaceflinger模块。
第二种情况:若 lk 启动阶段出现显示异常, 比如手机开机logo界面显示异常.
1).可以先将logo 图片替换成简单的左黑右白同等尺寸的圖片,如下图:
分别测量正常显示时,显示异常时相关mipi时序图.
正常顯示時D0P/N的waveform如下:
異常顯示時D0P/N的waveform如下:
從上面的waveform可知,異常時,系統送出的data有異常,從而導致顯示異常。需要查平台端找具体原因。
2).发指令直接从IC端刷图像到屏上,不用平台输出的图像。同样的操作,如果显示问题不能复现,应该属于平台端数据显示异常.
像novatek nt35596从初使化reg 跑完后,不去发0x11,0x29指令。
发如下一些从IC 刷图像指令:
{0xFF,1,{0x05}},
{REGFLAG_DELAY, 5, {}}
{0xEA,1,{0xFF}}
{0xEB,1,{0x27}}
{0xEC,1,{0x01}}