1、dhd_module_init(驱动模块初始化函数)
  → dhd_wifi_platform_register_drv(查找设备,注册驱动)
    → 1) wifi_ctrlfunc_register_drv(wifi控制驱动注册) Y
     2) dhd_wifi_platform_load(wifi控制功能不存在时调用) N
     3) wifi_ctrlfunc_unregister_drv(由于初始化失败导致驱动未注册成功时调用) N

2、wifi_ctrlfunc_register_drv
  → 1)bus_find_device(寻找平台设备)
    2)wifi_adapter_info_t *adapter(wifi_adapter_info_t初始化)
     bcmdhd_wifi_platdata_t *dhd_wifi_platdata(bcmdhd_wifi_platdata_t初始化)
     dhd_wifi_platdata->adapters = adapter(将adapter传递给全局变量dhd_wifi_platdata)
    3) wifi_platform_data dhd_wlan_control(wifi_platform_data初始化)
       adapter->wifi_plat_data = (void *)&dhd_wlan_control(使用dhd_wlan_control全局变量初始化adapter中的wifi_plat_data成员)
    4)bcm_wlan_set_plat_data(wlan平台数据设置)
    5)dhd_wifi_platform_load(wifi平台登录)

3、bcm_wlan_set_plat_data
  → 1)dhd_wlan_control.set_power = bcm_wlan_set_power
      2)dhd_wlan_control.set_carddetect = bcm_wlan_set_carddetect
    3) dhd_wlan_control.get_mac_addr = bcm_wlan_get_mac_address

4、dhd_wifi_platform_load
  → 1) wl_android_init(初始化dhd_msg_level |= DHD_ERROR_VAL,给iface_name赋值为wlan)
  → 2) dhd_wifi_platform_load_sdio
    → 1) dhd_bus_reg_sdio_notify(注册sdio driver,sdio驱动获取wifi列表的设备后调用dummy_probe -> up(dhd_chipup_sem))
    → 2) wifi_platform_set_power(调用adapter成员wifi_plat_data中的set_power开启模块电源)
    → 3) wifi_platform_bus_enumerate(调用adapter成员wifi_plat_data中的s et_carddetect)
    → 4) dhd_bus_register
      → bcmsdh_register(&dhd_sdio)
        → 1) 初始化drvinfo (见①)
        → 2) bcmsdh_register_client_driver
          → sdio_register_driver(注册名为bcmsdh_sdmmc的驱动)
            → 进入bcmsdh_sdmmc_probe
              → sdioh_probe
                → bcmsdh_probe→ drvinfo.probe(①) → dhdsdio_probe → dhd_download_fw_on_driverload = TRUE

