linux drm 显示驱动
文章平均质量分 94
分析总结 drm 显示驱动
baron-z
耐得住寂寞,才能守得住繁华.
展开
-
drm 驱动系列 - 第二章 KMS
通过 drm_dev 导出的 ioctl 我们就可以使用任意 plane + crtc + encoder + connector + panel 来组合我们需要的硬件显示链路了.例如我们有如下硬件结构。上述的组件都由 drm_mode_object 描述. 通过 type 来确定 obj 描述的对象类型.上述 kms 相关的组件 (obj) 通过 drm_mode_config 进行维护和管理.所以这个数据结构非常重要, 它也是 kms 的核心. 他们的关系如下图所示.用初始化 obj. 该函数从。原创 2024-01-27 11:18:09 · 1135 阅读 · 0 评论 -
drm 驱动系列- 第一章 drm_device
drm_device 的注册为两个部分, 首先是调用 drm_dev_init 创建并初始化一个 drm_device 然后调用 drm_dev_register 进行注册.通过 drm_minor 用来描述一个 drm_dev 下的三种不同可以实例化的设备, 每个 drm 子系统至少有一个 DRM_MINOR_PRIMARY 设备。真正的设备注册函数. 注册 dev 下对应的 tpye 的设备, 创建 /sys/kernel/debug/dri 下的调试文件. 没有对应的设备直接返回.原创 2024-01-27 10:43:30 · 1776 阅读 · 0 评论 -
drm 驱动系列 - 第三章 gem 内存管理
drm_gem_cma_dumb_create 首先在 drm_mm 中申请一片需要的空间描述符, 然后再创建实际的物理内存. 上图中的蓝色的 drm_mm_node 就是 user 使用 libdrm 分配显存时申请到的内存空间描述符.之后再调用 dma_alloc_wc 分配实际的物理内存到。. 它表示的是内存的相对偏移, 这个 node 对应 drm_mm 中的内存偏移. 他的作用就是索引该 node.一共增加了两个个接口 drm_gem_cma_mmap、drm_gem_cma_vm_ops。原创 2023-11-29 17:13:02 · 2470 阅读 · 1 评论