On 3/2/2018 10:59 AM, Marcel Holtmann wrote:
This patch introduces NL80211_CMD_SET_BTCOEX command and
NL80211_ATTR_BTCOEX_OP attribute to enable or disable btcoex.
What kind of btcoex are we talking about here? Is it signalling
between wlan and bt to get access to the shared RF.
Yes, at least that's how I understand this.
Why would it require user-space interaction? Are there no options for
wlan to detect bt is in use, ie. bt hci is setup, and vice versa. Can
it be indicated in platform data or device tree. Trying to understand
the use-case here.
One use case is being able to disable btcoex in case of problems or to
test if it's btcoex related. I think during the last five years the need
for this interface has come every once in a while.
Well, you would want to disable btcoex *and* bt to verify wlan is working
properly on its own. And similarly disable btcoex *and* wlan to verify bt works
Now I do recall a thread between you and Marcel. Looked it up and it was this thread ,
but did not see a follow-up on it. I suspect it involves more than just an enable/disable
state. That may be fine for devices in which BT and WLAN are integrated and coordination
of RF use is done on the device. The "btcoex subsystem" thread seems to aim for
more like providing the coordination logic so independent BT device and WLAN device can
still use the same RF. So before adopting the api in nl80211 it would be good to revive
actually we can solve any number of WiFi devices vs any number of Bluetooth
devices on the same host. It goes mainly in the direction of WiFi having a
notifier about its currently used channels and Bluetooth subsystem can
subscribe to these and issue AFH channel map classification updates as needed.
I see. From this I would say the notifier functionality would sit nicely
The other way around for the Bluetooth audio cases and a shared antenna, you
need a tighter integration. If the antenna is not shared, then it makes no
difference anyway since you are not sharing the transceiver. Normally these are
just handled by the firmware internally and right priorities for RF scheduling
are done. The Bluetooth controller normally then does a bit too much, but
nobody wants to implement that in the host cleanly, and so they all hack it
into the controller. I think that Realtek has some older chips where it would
be really needed in the host. And Intel controllers can also let the host do
it, but by default it is magically done by the controller.
Not entirely sure what you mean by "does a bit too much", but this is
what I considered as being btcoex. Indeed most do the whole coordination
in the device and not on the host. Pretty sure about Broadcom ;-)