Linux DRM基本组件有哪些

发布时间:2021-11-23 15:28:28 作者:iii
来源:亿速云 阅读:268

本篇内容介绍了“Linux DRM基本组件有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、DRM基本组件

Linux内核DRM框架包括:GEM和KMS。引用网络图片,展示DRM大体框架:

Linux DRM基本组件有哪些

1、GEM

GEM(Graphic Execution Manager):图形执行管理器,主要是对 FrameBuffer 的管理,如内存的申请、释放、共享和同步(GPU和CPU之间内存)机制等。

GEM常用的Buffer包括:

1)Dumb Buffer:基于cma api实现,只支持连续物理内存,用于小分辨率简单场景。

2)Prime Buffer:基于dma-buf实现的buffer共享机制,支持连续、非连续物理内存,用于大内存复杂场景。

2、KMS

KMS(Kernel Mode Setting):内核显示模式设置,主要元素:Framebuffer、Plane、CRTC、Encoder、Connector。见下图:

Linux DRM基本组件有哪些

1)Framebuffer:单个图层的显示内容,应用层和内核都可访问。

2)Plane:硬件图层,可实现多层合成显示,连接FB和CRTC。包括:Primary、Overlay和Cursor,驱动中至少实现1个Plane。

3)CRTC:对内存Buffer进行扫描,并转换成LCDC Timing信号。

4)Encoder:将CRTC输出的LCDC Timing时序转换成显示屏所需要的接口时序。

5)Connector:对应显示屏接口(HDMI、MIPI DSI、LVDS等)驱动和输出设备的相关状态信息(EDID、热插拔等)。

RockPI 4 DRM驱动其实就是学习上面各个元素的实现及用法。

二、RockPI 4 DRM驱动文件

RockPI 4单板使用RK3399芯片。

Debian系统内核代码下载地址:https://wiki.radxa.com/Rockpi4/dev/Debian

RK3399 DRM关注文件:

1、内核文档

路径:Documentation/devicetree/bindings/display/rockchip

2、驱动代码

路径:drivers/gpu/drm/rockchip,涉及到的文件和实现功能如下:

1)驱动文件

root@ubuntu:/home/run/code/rockchip-bsp/kernel/drivers/gpu/drm/rockchip# lsanalogix_dp-rockchip.c  cdn-dp-reg.c        inno_hdmi.c  rk3066_hdmi.c             rockchip_drm_backlight.h  rockchip_drm_fbdev.c  rockchip_drm_gem.h  rockchip_drm_vop.h  rockchip_vop_reg.ccdn-dp-core.c           cdn-dp-reg.h        inno_hdmi.h  rk3066_hdmi.h             rockchip_drm_drv.c        rockchip_drm_fbdev.h  rockchip_drm_tve.c  rockchip_lvds.c     rockchip_vop_reg.hcdn-dp-core.h           dw_hdmi-rockchip.c  Kconfig      rk618                     rockchip_drm_drv.h        rockchip_drm_fb.h     rockchip_drm_tve.h  rockchip_lvds.hcdn-dp-link-training.c  dw-mipi-dsi.c       Makefile     rockchip_drm_backlight.c  rockchip_drm_fb.c         rockchip_drm_gem.c    rockchip_drm_vop.c  rockchip_rgb.c

2)实现功能

实现功能文件名称
Core Driverrockchip_drm_drv.c
GEM Driverrockchip_drm_gem.c
Framebuffer Driverrockchip_drm_fb.crockchip_drm_fbdev.c
VOP Driverrockchip_drm_vop.crockchip_vop_reg.c
HDMI Driverdw_hdmi-rockchip.c
inno HDMI Driverinno_hdmi.c
LVDS Driverrockchip_lvds.c
MIPI Driverdw-mipi-dsi.c
TVE Driverrockchip_drm_tve.c
eDP Driveranalogix_dp-rockchip.c
DP Drivercdn-dp-reg.ccdn-dp-core.ccdn-dp-link-training.c
RGB Driverrockchip_rgb.c
Backlight Driverrockchip_drm_backlight.c
rk618 bridge Driverrk618/
RK3066 HDMI Driverrk3066_hdmi.c

注:Core、GEM、FB和VOP驱动是必须的,根据单板连接屏的接口类型选择对应的接口驱动或背光驱动。

目前只有HDMI线和HDMI接口的显示屏,后续只介绍HDMI显示驱动。

“Linux DRM基本组件有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. ora-00445/linux alsr
  2. 如何理解Linux内核编译

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

drm linux

上一篇:怎么分析MySQL性能优化的参数

下一篇:c语言怎么实现含递归清场版扫雷游戏

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》