RK3568平台开发系列讲解(显示篇)DRM 核心数据结构
🚀返回专栏总目录
文章目录
- 一、struct drm\_device
- 1.1、struct drm\_minor
- 1.2、struct drm\_mode\_config
- 1.3、struct drm\_mode\_config\_funcs
- 二、struct drm\_driver
- 2.1、driver\_feature
- 2.2、dumb\_create
- 2.3、struct drm\_file
- 三、流程
沉淀、分享、成长,让自己和他人都能有所收获!😄
学习DRM驱动,首先要了解驱动框架涉及到的数据结构,知道每个数据结构以及成员的含义之后,再去看源码就容易了。
我们继续用“画展”的比喻来详细解析这些DRM框架中最顶层的核心结构体。这次我们把比喻升级一下,想象我们要创办并运营一家专业的画展公司。
一、struct drm_device
linux内核使用struct drm_device数据结构来描述一个drm设备
形象比喻:这就像是制片厂的公司注册文件,规定了这家制片厂的基本性质、主营业务和核心能力。比如:“本公司擅长制作3D动画电影”、“本公司拥有顶级的特效团队”、“本公司接受外部投资者的电影项目”等。
技术说明:它代表了显卡驱动本身。这个结构体包含了驱动级的操作函数指针,比如
dumb_create(创建缓冲区的能力)、driver_feature(驱动支持的特色功能,比如模式设置、Prime缓冲共享等)。它定义了“这个驱动能做什么”。
定义在include/drm/drm_device.h:
/** * struct drm_device - DRM device stru