由于系统相对于我来说还是比较大,所以我一条条的例出来,顺序可能不对,欢迎留言交流。
1、mtkfb.c:mtk framebuffer 虚拟设备驱动。
调用流程:
mtkfb_probe--------------framebuffer_alloc(申请内存空间地址)
disp_hal_allocate_framebuffer(primary_display.c)---------ioremap_nocache(物理地址映射为虚拟地址)
primary_display_init
Ddp_manager.c(管理ddp各模块)
ddp_rdma.c (ddp中的rdma模块)-----重点函数rdma_config
ddp中有很多个模块,但是没搞清楚他们之间的关系。实现了的module有:
&ddp_driver_ovl, //DISP_MODULE_OVL0 = 0,
&ddp_driver_ovl, //DISP_MODULE_OVL1 ,
&ddp_driver_rdma, //DISP_MODULE_RDMA0 ,
&ddp_driver_rdma, //DISP_MODULE_RDMA1 ,
&ddp_driver_wdma, //DISP_MODULE_WDMA0 ,
&ddp_driver_color, //DISP_MODULE_COLOR0,
0, //DISP_MODULE_CCORR ,
&ddp_driver_aal, //DISP_MODULE_AAL ,
&ddp_driver_gamma, //DISP_MODULE_GAMMA ,
&ddp_driver_dither, //DISP_MODULE_DITHER,
0, //DISP_MODULE_UFOE , //10
&ddp_driver_pwm, //DISP_MODULE_PWM0 ,
&ddp_driver_wdma, //DISP_MODULE_WDMA1 ,
&ddp_driver_dsi0, //DISP_MODULE_DSI0 ,
2、ddp_drv.c:Display subsystem Driver
3、bls:backlight scaling
这是mtk为了降低功耗,根据显示内容来自动调节背光pwm亮度的技术。其实本身和显示子系统应该没什么关系,由于加了这个技术,所以必须加入这个到流程中。
4、roi region of interest.显示的有效区域,也就是我屏幕的宽高。
一直觉得对不起这个标题,今天分析了一下MTK6572 LK的显示流程,上图: