本篇内容介绍了“Linux DRM平台驱动匹配和探测的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
Linux内核通过module_platform_driver(rockchip_drm_platform_driver)
函数注册RK3399 DRM框架驱动代码,该宏展开如下:
static int __init rockchip_drm_platform_driver_init(void){ return platform_driver_register(&rockchip_drm_platform_driver);}...
下面通过分析函数platform_driver_register()
的调用流程,展示RK3399 DRM框架platform_device
和platform_driver
匹配过程和驱动探测过程。
具体调用流程如下:
rockchip_drm_platform_driver_init()-> ## rockchip_drm_drv.c platform_driver_register()-> ## platform_device.h __platform_driver_register()-> ## platform.c driver_register()-> ## driver.c bus_add_driver()-> ## bus.c driver_attach()-> ## dd.c bus_for_each_dev()-> ## bus.c __driver_attach()-> ## dd.c 1.driver_match_device()-> ## base.h match platform_match() ## platform.c 开始match 2.driver_probe_device()-> ## dd.c probe really_probe()-> ## dd.c platform_drv_probe()-> ## platform.c 开始probe rockchip_drm_platform_probe() ## rockchip_drm_drv.cLinux DRM平台驱动匹配和探测的方法是什么