Video 子系统架构与源码总览
1. 目录不是单一子系统
drivers/video同时承担:
- Graphics Kconfig总入口;
- fbdev Core和历史硬件驱动;
- backlight/LCD class;
- VT console后端和logo;
- display timing、HDMI、aperture等helper;
- Rockchip SDK特有RGA/MPP/IEP等媒体扩展。
现代KMS显示主路径在drivers/gpu/drm/,并非全部位于本目录。
2. 通用分层
1 | 应用 / console |
3. Graphics菜单
drivers/video/Kconfig还source:
drivers/char/agp/Kconfig;drivers/gpu/vga/Kconfig;- Host1x/IPU;
- DRM;
- ARM GPU;
- fbdev;
- backlight;
- Rockchip misc video;
- console/logo。
因此“Graphics support菜单内容”大于“drivers/video目录代码”。
4. fbdev
struct fb_info表示一块framebuffer,struct fb_ops由驱动实现。Core注册/dev/fbN、sysfs和notifier,提供mode、colormap、mmap、drawing helpers。
fbdev可来自:
- 独立legacy硬件driver;
- firmware framebuffer(simplefb/efifb);
- DRM fbdev emulation。
5. fbcon
fbcon把VT字符、属性和光标转换为fb_fillrect/copyarea/imageblit,是内核文本控制台,不是用户图形合成器。
6. Backlight
Backlight class统一亮度、blank、power和实际亮度。具体驱动控制PWM、GPIO、LED、PMIC或外置芯片。
7. 显示模式辅助
display_timing表示带min/typ/max范围的板级时序;videomode表示具体像素时序。OF helper解析display-timings和native-mode。
8. Aperture
Firmware framebuffer可能先占显存。真实GPU/DRM driver加载时通过aperture helper移除冲突的simplefb/efifb,完成ownership handoff。
9. Rockchip扩展
drivers/video/rockchip包含:
- RGA/RGA2/Multi-RGA:2D图像操作;
- MPP:视频编解码服务;
- IEP/IEP2:图像增强;
- RVE;
- DVBM;
- vehicle倒车影像;
- video tunnel。
这些大多不是显示scanout driver,也不属于fbdev Core。
10. RK3588主显示路径
1 | Userspace DRM/HWC |
VOP2及输出驱动主要在drivers/gpu/drm/rockchip;本目录直接相关的是PWM backlight、兼容fbdev和Rockchip媒体扩展。
11. 边界
- Camera capture:media/V4L2及vendor CIF/ISP;
- GPU 3D:Mali driver;
- Display KMS:DRM;
- codec标准接口:V4L2 mem2mem或vendor MPP;
- buffer sharing:dma-buf;
- DMA隔离:IOMMU;
- fbdev:兼容像素buffer。
12. 生命周期原则
显示/媒体驱动必须按“阻止新任务→停止硬件→等待IRQ/fence→解绑IOMMU/dma-buf→关闭clock/reset/power→释放对象”顺序卸载。
正在加载留言…