On Thu, Jun 17, 2010 at 08:42:33AM +0300, Juuso Oikarinen wrote: > 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: Juuso Oikarinen <juuso.oikarinen@xxxxxxxxx> > --- > v3: separate ieee80211_dyn_ps_enable/ieee80211_dyn_ps_enable functions CC [M] net/mac80211/mlme.o net/mac80211/mlme.c: In function ‘ieee80211_recalc_ps’: net/mac80211/mlme.c:598: error: ‘struct ieee80211_conf’ has no member named ‘dynamic_ps_forced_timeout’ make[1]: *** [net/mac80211/mlme.o] Error 1 John -- John W. Linville Someday the world will need a hero, and you linville@xxxxxxxxxxxxx might be all we have. Be ready. -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html