硬件:IMX6Q
系统:Linux 4.1.15
一.驱动初始化
Dhd_linux.c (drivers etwirelessbcmdhd)
dhd_module_init调用dhd_wifi_platform_register_drv再到wifi_ctrlfunc_register_drv
wifi_ctrlfunc_register_drv:
单独分析1
/* 对于不同接口,包括usb,sdio,pcie的wifi进行加载 */
我们这里只分析sdio的dhd_wifi_platform_load_sdio
主要是给所有adapters上电,然后匹配func
单独分析2
dhd_bus_register主要是注册sdio驱动sdio_register_driver(&dummy_sdmmc_driver);
通过总线驱动sdio_bus_match匹配,主要匹配三个参数ids->class || ids->vendor || ids->device。
匹配成功后调用bcmsdh_sdmmc_probe 》 sdioh_probe 》 bcmsdh_probe
这里会调用drvinfo.probe,也就是dhdsdio_probe,前面有赋值
这里是重要部分了,涉及网络相关的内容了
我们先分析下dhd_attach
对DHD管理的每个硬件(狗)实例调用一次
我们再来分析一下dhd_attach_net
重点是dhd_register_if
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/15458.html