Linux DRM平台驱动匹配和探测的方法是什么

本篇内容介绍了“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_deviceplatform_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.c

Linux DRM平台驱动匹配和探测的方法是什么