wifi驱动总结(2)
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)的更多相关文章
- WIFI驱动的移植 realtek 8188
一般我们拿到的android源代码中wifi应用层部分是好的, 主要是wifi芯片的驱动要移植并添加进去. wifi驱动的移植, 以realtek的8188etv为例到官网下载相应的驱动, 解压后可以 ...
- 360随身WiFi驱动下载
一场不算太好的体验,但还是解决问题了 360随身WiFi驱动下载地址 事情经过: 某天在家里组装起PC,才发现当时没有在这屋里预留网线接口,走明线穿堂过户肯定是不合适的,还是买个无线网卡吧 自然还是要 ...
- android wifi驱动移植详细过程
转自:http://bbs.imp3.net/thread-10558924-1-1.html 对于刚入手android没多久的人来说,android wifi 驱动的移植确实还是有难度的,不过参考了 ...
- BCM wifi驱动学习
BCMwifi驱动学习 一.wifi详解1 1.代码路径:Z:\home\stonechen\svn\TD550_X\TD550\3rdparty\wifi\BCM43362\special\bcmd ...
- linux_ubuntu 16.04 更新wifi驱动_无法链接wifi问题
ubuntu kylin ubuntu kylin ubuntu kylin wifi 这个很好解决的,16.04 默认 没有使用wifi驱动设备,默认选择的是:不使用设备1.进入到,软件和更新 -- ...
- BeagleBone Black安装小米随身WiFi驱动方法
以下操作直接在beaglebone black上执行 下载驱动源码 git clone https://github.com/rcn-ee/mt7601u.git 下载linux-headers,这是 ...
- 转:禁止360随身wifi驱动自动安装
from:http://bbs.360safe.com/thread-2643500-1-1.html 有曾经数次卸载随身wifi后,插上又会自动安装随身wifi驱动的,也可以看看下面的解决办法. 卸 ...
- 在全志平台调试博通的wifi驱动(类似ap6212)【转】
转自:http://blog.csdn.net/fenzhi1988/article/details/44809779 调试驱动之前,首先先看看驱动代码,了解代码大致工作流程,再根据硬件配置驱动,比如 ...
- Linux 下wifi 驱动开发(四)—— USB接口WiFi驱动浅析
源: Linux 下wifi 驱动开发(四)—— USB接口WiFi驱动浅析
- 解决WIFI驱动RTL8188无法在rk3168平板Android4.2启动wifi的问题
http://blog.csdn.net/morixinguan/article/details/75228335 上一篇博文能把ko编译出来,非常兴奋的想,这一定是没问题了,结果删除原先的ko后,加 ...
随机推荐
- 常见【十种】WEB攻击及防御技术总结
最近参加了一个WEB安全培训,感觉WEB攻击跟防御都是挺有意思的.以下总结比较简短,仅供观赏哈. 一.XSS攻击 [介绍] xss攻击是跨站脚本攻击,例如在表单中提交含有可执行的javascript的 ...
- 关于bootstrap原理及优缺点
网格系统的实现原理,是通过定义容器大小,平分12份(也有平分成24份或32份,但12份是最常见的),再调整内外边距,最后结合媒体查询,就制作出了强大的响应式网格系统.Bootstrap框架中的网格系统 ...
- SPOJ - BITDIFF: Bit Difference [神妙の预处理]
tags:[数学][预处理]题解:我们用一种巧妙的预处理姿势:记录下每一个数位上分别出现了多少个1.如果第i个数位上出现了cnt[i]个1,那么,在这个数位上产生的"差异值"为:2 ...
- 手机自动化测试:Appium源码分析之跟踪代码分析九
手机自动化测试:Appium源码分析之跟踪代码分析九 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家 ...
- Oracle的基本学习(二)—基本查询
一.基本查询语句 (1)查看当前用户 show user; (2)查看当前用户下的表 select * from tab; (3)查看员工表的结构 desc emp; (4)选择全部列 S ...
- node压力测试
压力测试 ab测试(ApacheBench); 介绍: 这是apache提供的压测工具; 使用: 启动node服务; 我用的XAMPP,进入bin文件夹,打开命令行,执行下面命令: // -n: 总请 ...
- 深入浅出分析MySQL索引设计背后的数据结构
在我们公司的DB规范中,明确规定: 1.建表语句必须明确指定主键 2.无特殊情况,主键必须单调递增 对于这项规定,很多研发小伙伴不理解.本文就来深入简出地分析MySQL索引设计背后的数据结构和算法,从 ...
- CSharpGL(41)改进获取字形贴图的方法
CSharpGL(41)改进获取字形贴图的方法 在(http://www.cnblogs.com/bitzhuwei/p/CSharpGL-28-simplest-way-to-creating-fo ...
- ENetwork Basic Configuration PT Practice SBA
CCNA Exploration: 网络基础知识 (版本 4.0) A few things to keep in mind while completing this activity: 1 Do ...
- 【Tomcat源码学习】-3.应用管理
通过上一节我们完成了对容器进行了加载.初始化.启动,而对于应用的加载部分独立出来,本节进行单独的讲解 一.应用加载流程 1)应用识别,Context创建 在Host启动后,会调用Host的监听Ho ...