DRM驱动(二)之DRM驱动模块简介

本文介绍了DRM驱动在显示处理器中的作用,解释了crtc、plane、encoder和connector等核心概念,强调了它们与硬件功能的对应关系,并指出每个模块的回调函数对于驱动移植的重要性。通过理解这些概念,读者能够更好地掌握显示驱动的工作原理。

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

上节在《显示处理器介绍》中阐述了显示处理器的大致功能以及要配置的参数;本节将介绍一下DRM驱动中的模块与显示处理器的关系。

做过显示的都知道,目前大多数厂商已经抛弃fb框架,使用drm驱动来管理显示。其中的优点是芯片厂商不必重复造轮子,只需将自己显示处理器的配置流程实现为函数,由drm驱动调用即可。同时drm也为用户提供同一接口,方便使用。

DRM驱动模块

了解过drm的可能都看过下面这张图

最初刚接触drm的时候,很难理解,crtc、plane、encoder、connector都是些什么。如果不接触芯片内部的的显示处理器是怎么工作的,或者不知道芯片处理器需要配置些什么内容对这些模块确实非常难理解。

上节介绍到drm驱动是显示处理器的软件抽象。

planes:对应显示处理器的layer,负责配置layer的一些属性

crtc:对应显示处理器中的图层合成以及时序的生成的模块;从crtc出来的信号是图像信号,想要显示还需要encoder进行翻译。

encoder:将合成后的图像数据生成对应的时序信号,比如dsi,lvds等。

这里的硬件对应的是dsi控制器,或者是lvds控制器。将crtc送入的图像信号翻译为标准协议如dsi,lvds等,通过io接口输出给显示设备。接口不同需要配置的参数也不同,比如dsi需要配置phy,format,data type等等,这块不做详解。具体可以了解对应的协议标准。

connector:用于连接显示器。其实connector与encoder区分不明显,比如dsi的控制器抽象为encoder,dsi的phy抽象到connector,或者整个dsi的功能抽象为encoder;或者将整个dsi抽象为connector,这个取决于驱动工程师怎么抽象。

以上每个模块都有一组由各个厂商实现的回调函数,用来配置硬件功能。回调函数由drm核心调用。因此熟悉这些回调的作用对显示驱动的移植至关重要。

后面我会根据一个简单的显示应用来剖析内核中drm驱动的调用逻辑。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值