lcm的分析首先是mtkfb.c

1.mtk_init中platform_driver_register(&mtkfb_driver)注册平台驱动

panelmaster_init();

DBG_init();

mtkfb_ipo_init();

2.mtkfb_probe进行普配

3.然后执行primary_display_init(mtkfb_find_lcm_driver(),lcd_fps);

4.mtkfb_find_lcm_driver()进行查找驱动:

p=strstr(saved_command_line,"lcm=")

memset((void *)mtkfb_lcm_name,0,sizeof(mtkfb_lcm_name));//

strncpy((char *)mtkfb_lcm_name,(const char *)p,(int)(q-p));//得到lcm的名字

主要是通过在之前LK阶段向kernel传参的command_line地址中,拿出lcm驱动名字字符串的,之后再将第一个字符串的地址返回

然后进入primary_display_init函数中,再执行disp_lcm_probe()函数。

pgc->plcm=disp_lcm_probe(lcm_name,LCM_INTERFACE_NOTDEFFINE)

5.disp_lcm.c中disp_lcm_probe()

lcm_drv=lcm_driver_list[0];//这里的名字就是command_line中拿出来的名字。

lcm_param=disp_lcm_get_param(pgc->plcm);//获得lcm参数

接下来模式选择

6.LCM_DRIVER包括:lcm的名字,相关功能函数,获得参数,初始化,休眠,唤醒,比较id,esd_check,esd_recover,ata_check

05-11 17:24