今天的 Linux 内核圈,值得花 3 分钟看两件事:Maxim 把 GMSL2/3 加解串器收进统一框架(v15),和 Tegra 显存保护区域首次走 dma-buf heaps。
🎬 今日导读
/ section 头条 GMSL2/3 加解串器统一框架 v15(22 补丁)——新框架,Maxim 老驱动批量退役
头条 Tegra VPR 显存保护区域接入 dma-buf heaps(v4,10 补丁)
机制 mm/cma 允许动态创建 CMA 区域(v4)——连续内存从静态走向运行时
机制 kfree_nolock 支持 kmalloc 对象(RFC)——mm/slab 延迟释放泛化
亮点 drm/amd 修 vblank NULL 解引用
💡 今日头条
/ sectionGMSL2/3 加解串器统一框架 v15:新框架落地,Maxim 老驱动退役
现状 GMSL2/3 是 Maxim 的车载/机器视觉串行链路(camera ↔ 加解串器,走同轴/光纤)。每颗 serdes 芯片一个驱动,各挂一个 v4l2_subdev(V4L2 里代表单个设备节点的抽象)。
痛点 老驱动各自为政、代码重复;加一颗新 serdes 就要复制整个驱动改,维护成本高。
方案 v15 收编成统一框架——新增 maxim-serdes serializer / deserializer 双框架,落地 MAX96717、MAX9296A 驱动,退役旧的 MAX96712、MAX96714、MAX96717 驱动。
为什么 把「加新 serdes」从「复制驱动」变成「填配置表」——芯片差异收敛成数据,代码不再按芯片堆。
效益 维护负担骤降;新硬件支持周期缩短;接入路径唯一化,生态不用再猜该用哪个驱动。
下一步 框架合并主线 → 更多 Maxim serdes 并入 → 可能带动 TI ds90ub 跟进统一 serdes 抽象。
一句话点评 摄像头链路统一化的最实在一步——做相机/加解串器方向的,这是主战场。
🔗 原文
Tegra VPR 显存保护区域首次走 dma-buf heaps
现状 Tegra 有 VPR(Video Protected Region,视频保护内存区),给 NVDEC 这类受保护媒体引擎用;目前只能固定预留,没有通用管理通道。
痛点 VPR 是平台私有内存区域,媒体引擎要 DMA 进出它没有标准接口,驱动各自处理。
方案 v4 通过 dma-buf heaps 把 VPR 包装成通用堆:bitmap_allocate 分配器 + debugfs 检查 + Tegra234/264 DT 占位节点,hook 进 host1x / NVDEC。
为什么 dma-buf heaps 是内核给用户态/驱动共享内存的通用通道,VPR 走它就能复用标准接口,不用平台私造轮子。
效益 视频编解码引擎能按需拿受保护内存;mm ↔ 显示/视频的跨域路径统一到 dma-buf。
下一步 v4 迭代中;同系列还带了动态创建 CMA 区域(见机制雷达),连续内存管理一起动。
一句话点评 平台私有内存区域「通用化」的标准路径——用 dma-buf heaps 兜住,谁都能访问。
🔗 原文
📰 media
/ column★ dw9719 对焦线圈支持 DW9800W(Fairphone)
定位 dw9719 是 V4L2 对焦线圈(VCM)驱动,控制镜头马达;DW9800W 是另一颗兼容线圈芯片。
做法 给 dw9719 加 DW9800W 支持(RFT 测试请求中,Fairphone 参与)。
效益 社区机型前置镜头对焦可复用现有驱动,不用新造一个。
和你相关 社区机型主线化的常规推进,做 sensor/镜头驱动的可参考多芯片兼容写法。
🔗 原文
更多动态
○ staging av7110 修 sp8870 初始化与硬件通信(DVB) 〔08-08 01:07〕
📰 DRM
/ column★ drm/amd/display 修 vblank NULL 解引用
定位 amdgpu_dm_crtc_set_vblank() 在 crtc state 缺失时会解引用崩溃。
做法 加 NULL 检查,state 为空时提前返回。
效益 避免热插拔/面板切换场景下的空指针崩溃。
和你相关 常见防御性修复,排查 AMD 驱动崩溃可参考。
🔗 原文
★ drm/dp 只在 HDMI DFP 读 PCON 最大 FRL 带宽
定位 PCON(协议转换器)在 Type-C → HDMI 转换时报告 FRL 带宽;只有 HDMI 方向转换器(DFP)才需要读。
做法 修读取逻辑只在 HDMI DFP 上读 PCON 带宽,避免误读。
效益 正确性修复,批量进 6.6 / 7.1 / 6.18 稳定分支。
和你相关 Type-C 转 HDMI 显示链路稳定性相关。
🔗 原文
更多动态
○ rockchip dw-dp 修 sound DAI cells 〔08-07 23:51〕
○ Chipwealth CH1115 OLED 控制器 dt-bindings 〔08-07 23:48〕
○ drm/tegra fbdev 移除 framebuffer offset(stable) 〔08-07 23:12〕
○ accel/ivpu 修 autosuspend usage_count 泄漏 〔08-07 23:20〕
📌 机制雷达:4 条跨域大改动
/ section maxim-serdes 统一框架 v15 新驱动框架:GMSL2/3 加解串器链路统一化 · 原文
dma-buf heaps 支持 Tegra VPR 平台私有内存走通用堆(mm ↔ 视频编解码跨域)· 原文
mm/cma 动态创建 CMA 区域 v4 连续内存从启动静态划分走向运行时可加 · 原文
kfree_nolock 支持 kmalloc 对象 mm/slab 延迟释放机制泛化(RFC)· 原文
mm PTE hw_pte_t 抽象 页表项存储类型化,映射层在动(讨论中)· 原文
📖 本期概念速查:8 个词看懂今天
/ section GMSL2/3 Maxim 的串行链路协议(加解串器走同轴/光纤),车载/机器视觉摄像头的主流传输
serdes(加解串器) 把并行视频信号转串行长线传输再解回的芯片,GMSL2 即其协议之一
VPR 视频保护内存区,Tegra 给受保护媒体引擎(如 NVDEC)预留的专用内存
dma-buf heaps 内核给用户态/驱动共享内存的通用堆接口,各类内存按 heap 分类申请
CMA(连续内存分配器) 为需要物理连续内存的设备(相机 ISP、显示)预留的内存池
kfree_nolock 无需持锁的延迟释放机制,用于中断/原子上下文的释放路径
PTE / hw_pte_t 页表项;hw_pte_t 是让页表存储类型化的新抽象
FRL HDMI 2.1 的固定速率链路,Type-C 转 HDMI 时由 PCON 转换并报告带宽
如果对你有用,点个赞,或留言聊聊你最关心的。
数据来源:media / DRM / mm(lore.kernel.org)· 北京时间
💬 评论
使用 GitHub 账号登录即可留言