第二章 DRM 框架的文件模型: 2.6 DRM 设备的驱动集成 2.2~2.4 分别讨论了drm_driver、drm_device与drm_file三个框架对象,2.5 讨论了框架 ioctl 及其权限检查。新驱动接入 DRM,就是为这三个对象提供驱动侧的定义与实现:使硬件设备成为可打开的设备节点,承接用户态请求,并在客户端关闭或设备移除时释放资源。本节按接入顺序讨论驱动需要完成的工作,并以 amdgpu 的实现加以印证。以foo_为前缀的代码是示意代码,只保留接入框架所需的部分;amdgpu 代码取自drivers/gpu/drm/amd/amdgpu/。2.6.1 集成边界DRM 核心提供设备节点、请求分派和客户端管理的通用机制,驱动提供与硬件相关的定义和实现,二者的分工如表 2.6.1 所示。表 2.6.1 DRM 核心与驱动的分工环节DRM 核心驱动设备节点分配次设备号,创建并注册节点声明能力位,分配并注册设备实例打开创建drm_file,挂入filelist按需建立文件私有状态