1 DRM 概述
DRM 全称是 Direct Rendering Manager,进行显示输出管理、buffer 分配、帧缓冲。
对应 userspace 库为 libdrm,libdrm 库提供了一系列友好的控制封装,使用户可以方便的进行显示的控制和 buffer 申请。
DRM的设备节点为 "/dev/dri/cardX", X 为 0-15 的数值,默认使用的是/dev/dri/card0。
从 linux 4.4 内核开始,Rockchip 显示驱动全部切到 DRM 显示框架。
1.1 基本概念
CRTC:显示控制器,在 rockchip 平台是 SOC 内部 VOP(部分文档也称为 LCDC)模块的抽象;
Plane:图层,在 rockchip 平台是 SOC 内部 VOP(LCDC)模块 win 图层的抽象;
Encoder:输出转换器,指 RGB、LVDS、DSI、eDP、HDMI、CVBS、VGA 等显示接口;
Connector:连接器,指 encoder 和 panel 之间交互的接口部分;
Bridge:桥接设备,一般用于注册 encoder 后面另外再接的转换芯片,如 DSI2HDMI 转换芯片。
Panel:泛指屏,各种 LCD、HDMI 等显示设备的抽象;
GEM:buffer 管理和分配,类似 android 下的 ion。
1.2 DRM 显示通路