mtk 平台LCD 驱动的
MTK_LCD_Driver
代码的路是在/mediatek/source/kernel/driver/vedio/mtkfb.c
module_init(mtkfb_init);模块初始化函数
int__init mtkfb_init(void)
{int r = 0;
MSG_FUNC_ENTER();
/* Register the driver withLDM */
if(platform_driver_register(&mtkfb_driver)) {//以platform方式进行注册mtkfb driver
PRNERR("failed toregister mtkfb driver\n");
r = -ENODEV;
goto exit;
}
#ifdefCONFIG_HAS_EARLYSUSPEND
register_early_suspend(&mtkfb_early_suspend_handler);//LCD是以erly_suspend的方式注册的,这个涉及到power_management的内容
#endif
DBG_Init();
exit:
MSG_FUNC_LEAVE();
return r;
}
知道设备模型的人应该知道platformbus总线的match函数的规则是device和driver的名字必须相同,当name匹配一样的时候,我们就会调用driver里面的probe函数,这个函数是LCDdriver的核心入口函数。
进入LCDprobe世界。
staticint mtkfb_probe(struct device *dev)
{
s
MTK_LCD_Driver
代码的路是在/mediatek/source/kernel/driver/vedio/mtkfb.c
module_init(mtkfb_init);模块初始化函数
int__init mtkfb_init(void)
{int r = 0;
MSG_FUNC_ENTER();
/* Register the driver withLDM */
if(platform_driver_register(&mtkfb_driver)) {//以platform方式进行注册mtkfb driver
PRNERR("failed toregister mtkfb driver\n");
r = -ENODEV;
goto exit;
}
#ifdefCONFIG_HAS_EARLYSUSPEND
register_early_suspend(&mtkfb_early_suspend_handler);//LCD是以erly_suspend的方式注册的,这个涉及到power_management的内容
#endif
DBG_Init();
exit:
MSG_FUNC_LEAVE();
return r;
}
知道设备模型的人应该知道platformbus总线的match函数的规则是device和driver的名字必须相同,当name匹配一样的时候,我们就会调用driver里面的probe函数,这个函数是LCDdriver的核心入口函数。
进入LCDprobe世界。
staticint mtkfb_probe(struct device *dev)
{
s