Electronic Joint Business

Solution for E-Business

Linux GPU 驱动开发指南 (一)深入 DRM

文章评价: 本文主要为驱动开发者深入介绍 DRM 内部细节,以方便为现有的驱动程序添加最新的功能支持。 文中将先介绍一些驱动初始化中的常见要求,比如设置命令缓冲区、创建初始输出配置和初始化核心服务等等。后面的章节中我们将通过实现说明和例子来更详细地介绍核心内部的细节。1 DRM 层为图形驱动程序提供了多种服务,大部分服务由 libdrm 所提供的应用程序接口来驱动,这个类库包装了大多数 DRM ioctls,包括 vblank 事件处理,内存管理,输出管理,帧缓冲区管理,命令提交、屏蔽、挂起/恢复的支持以及 DMA 服务等等。 驱动初始化 DRM 驱动的核心是 struct drm_driver 结构体。驱动通常静态地初始化 drm_driver 结构,并将它传递给 drm_dev_alloc() 函数以分配一个设备实例。等到设备实例被完全初始化后,再调用 drm_dev_register() 对其进行注册。(这使之在用户空间可访问)。 drm_driver 结构中包含了描述驱动及其支持的功能各种静态信息,另外有供 DRM 核心调用的函数指针以实现 DRM API。我们将首先了解 drm_drver 结构的静态信息字段,然后再对各种操作进行详细介绍,在最后一节中,这些操作将被运用。 驱动信息 主版本号 Major , 小版本号 Minor 以及修订号 Patchlevel int major; int minor; int patchlevel; DRM 通过版本号 Major , 小版本号 Minor […]

, , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.