|
@@ -478,11 +478,6 @@ static const struct ieee80211_vht_cap mac80211_vht_capa_mod_mask = {
|
|
},
|
|
},
|
|
};
|
|
};
|
|
|
|
|
|
-static const u8 extended_capabilities[] = {
|
|
|
|
- 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
- WLAN_EXT_CAPA8_OPMODE_NOTIF,
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len,
|
|
struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len,
|
|
const struct ieee80211_ops *ops)
|
|
const struct ieee80211_ops *ops)
|
|
{
|
|
{
|
|
@@ -539,10 +534,6 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len,
|
|
WIPHY_FLAG_REPORTS_OBSS |
|
|
WIPHY_FLAG_REPORTS_OBSS |
|
|
WIPHY_FLAG_OFFCHAN_TX;
|
|
WIPHY_FLAG_OFFCHAN_TX;
|
|
|
|
|
|
- wiphy->extended_capabilities = extended_capabilities;
|
|
|
|
- wiphy->extended_capabilities_mask = extended_capabilities;
|
|
|
|
- wiphy->extended_capabilities_len = ARRAY_SIZE(extended_capabilities);
|
|
|
|
-
|
|
|
|
if (ops->remain_on_channel)
|
|
if (ops->remain_on_channel)
|
|
wiphy->flags |= WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL;
|
|
wiphy->flags |= WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL;
|
|
|
|
|
|
@@ -591,6 +582,13 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len,
|
|
wiphy->ht_capa_mod_mask = &mac80211_ht_capa_mod_mask;
|
|
wiphy->ht_capa_mod_mask = &mac80211_ht_capa_mod_mask;
|
|
wiphy->vht_capa_mod_mask = &mac80211_vht_capa_mod_mask;
|
|
wiphy->vht_capa_mod_mask = &mac80211_vht_capa_mod_mask;
|
|
|
|
|
|
|
|
+ local->ext_capa[7] = WLAN_EXT_CAPA8_OPMODE_NOTIF;
|
|
|
|
+
|
|
|
|
+ wiphy->extended_capabilities = local->ext_capa;
|
|
|
|
+ wiphy->extended_capabilities_mask = local->ext_capa;
|
|
|
|
+ wiphy->extended_capabilities_len =
|
|
|
|
+ ARRAY_SIZE(local->ext_capa);
|
|
|
|
+
|
|
INIT_LIST_HEAD(&local->interfaces);
|
|
INIT_LIST_HEAD(&local->interfaces);
|
|
|
|
|
|
__hw_addr_init(&local->mc_list);
|
|
__hw_addr_init(&local->mc_list);
|
|
@@ -958,6 +956,10 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
|
|
if (local->hw.wiphy->flags & WIPHY_FLAG_SUPPORTS_TDLS)
|
|
if (local->hw.wiphy->flags & WIPHY_FLAG_SUPPORTS_TDLS)
|
|
local->hw.wiphy->flags |= WIPHY_FLAG_TDLS_EXTERNAL_SETUP;
|
|
local->hw.wiphy->flags |= WIPHY_FLAG_TDLS_EXTERNAL_SETUP;
|
|
|
|
|
|
|
|
+ /* mac80211 supports eCSA, if the driver supports STA CSA at all */
|
|
|
|
+ if (local->hw.flags & IEEE80211_HW_CHANCTX_STA_CSA)
|
|
|
|
+ local->ext_capa[0] |= WLAN_EXT_CAPA1_EXT_CHANNEL_SWITCHING;
|
|
|
|
+
|
|
local->hw.wiphy->max_num_csa_counters = IEEE80211_MAX_CSA_COUNTERS_NUM;
|
|
local->hw.wiphy->max_num_csa_counters = IEEE80211_MAX_CSA_COUNTERS_NUM;
|
|
|
|
|
|
result = wiphy_register(local->hw.wiphy);
|
|
result = wiphy_register(local->hw.wiphy);
|