Drm
文章平均质量分 74
zyddst1314
奔跑的脚步不要停
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
DRM系列十一:Drm之config->funcs->atomic_commit
上一篇介绍了atomic commit之前的check工作,接着就会调用drm_mode_config的config->funcs->atomic_commit回调,这一回调是通过厂商自己实现,以rockchip为例,会直接调用drm_atomic_helper_commit函数。原创 2025-02-19 18:25:42 · 785 阅读 · 0 评论 -
IGT_GPU_TOOL系列之CRC(一):test_grab_crc
在IGT_GPU_TOOL测试工具中,test_grab_crc是获取CRC值验证图形输出是否正确的重要函数。通过创建帧缓冲区、设置显示内容、收集CRC值来验证图形输出的正确性。1.igt_pipe_crc_collect_crc获取CRC 的值1.1read_one_crc主要功能是从图形管道 CRC 源中读取一个 CRC 值。阻塞模式 vs 非阻塞模式:**a.阻塞模式:**如果文件描述符处于阻塞模式,当调用 read 等 I/O 操作时,如果没有数据可读,调用会一直等待,直到有数据可读或发生原创 2025-02-19 18:17:32 · 347 阅读 · 0 评论 -
DRM系列十:Drm之drm_atomic_check_only
接着上篇,在提交之前,需要进行check检查,此时会调用drm_atomic_check_only这一函数。原创 2025-02-06 20:29:35 · 808 阅读 · 0 评论 -
DRM系列九:Drm之DRM_IOCTL_MODE_ATOMIC
用户层提供相应的原子模式设置,包含着各种属性和对象,然后通过ioctl(fd, DRM_IOCTL_MODE_ATOMIC, &atomic)进入kernel层,调用drm_mode_atomic_ioctl 提交的原子模式设置请求。根据属性的类型(如range、bitmask、enum等)来检查给定的值是否符合属性的定义,并且可以选择性地返回一个引用对象(如 Blob 或其他对象)。作用是一是根据属性的类型判断是否符合属性的定义,二是根据对象的类型,获取相应的原子状态,设置属性值。原创 2025-02-06 11:09:46 · 779 阅读 · 0 评论 -
DRM系列八:Drm之DRM_IOCTL_MODE_ADDFB2
在上一篇文章获取buf的handle和pitch之后,接着使用ioctl(fd, DRM_IOCTL_MODE_ADDFB2, &fb_cmd)创建一个新的帧缓冲区对象(framebuffer object),并将帧缓冲区对象与显存关联起来。原创 2025-02-05 15:25:10 · 1163 阅读 · 0 评论 -
DRM系列七:Drm之DRM_IOCTL_MODE_CREATE_DUMB
DRM驱动的显存由GEM(Graphics execution management)管理。原创 2025-02-03 20:33:49 · 866 阅读 · 0 评论 -
DRM系列六:Drm之KMS
KMS(Kernel Mode Setting)是负责显示输出的核心组件,它处理与plane、crtc、encoder和connector相关的各项任务。简单来说,KMS就是结构体drm_mode_config、drm_mode_object和组件(object)的结合。原创 2025-02-01 16:56:53 · 873 阅读 · 0 评论 -
DRM系列四:初始化drm设备--drm_dev_init
根据传入的 type 在 drm_minors_idr 链表中申请一个可用的 id, 并且使用这个 id 作为次设备号, 创建对应的 minor 设备.drm_device的初始化操作,但是并不会注册,函数定义在drivers/gpu/drm/drm_drv.c。用于分配并初始化一个新的 DRM 设备(即drm_device),初始化主要调用drm_dev_init函数。原创 2025-02-01 16:49:40 · 643 阅读 · 0 评论 -
DRM系列五:注册DRM设备--drm_dev_register
在/sys/kernel/debug/dri/minor_id下为指定的 CRTC 创建一个以crct-x(crtc_id)的目录,并在该目录下添加与 CRTC 相关的调试文件。drm_debugfs_list下有一组调试文件,为state,这里面是plane\crtc\connector的状态信息。drm_connector_registration_state的状态有三种,分别是未注册、初始化中和已注册。初始化debugfs,创建/sys/kernel/debug/dri/minor_id的目录。原创 2025-02-01 16:53:59 · 1174 阅读 · 0 评论 -
DRM系列三:drm core模块入口
为每个连接器类型分配一个独立的 IDA,IDA(ID Allocator,ID 分配器) 是一种用于分配和管理唯一 ID 的机制,通常用于内核中需要分配唯一标识符的场景。在/sys/class/drm下创建节点,例如/sys/class/drm/dri/card0、/sys/class/drm/dri/card1。创建class类drm_class,同时会在/sys/class/目录下创建一个新的文件夹drm,并设置设备节点。针对drm_core_init做的一些注销工作。原创 2025-02-01 16:45:58 · 426 阅读 · 0 评论 -
DRM系列二:DRM总体介绍
DRM,全称Direct Rending Manger。是目前Linux主流的图形显示框架。相比较传统的Framebuffer(FB原生不支持多层合成,不支持VSYNC,不支持DMA-BUF,不支持异步更新,不支持fence机制等等),而这些功能DRM原生都支持,因此DRM更能适应当今硬件。并且DRM可以支持GPU、3D渲染显示等,统一管理GPU、Display驱动,使得软件架构更统一、方便开发和维护。原创 2025-02-01 16:40:28 · 1665 阅读 · 0 评论
分享