Download the new Linux Driver

Download Now

Wi-Fi Bluetooth for Linux

tstutter
Level 1
First reply posted First question asked Welcome!
Level 1

My setup:

- ARM host processor running 5.10 Linux. 

- Murata 1MW BT/Wi-Fi combo chip (BCM43455) over SDIO

- Wi-Fi firmware: version 7.45.249

- Using linux/hostapd patch sets from "cypress-fmac-v5.10.9-2022_0511"

 

The issue:

After removing the brcmfmac kernel module, Bluetooth performs very poorly (drops active connections, scan no longer detects devices, sco audio is extremely crackly if the connection does not drop, etc.). This is only observed if Wi-Fi was associated to an AP within 3 seconds of kernel module removal. Re-inserting the module always corrects the issue. 

Example steps to reproduce the issue:

- Start with brcmfmac modules loaded and associated to an AP, then run the following in a script:

ifdown wlan0

modprobe -r brcmfmac

- Bluetooth performs poorly

Then, I ran the following test:

- Start with brcmfmac modules loaded and associated to an AP, then run the following in a script:

wpa_cli disconnect

sleep 3

ifdown wlan0

modprobe -r brcmfmac

- Bluetooth functions normally.

Once I realized a 3 second delay after disconnect prevented the issue, I investigated to see how late in the module removal the delay could be placed before the issue began to occur again. I tried moving the delay into the kernel module itself and found that as long as the 3 second delay is put before the call to brcm_chip_set_passive() made in brcmf_sdio_remove(), then the issue is avoided. If I place it after that call, then I experience the poor Bluetooth performance. 

It seems like the module is left in a state where Bluetooth is in low priority.  Perhaps the module is still attempting to disassociate with the network when the chip is placed in passive mode? I am trying to understand what is happening so that I can avoid this issue properly, rather than inserting a long delay and hoping it is always sufficient. 

Any insight as to what is happening would be greatly appreciated. It is difficult to find information on the BT/Wi-Fi coexistence mechanism used by this chip. 

Thank you,

0 Likes
2 Replies
Vivek_gunapati
Moderator
Moderator 50 replies posted 100 sign-ins 50 sign-ins
Moderator

Hi @tstutter , Thank you for the detailed explanation of the issue, this help to understand the issue better

Could you also share with us the NVRAM file used? i.e cyfmac43455-sdio.txt file located in /lib/firmware/cypress/ ?

Also can you please try adding the below coex parameter in the "cyfmac43455-sdio.txt" file if there are not present and check if the issue persists?

btc_mode=1
btc_params8=0x4e20
btc_params1=0x7530
btc_params50=0x972c

If the issue persists i can bring up the setup on my side.

Regards
Vivek.

0 Likes
tstutter
Level 1
First reply posted First question asked Welcome!
Level 1

@Vivek_gunapati , 

Thank you for the suggestion. I have attached the NVRAM file I am using. It looks like all those parameters are already defined in there. 

Regards,

0 Likes