• Juuso Oikarinen's avatar
    mac80211: Add interface for driver to temporarily disable dynamic ps · f90754c1
    Juuso Oikarinen authored
    This mechanism introduced in this patch applies (at least) for hardware
    designs using a single shared antenna for both WLAN and BT. In these designs,
    the antenna must be toggled between WLAN and BT.
    
    In those hardware, managing WLAN co-existence with Bluetooth requires WLAN
    full power save whenever there is Bluetooth activity in order for WLAN to be
    able to periodically relinquish the antenna to be used for BT. This is because
    BT can only access the shared antenna when WLAN is idle or asleep.
    
    Some hardware, for instance the wl1271, are able to indicate to the host
    whenever there is BT traffic. In essence, the hardware will send an indication
    to the host whenever there is, for example, SCO traffic or A2DP traffic, and
    will send another indication when the traffic is over.
    
    The hardware gets information of Bluetooth traffic via hardware co-existence
    control lines - these lines are used to negotiate the shared antenna
    ownership. The hardware will give the antenna to BT whenever WLAN is sleeping.
    
    This patch adds the interface to mac80211 to facilitate temporarily disabling
    of dynamic power save as per request of the WLAN driver. This interface will
    immediately force WLAN to full powersave, hence allowing BT coexistence as
    described above.
    
    In these kind of shared antenna desings, when WLAN powersave is fully disabled,
    Bluetooth will not work simultaneously with WLAN at all. This patch does not
    address that problem. This interface will not change PSM state, so if PSM is
    disabled it will remain so. Solving this problem requires knowledge about BT
    state, and is best done in user-space.
    Signed-off-by: default avatarJuuso Oikarinen <juuso.oikarinen@nokia.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    f90754c1
mlme.c 64.2 KB