ath9k bluetooth coexistence#

This page documents howbluetooth coexistence is supported by ath9k.

Supported Coexistence Schemes#

Enabling bluetooth coexistence#

Bluetooth coexistence has to be manually enabled when loading ath9k bysetting thebtcoex_enable module parameter.

modprobe ath9k btcoex_enable=1

Cards supporting BTCOEX#

2-wire (two-chip cards with separate WLAN and BT)#

* WB197 ( AR9287 + AR3011 )

3-wire (two-chip cards with separate WLAN and BT)#

* WB195 ( AR9285 + AR3011 )* WB225 ( AR9485 + AR3012 )

MCI (SoC-type cards with integrated WLAN and BT)#

* WB222 ( based on AR9462 )* WB335 ( based on AR9565 )

3-wire scheme details#

Some Atheros cards in both the AR9002 and AR9003 family use this schemein which WLAN and Bluetooth time-shares their usage of the 2.4 GHz band.Three pins are used in this scheme.

PIN

Driven by

Details

BT_ACTIVE

BT

Signals that Bluetooth device is expecting TX or RX activity. Provides WLAN with information about when the antenna is being used by Bluetooth.

BT_PRIORITY

BT

At the start of BT_ACTIVE, it is asserted to indicate the priority of the Bluetooth activity. Then, this pin indicates the TX/RX status of the Bluetooth activity.

WLAN_ACTIVE

WLAN

Indicates when WLAN has taken the antenna.

PTA (Packet Traffic Arbitration ) Algorithm#

BT weights and WLAN weights are programmed in the hardware by thedriver. Hardware infers the Bluetooth activity by sampling the BT_ACTIVEsignal. Whenever there’s Bluetooth activity, hardware compares theassigned weight of Bluetooth traffic and the current WLAN traffic. IfBluetooth traffic has a lower priority, hardware will continue WLANtraffic, thus stomping on the Bluetooth side (and possible interferenceon WLAN side as well). If Bluetooth traffic has a higher priority,hardware will abort WLAN traffic and treat it as if there’s collisionon-air.