rockchip_drm_init具体做了什么动作
时间: 2023-07-28 21:07:12 浏览: 143
rockchip_drm框架介绍
`rockchip_drm_init` 函数是 Rockchip 平台上 DRM 驱动的初始化函数,其主要功能是注册 DRM 驱动程序并初始化相关的数据结构。具体来说,`rockchip_drm_init` 函数的几个主要步骤如下:
1. 调用 `drm_dev_init` 函数初始化 DRM 设备结构体 `drm_device`。这个数据结构包含了 DRM 驱动程序的所有信息,例如设备名称、设备节点、设备文件操作集等。
2. 调用 `drm_mode_config_init` 函数初始化 `drm_device` 中的 `mode_config` 数据结构,该结构体用于管理显示模式信息。这个函数将会创建一个 `drm_mode_config` 结构体,并初始化其中的一些属性,例如 `fb_base`、`min_width`、`max_width`、`min_height` 等。
3. 调用 `drm_vblank_init` 函数初始化 `drm_device` 中的垂直同步信号(VBlank)管理器。该管理器用于处理垂直同步信号相关的事件,例如垂直同步中断和垂直同步定时器。
4. 调用 `rockchip_drm_encoder_init` 函数初始化所有的编码器(encoder)。编码器是指一种将图像数据转换为视频信号的硬件模块,例如 HDMI 编码器、LVDS 编码器等。
5. 调用 `rockchip_drm_connector_init` 函数初始化所有的连接器(connector)。连接器是指一种将编码器输出的视频信号连接到显示器设备的硬件模块,例如 HDMI 连接器、LVDS 连接器等。
6. 调用 `rockchip_drm_crtc_init` 函数初始化所有的 CRTC(Cathode Ray Tube Controller)。CRTC 是指一种控制视频信号输出的硬件模块,它接收编码器输出的视频信号,并将其输出到连接器上。
7. 调用 `drm_irq_install` 函数注册中断处理程序。该函数会向内核注册一个中断处理函数,用于处理显示器相关的中断事件。
8. 调用 `drm_dev_register` 函数注册 DRM 设备。该函数将会创建 `/dev/dri/cardX` 设备文件,并将其挂载到文件系统中,以便用户空间程序可以使用标准的文件操作接口来访问 DRM 设备。
总的来说,`rockchip_drm_init` 函数的主要作用是初始化 DRM 驱动程序的数据结构,并将其注册到内核中,以便用户空间程序可以使用 DRM 接口来控制显示器设备。
阅读全文