On 06/04/2023 18:35, Marc Gonzalez wrote: > # curl -o /dev/null http://192.168.1.254:8095/fixed/1G > % Total % Received % Xferd Average Speed Time Time Time Current > Dload Upload Total Spent Left Speed > 100 1024M 100 1024M 0 0 9747k 0 0:01:47 0:01:47 --:--:-- 9544k I was able to import the bcmdhd driver from: https://android.googlesource.com/kernel/hikey-linaro/+log/refs/heads/android-amlogic-bmeson-6.1/drivers/net/wireless/bcmdhd as pointed out by Neil. I switched from brcmfmac to bcmdhd with: -CONFIG_BRCMFMAC=y -CONFIG_BRCMDBG=y +CONFIG_BCMDHD=y +CONFIG_BCMDHD_FW_PATH="" +CONFIG_BCMDHD_NVRAM_PATH="" +CONFIG_BCMDHD_SDIO_IRQ=y and hard-coded the FW paths in dhd_set_path_params(). Here are the benchmark results on the bcm4359 (AP6398SR3 module) # curl -o /dev/null http://192.168.1.254:8095/fixed/1G % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1024M 100 1024M 0 0 17.3M 0 0:00:58 0:00:58 --:--:-- 17.4M which is noticeably faster (80%) than brcmfmac results. FTR, system was 18.5% busy for this benchmark: 81.5653% 195114 0:swapper 13.8287% 33080 57:irq/17-ffe03000 1.3967% 3341 173:curl 1.1350% 2715 63:dhd_rxf 1.0455% 2501 129:ksdioirqd/mmc2 1.0004% 2393 62:dhd_dpc 0.0167% 40 171:perf 0.0088% 21 19:ksoftirqd/1 I was not able to get the driver to work with bcm43752 (AP6398SR32 module). It loops with: [ 15.221622] wl_run_escan: LEGACY_SCAN sync ID: 0, bssidx: 0 [ 15.221661] CFG80211-ERROR) wl_run_escan : [ 15.221664] Escan set error (-37) [ 15.229067] dhd_ioctl_entry_local invalid parameter [ 15.233902] CFG80211-ERROR) wl_run_escan : [ 15.233904] error (-37), cnt=1 [ 15.241056] CFG80211-ERROR) wl_cfg80211_scan : [ 15.241059] scan error (-11) But I may have bungled adding the "new" chip, since the driver architecture is... [censored]. I suppose the conclusion is: 1) bcmdhd is 80% faster than brcmfmac in one download scenario 2) CPU usage scales linearly with throughput (on this system, 1% ~ 7 Mbps) Regards