Linux Broadcom wireless

One, Basic Knowledge

1. The brcm80211 drivers are included in the kernel. They are named brcmsmac for PCI cards and brcmfmac for SDIO devices.

2. brcm80211

2.1. The kernel contains two built-in open-source drivers: brcmfmac for native FullMAC and brcmsmac for mac80211-based SoftMAC. They should be automatically loaded when booting.

2.2. brcmfmac supports newer chipsets, and supports AP mode, P2P mode, or hardware encryption.

2.3. brcmsmac only supports old chipsets like BCM4313, BCM43224, BCM43225.

Two, FAQs

1. 如何将wlan-platdata的驱动先于DHD驱动运行?

Wifi load driver when kernel bootup

2. Some Macro

dhd_linux-platdata.c : Macro CUSTOMER_HW is defined. And use Android style wifi platform data (aka wifi control function).

dhd_linux-platdata.c : Marco CONFIG_DTS is not defined.


wifi_ctrlfunc_register_drv

dhd_gpio.c : Macro CUSTOMER_OOB is defined.



3. failed in dhd_linux_platdev.c

882 if (down_timeout(&dhd_chipup_sem, msecs_to_jiffies(POWERUP_WAIT_MS)) == 0) {

883                printk("%s: %s ===> %d\n", __FILE__, __func__, __LINE__);

884                dhd_bus_unreg_sdio_notify();

885                printk("%s: %s ===> %d\n", __FILE__, __func__, __LINE__);

886                chip_up = TRUE;         

887                break;

888            }



wifi_platform_bus_enumerate()

===calls===>plat_data->set_carddetect(device_present), which is dhd_wlan_set_carddetect()

===calls===>rockchip_wifi_set_carddetect(1) or rockchip_wifi_set_carddetect()

===calls===>mmc_host_rescan()

你可能感兴趣的:(Linux Broadcom wireless)