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
?