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

转载于:https://www.cnblogs.com/dq23578/p/6774277.html

wifi驱动总结(2)相关推荐

  1. wifi linux 驱动分析,Linux 下wifi 驱动开发(二)—— WiFi模块浅析

    一.什么是wifi 模块百度百科上这样定义: Wi-Fi模块又名串口Wi-Fi模块,属于物联网传输层,功能是将串口或TTL电平转为符合Wi-Fi无线网络通信标准的嵌入式模块,内置无线网络协议IEEE8 ...

  2. 螃蟹wifi驱动在AP模式下存在挂死系统的问题

    2022/02/28更新 AP6212做同样的测试完全没有问题,所以说螃蟹是垃圾.博通无敌. ----------------------------------------------------- ...

  3. 移植MT76x8 私有WIFI驱动V4.1.0.0到Openwrt 18.06所遇到的坑

    Openwrt系统,路由或者IOT网关方面,市面上能供个人或者小团队甚至小企业 ,可玩性高的也就MT76xx系列路由芯片了,其中很大一部分原因主要在于MTK的WIFI驱动管控不是很严格,相对较容易获取 ...

  4. hi3516配置wifi_HISI 3516A移植mt7601u的wifi驱动

    第一步:下载驱动 mt7601u的wifi驱动有两部分:STA和AP. 下载地址如下: 第二步:将驱动或模块编译进内核 1.解压驱动代码并copy到\osdrv\opensource\kernel\l ...

  5. linux小米随身wifi驱动下载,小米随身wifi驱动官方下载

    小米随身wifi功能介绍 插上.连接.上网 创建WiFi就这么简单,插上电脑或笔记本后,启动小米随身WiFi,你的手机.平板就能连上WiFi. 告别网线 将随身WiFi变身为无线网卡,无法连接无线的台 ...

  6. Linux 下wifi 驱动开发(二)—— WiFi模块浅析

    一.什么是wifi 模块 百度百科上这样定义: Wi-Fi模块又名串口Wi-Fi模块,属于物联网传输层,功能是将串口或TTL电平转为符合Wi-Fi无线网络通信标准的嵌入式模块,内置无线网络协议IEEE ...

  7. Linux 下wifi 驱动开发(三)—— SDIO接口WiFi驱动浅析

    SDIO-Wifi模块是基于SDIO接口的符合wifi无线网络标准的嵌入式模块,内置无线网络协议IEEE802.11协议栈以及TCP/IP协议栈,能够实现用户主平台数据通过SDIO口到无线网络之间的转 ...

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

    前面学习了SDIO接口的WiFi驱动,现在我们来学习一下USB接口的WiFi驱动,二者的区别在于接口不同.而USB接口的设备驱动,我们前面也有学习,比如USB摄像头驱动.USB鼠标驱动,同样都符合Li ...

  9. 详细记录丨Realtek RTL8188FU WiFi 驱动移植

    1 参考资料 1.芯片数据手册:TL8188FCA.pdf 2.驱动移植手册:Quick_Start_Guide_for_Driver_Compilation_and_Installation.pdf ...

  10. Android wifi驱动的移植 realtek 8188

    Android wifi驱动的移植 一般我们拿到的android源代码中wifi应用层部分是好的, 主要是wifi芯片的驱动要移植并添加进去. wifi驱动的移植, 以realtek的8188etv为 ...

最新文章

  1. Kafka 3.0重磅发布,都更新了些什么?
  2. win7怎么桌面能不能设置html,win7系统怎么格式化
  3. 论文阅读(3)--SPDA-CNN: Unifying Semantic Part Detection and Abstraction for Fine-grained Recognition
  4. 【LeetCode】3月31日打卡-Day16-数组排序算法汇总
  5. knockout.js的简介和简单使用
  6. 大学计算机文档基本操作实验的效果,上海工程技术大学计算机实验报告5
  7. python树莓派编程 沃尔弗拉姆_《 Python树莓派编程》——3.3 Python入门-阿里云开发者社区...
  8. vscode插件之php插件koroFileHeader(自动生成注释)
  9. 【Multisim仿真】利用运算放大器产生方波、三角波发生器
  10. 2021年安全员-A证考试技巧及安全员-A证
  11. (程序详解)51单片机+DS12C887+1602高精度时钟,软件:keil4,Proteus 8
  12. 计算雅思成绩C语言,雅思成绩总分其实是这么计算的
  13. 计算机软件系统思政点,高校思政课网络评估系统的设计
  14. 你想要的资源我都有(2)
  15. IB 物理真题: 比潜热、理想气体
  16. stm32实现按键控制三色灯(stm32cubeIDE)
  17. 高中学计算机都是学什么,计算机有哪些专业主要学什么
  18. MGC Group区块链、人工智能的A面与B面
  19. 群控系统linux脚本,群控脚本if then
  20. java知识竞赛题库_Java练习题库(含答案及解析)100题

热门文章

  1. 小班安全使用计算机教案,小班教案安全用电
  2. Aspose-Cells结合Apache POI生成excel文件以及转换为pdf
  3. 持久化保存iptables规则
  4. 手机格斗网游该如何避免延迟
  5. 机器学习ai选股_机器学习技术能够有效用于选股吗?(下)
  6. ftpphp_PHP实现ftp上传文件示例
  7. 计算机管理找不到指定模块,卸载时找不到指定模块怎么办_电脑卸载找不到指定模块处理方法-win7之家...
  8. docker登录mysql数据库_从docker容器连接到远程MySQL数据库
  9. sqoop导出数据时:ERROR tool.ExportTool: Error during export: Export job failed!解决
  10. Kylin兼容性问题解决