
2.2~2.4 分別討論了drm_driver、drm_device與drm_file三個框架對象,2.5 討論了框架 ioctl 及其權限檢查。新驅動接入 DRM,就是為這三個對象提供驅動側的定義與實現(xiàn):使硬件設備成為可打開的設備節(jié)點,承接用戶態(tài)請求,并在客戶端關閉或設備移除時釋放資源。本節(jié)按接入順序討論驅動需要完成的工作,并以 amdgpu 的實現(xiàn)加以印證。以foo_為前綴的代碼是示意代碼,只保留接入框架所需的部分;amdgpu 代碼取自drivers/gpu/drm/amd/amdgpu/。2.6.1 集成邊界DRM 核心提供設備節(jié)點、請求分派和客戶端管理的通用機制,驅動提供與硬件相關的定義和實現(xiàn),二者的分工如表 2.6.1 所示。表 2.6.1 DRM 核心與驅動的分工環(huán)節(jié)DRM 核心驅動設備節(jié)點分配次設備號,創(chuàng)建并注冊節(jié)點聲明能力位,分配并注冊設備實例打開創(chuàng)建drm_file,掛入filelist按需建立文件私有狀態(tài)