先问一个问题,DRM模块如何初始化,在哪个节点初始化,初始化又完成了哪些方面的工作?

drm_core_init
这个函数是通过module(drm_core_init)明确在系统启动时进行调用.指定设备的major号,linux中默认为226. 创建并初始化一个idr机制,这个机制其实原理上就是一个哈希表,由内核系统维护,能够快速的查找。调用
register_chrdev(DRM_MAJOR, “drm”, &drm_stub_fops)
注册一个字符设备,名称为drm,指定major号为226(可以cat /proc/devices就能够看到所有的块设备和字符设备,以及对应的major号)。

Logo

更多推荐