LinuxDRM基本组件有哪些
本篇内容介绍了“Linux DRM基本组件有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
为王益等地区用户提供了全套网页设计制作服务,及王益网站建设行业解决方案。主营业务为成都网站设计、做网站、王益网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
一、DRM基本组件
Linux内核DRM框架包括:GEM和KMS。引用网络图片,展示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。见下图:
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 Driver | rockchip_drm_drv.c |
GEM Driver | rockchip_drm_gem.c |
Framebuffer Driver | rockchip_drm_fb.c 、rockchip_drm_fbdev.c |
VOP Driver | rockchip_drm_vop.c 、rockchip_vop_reg.c |
HDMI Driver | dw_hdmi-rockchip.c |
inno HDMI Driver | inno_hdmi.c |
LVDS Driver | rockchip_lvds.c |
MIPI Driver | dw-mipi-dsi.c |
TVE Driver | rockchip_drm_tve.c |
eDP Driver | analogix_dp-rockchip.c |
DP Driver | cdn-dp-reg.c 、cdn-dp-core.c 、cdn-dp-link-training.c |
RGB Driver | rockchip_rgb.c |
Backlight Driver | rockchip_drm_backlight.c |
rk618 bridge Driver | rk618/ |
RK3066 HDMI Driver | rk3066_hdmi.c |
注:Core、GEM、FB和VOP驱动是必须的,根据单板连接屏的接口类型选择对应的接口驱动或背光驱动。
目前只有HDMI线和HDMI接口的显示屏,后续只介绍HDMI显示驱动。
“Linux DRM基本组件有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!
分享文章:LinuxDRM基本组件有哪些
文章起源:http://myzitong.com/article/jgdhjs.html