在上一篇文章中我们初步了解了lcd对应用层提供的接口-framebuffer,以及应用层通过fb在lcd上画图的示例。本文我们来看一下驱动层的相关逻辑,主要介绍几个核心数据结构fb_info, fb_var_screeninfo, fb_fix_screeninfo,以及framebuffer设备注册的过程,framebuffer大小的确定。
我们从kernel中lcd最核心的一个文件看起
kernel\msm-3.18\drivers\video\fbdev\core\fbmem.c
核心函数
我们从kernel中lcd最核心的一个文件看起
kernel\msm-3.18\drivers\video\fbdev\core\fbmem.c
核心函数
/**
* register_framebuffer - registers a frame buffer device
* @fb_info: frame buffer info structure
*
* Registers a frame buffer device @fb_info.
*
* Returns negative errno on error, or zero for success.
*
*/
int register_framebuffer(struct fb_info *fb_info)
{
int ret;
mutex_lock(®istration_lock);
ret = do_register_framebuffer(fb