当前位置:   article > 正文

linux dsi接口,RK3399 探索之旅 / Display 子系统 / 基础概念

bridge和panel

Linux 下的许多驱动框架其实都挺复杂,大多都是许多国内外的牛人经过多年的完善而积累下来的代码。

学习驱动开发需要找准自己的定位,先全局把握再适当地去填充细节,不要总想着深入到驱动框架里,站在一个使用者的角度去思考如何应用这些驱动框架或许会有更好的效果。

这里我是以一个菜鸟的身份记录下自己的一些想法和学习心得,欢迎纠正我。

一、基础概念

1. Linux 的 2 种显示方案

包括:

FBDEV: Framebuffer Device

DRM/KMS: Direct Rendering Manager / Kernel Mode Setting

它们有什么区别?

FBDEV:

传统的显示框架;

简单,但是只能提供最基础的显示功能;

无法满足当前上层应用和底层硬件的显示需求;

DRM/KMS:

目前主流的显示方案;

为了适应当前日益更新的显示硬件;

软件上能支持更多高级的控制和特性;

2. DRM/KMS 基础概念

DRM subsystem 图:

8ef5538d086071e0e41da1d01f77f21f.png

点击查看大图

虽然经常用 DRM/KMS 来指代整个 DRM subsystem,但是 KMS 和 DRM driver 只是 整个 DRM subsystem 的其中 2 个部分。

KMS (Kernel Mode Setting) 是内核提供给应用层的 DRM API 的其中一部分,应用层一般通过 libdrm 来访问这些 API。

对于驱动工程师而言,重点关注 DRM driver,这里负责使能 Display engine,可以理解为加强版的 FBDEV。

KMS 里的几个重要组件:

Planes:图层,例如在 rockchip 平台里对应 SOC 内部 VOP 模块的 win 图层;

CRTC:显示控制器,例如在 rockchip 平台里对应 SOC 内部的 VOP 模块;

Encoder:输出转换器,指 RGB、LVDS、DSI、eDP、HDMI、CVBS、VGA 等显示接口;

Connector:连接器,指 encoder 和 panel 之间交互的接口部分;

Bridge:桥接设备,一般用于注册 encoder 后面另外再接的转换芯片,如 DSI2HDMI 转换芯片;

Panel:泛指屏,各种 LCD、HDMI 等显示设备的抽象;

这些组件组合成 display pipeline:

1b7ceb7958b1bfaf493b2db7f440c194.png

点击查看大图

3. 驱动视角看 DRM/KMS

下面以 Allwinner 芯片的 DRM driver 为例进行展示。

DRM subsystem:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/964177
推荐阅读
相关标签
  

闽ICP备14008679号