diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-core.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-core.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c index 4beddade7423..1921307a23b8 100644 --- a/drivers/net/wireless/iwlwifi/iwl-core.c +++ b/drivers/net/wireless/iwlwifi/iwl-core.c | |||
@@ -1872,6 +1872,16 @@ int iwl_mac_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) | |||
1872 | if (err) | 1872 | if (err) |
1873 | goto out_err; | 1873 | goto out_err; |
1874 | 1874 | ||
1875 | if (priv->cfg->advanced_bt_coexist && | ||
1876 | vif->type == NL80211_IFTYPE_ADHOC) { | ||
1877 | /* | ||
1878 | * pretend to have high BT traffic as long as we | ||
1879 | * are operating in IBSS mode, as this will cause | ||
1880 | * the rate scaling etc. to behave as intended. | ||
1881 | */ | ||
1882 | priv->bt_traffic_load = IWL_BT_COEX_TRAFFIC_LOAD_HIGH; | ||
1883 | } | ||
1884 | |||
1875 | goto out; | 1885 | goto out; |
1876 | 1886 | ||
1877 | out_err: | 1887 | out_err: |
@@ -1909,6 +1919,17 @@ void iwl_mac_remove_interface(struct ieee80211_hw *hw, | |||
1909 | } | 1919 | } |
1910 | memset(priv->bssid, 0, ETH_ALEN); | 1920 | memset(priv->bssid, 0, ETH_ALEN); |
1911 | } | 1921 | } |
1922 | |||
1923 | /* | ||
1924 | * When removing the IBSS interface, overwrite the | ||
1925 | * BT traffic load with the stored one from the last | ||
1926 | * notification, if any. If this is a device that | ||
1927 | * doesn't implement this, this has no effect since | ||
1928 | * both values are the same and zero. | ||
1929 | */ | ||
1930 | if (vif->type == NL80211_IFTYPE_ADHOC) | ||
1931 | priv->bt_traffic_load = priv->notif_bt_traffic_load; | ||
1932 | |||
1912 | mutex_unlock(&priv->mutex); | 1933 | mutex_unlock(&priv->mutex); |
1913 | 1934 | ||
1914 | if (scan_completed) | 1935 | if (scan_completed) |