• [driver] probe调用的时机


    设备驱动probe的时机有如下几种(分为自动触发和手动触发):

    • 将struct device类型的变量注册到内核中时自动触发(device_register,device_add,device_create_vargs,device_create)
    • 将struct device_driver类型的变量注册到内核中时自动触发(driver_register)
    • 手动查找同一bus下的所有device_driver,如果有和指定device同名的driver,执行probe操作(device_attach)
    • 手动查找同一bus下的所有device,如果有和指定driver同名的device,执行probe操作(driver_attach)
    • 自行调用driver的probe接口,并在该接口中将该driver绑定到某个device结构中----即设置dev->driver(device_bind_driver)

    注1:probe动作实际是由bus模块(会在下一篇文章讲解)实现的,这不难理解:device和device_driver都是挂载在bus这根线上,因此只有bus最清楚应该为哪些device、哪些driver配对。

    注2:每个bus都有一个drivers_autoprobe变量,用于控制是否在device或者driver注册时,自动probe。该变量默认为1(即自动probe),bus模块将它开放到sysfs中了,因而可在用户空间修改,进而控制probe行为。

  • 相关阅读:
    搭建视频网站光线cms
    Linux FTP服务配置
    Chromium下载地址
    Ubuntu Server批量ping选择最快源
    vs2010扩展
    私有云
    mssql格式化输出
    CSLA .NET 3.6支持Silverlight 2
    Unity Application Block 1.2 for Silverlight December 2008
    silverlight寻奇 Graphite
  • 原文地址:https://www.cnblogs.com/aaronbin/p/15356938.html
Copyright © 2020-2023  润新知