rockchip3399的DRM架构中drm_device解析

本文探讨了基于DRM架构的图显系统,重点解析rockchip3399芯片的DRM设备主体。在设备树中定义的结点,通过统一的DRM注册函数,实现设备的分配与注册。在组件绑定过程中,DRM设备驱动数据结构起着关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于DRM架构的图显系统软件架构中,DRM世界中的设备主体由struct drm_device描述。master设备进行绑定的同时注册DRM device

struct drm_device {
   
	struct list_head legacy_dev_list;
	int if_version;
	struct kref ref;
	struct device *
以下是 `rockchip_drm_init` 函数的代码框图及详细说明: ```mermaid graph TB A[rockchip_drm_init] --> B[drm_dev_init] B --> C[drm_mode_config_init] B --> D[drm_vblank_init] A --> E[rockchip_drm_encoder_init] A --> F[rockchip_drm_connector_init] A --> G[rockchip_drm_crtc_init] A --> H[drm_irq_install] A --> I[drm_dev_register] subgraph 编码器初始化 E --> E1[HDMI编码器初始化] E --> E2[LVDS编码器初始化] E --> E3[DP编码器初始化] end subgraph 连接器初始化 F --> F1[HDMI连接器初始化] F --> F2[LVDS连接器初始化] F --> F3[DP连接器初始化] end subgraph CRTC初始化 G --> G1[HDMI CRTC初始化] G --> G2[LVDS CRTC初始化] G --> G3[DP CRTC初始化] end ``` 详细说明如下: 1. `rockchip_drm_init` 函数首先调用 `drm_dev_init` 函数来初始化 DRM 设备结构体 `drm_device`。该函数会创建并初始化一个 `drm_device` 结构体,并为其分配设备节点和设备文件操作集等资源。 2. 接着,`rockchip_drm_init` 函数调用 `drm_mode_config_init` 函数来初始化 `drm_device` 中的 `mode_config` 数据结构,该结构体用于管理显示模式信息。该函数会创建并初始化一个 `drm_mode_config` 结构体,并为其分配显示模式信息等资源。 3. `rockchip_drm_init` 函数接着调用 `drm_vblank_init` 函数来初始化 `drm_device` 中的垂直同步信号(VBlank)管理器。该管理器用于处理垂直同步信号相关的事件,例如垂直同步中断和垂直同步定时器。 4. `rockchip_drm_init` 函数接着调用 `rockchip_drm_encoder_init` 函数来初始化所有的编码器。该函数会遍历所有支持的编码器,并分别调用对应的初始化函数来初始化编码器相关的数据结构。 5. `rockchip_drm_init` 函数接着调用 `rockchip_drm_connector_init` 函数来初始化所有的连接器。该函数会遍历所有支持的连接器,并分别调用对应的初始化函数来初始化连接器相关的数据结构。 6. `rockchip_drm_init` 函数接着调用 `rockchip_drm_crtc_init` 函数来初始化所有的 CRTC。该函数会遍历所有支持的 CRTC,并分别调用对应的初始化函数来初始化 CRTC 相关的数据结构。 7. `rockchip_drm_init` 函数接着调用 `drm_irq_install` 函数来注册中断处理程序。该函数会向内核注册一个中断处理函数,用于处理显示器相关的中断事件。 8. 最后,`rockchip_drm_init` 函数调用 `drm_dev_register` 函数来注册 DRM 设备。该函数会创建 `/dev/dri/cardX` 设备文件,并将其挂载到文件系统中,以便用户空间程序可以使用标准的文件操作接口来访问 DRM 设备。 需要注意的是,上述代码框图只是对 `rockchip_drm_init` 函数的要流程进行了概括,实际上该函数还包括了一些错误处理、内存释放等操作。在实际使用中,需要仔细阅读该函数的源代码,以便了解其具体实现和细节。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux与SoC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值