第六章 BO 的共享:6.9 BO 共享的驱动集成
发布时间:2026/10/29 10:28:47 锦皓数字建站

前几节分别从 dma-buf 与 PRIME 的角度说明了导出方和导入方的接口。本节换到驱动开发者的角度,说明一个 DRM 驱动接入 BO 共享需要实现哪些接口、按什么步骤实现。工作量主要取决于 BO 的后备存储是否会迁移:不迁移的驱动套用 PRIME 的默认实现即可;会迁移的驱动要自己实现导出方的dma_buf_ops,并以动态方式导入。后一类以 amdgpu 为例,只说明各步骤的关键做法。1. 选择接入方式DRM 驱动的 BO 共享都经 PRIME 进入:导出入口是drm_gem_object_funcs.export,为空时使用drm_gem_prime_export();导入入口是drm_driver.gem_prime_import,为空时使用drm_gem_prime_import()。驱动先按后备存储能否迁移选定接入方式,两类方式的区别如表 6.9.1 所示。表 6.9.1 两类驱动的接入方式后备存储固定后备存储可迁移典型驱动基于 shmem / DMA helper 的驱动,如 v3d、lima、simpledrm以 TTM 管理显存与 GTT 的驱动,如 amdgpu、xe导
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。