wifi驱动总结(2)的更多相关文章

  1. WIFI驱动的移植 realtek 8188

    一般我们拿到的android源代码中wifi应用层部分是好的, 主要是wifi芯片的驱动要移植并添加进去. wifi驱动的移植, 以realtek的8188etv为例到官网下载相应的驱动, 解压后可以 ...

  2. 360随身WiFi驱动下载

    一场不算太好的体验,但还是解决问题了 360随身WiFi驱动下载地址 事情经过: 某天在家里组装起PC,才发现当时没有在这屋里预留网线接口,走明线穿堂过户肯定是不合适的,还是买个无线网卡吧 自然还是要 ...

  3. android wifi驱动移植详细过程

    转自:http://bbs.imp3.net/thread-10558924-1-1.html 对于刚入手android没多久的人来说,android wifi 驱动的移植确实还是有难度的,不过参考了 ...

  4. BCM wifi驱动学习

    BCMwifi驱动学习 一.wifi详解1 1.代码路径:Z:\home\stonechen\svn\TD550_X\TD550\3rdparty\wifi\BCM43362\special\bcmd ...

  5. linux_ubuntu 16.04 更新wifi驱动_无法链接wifi问题

    ubuntu kylin ubuntu kylin ubuntu kylin wifi 这个很好解决的,16.04 默认 没有使用wifi驱动设备,默认选择的是:不使用设备1.进入到,软件和更新 -- ...

  6. BeagleBone Black安装小米随身WiFi驱动方法

    以下操作直接在beaglebone black上执行 下载驱动源码 git clone https://github.com/rcn-ee/mt7601u.git 下载linux-headers,这是 ...

  7. 转:禁止360随身wifi驱动自动安装

    from:http://bbs.360safe.com/thread-2643500-1-1.html 有曾经数次卸载随身wifi后,插上又会自动安装随身wifi驱动的,也可以看看下面的解决办法. 卸 ...

  8. 在全志平台调试博通的wifi驱动(类似ap6212)【转】

    转自:http://blog.csdn.net/fenzhi1988/article/details/44809779 调试驱动之前,首先先看看驱动代码,了解代码大致工作流程,再根据硬件配置驱动,比如 ...

  9. Linux 下wifi 驱动开发(四)—— USB接口WiFi驱动浅析

    源: Linux 下wifi 驱动开发(四)—— USB接口WiFi驱动浅析

  10. 解决WIFI驱动RTL8188无法在rk3168平板Android4.2启动wifi的问题

    http://blog.csdn.net/morixinguan/article/details/75228335 上一篇博文能把ko编译出来,非常兴奋的想,这一定是没问题了,结果删除原先的ko后,加 ...

随机推荐

  1. Java 对象序列化和反序列化

         之前的文章中我们介绍过有关字节流字符流的使用,当时我们对于将一个对象输出到流中的操作,使用DataOutputStream流将该对象中的每个属性值逐个输出到流中,读出时相反.在我们看来这种行 ...

  2. java做单用户的多重并发会话数限制

    判定条件很简单,就是在同一时刻,同一帐号仅在一个终端上可正常操作. 我这里用简单的key,value进行判定,将用户存储在map里面,新登录用户登陆进系统后,判断map里是否存在当前用户,若存在就删除 ...

  3. 无线接收信号强度(RSSI)那些事儿

    本文由嵌入式企鹅圈原创团队成员黄鑫供稿. 本文所述的原理适用于所有无线传输技术,只是用蓝牙来举例.应该说,嵌入式企鹅圈更加偏重于嵌入式和物联网.安卓技术原理方面的知识分享和传播,其次才是实践,尽管很多 ...

  4. phpcms2008常用函数小结

    {$head[title]} 页面标题,用法: <title>{$head[title]}-{$PHPCMS[sitename]}</title> {$PHPCMS[siten ...

  5. 性能调优之SQL优化

    poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-845052 ...

  6. 实现QQ、微信、新浪微博和百度第三方登录(Android Studio)

    前言: 对于大多数的APP都有第三方登录这个功能,自己也做过几次,最近又有一个新项目用到了第三方登录,所以特意总结了一下关于第三方登录的实现,并拿出来与大家一同分享: 各大开放平台注册账户获取AppK ...

  7. 容易忽略的z-index失效问题

    前些天写一个模仿虎牙网站幻灯片的插件,期间遇到我一直都没注意到的问题,就是z-idnex会失效的问题. 我是将幻灯片的左右按设置为float浮动的,然后在调试点击的时候发现无论怎么调高z-index都 ...

  8. 浩哥解析MyBatis源码(六)——DataSource数据源模块之池型数据源

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6675674.html 1 回顾 上一文中解读了MyBatis中非池型数据源的源码,非池型也 ...

  9. Nodejs安装后修改全局路径配置

    --以Windows平台为例,类Unix平台操作方式相同 1. 新建保存node_modules的文件夹,例如我的路径为:D:\NodeJS Lib\npm 2. 在DOS窗口输入以下代码,把缓存及储 ...

  10. MarkDown 常用语法教程

    MarkDown 语法说明 [TOC] 标题 标题1 ====== 标题2 ----- ## 大标题 ### 小标题 #### 小标题 列表 无序列表 + 列表文本前使用 [减号+空格] * 列表文本 ...