aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/main.c')
-rw-r--r--net/mac80211/main.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index e323d4e6647b..dddedfad5404 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -558,6 +558,19 @@ ieee80211_default_mgmt_stypes[NUM_NL80211_IFTYPES] = {
558 }, 558 },
559}; 559};
560 560
561static const struct ieee80211_ht_cap mac80211_ht_capa_mod_mask = {
562 .ampdu_params_info = IEEE80211_HT_AMPDU_PARM_FACTOR |
563 IEEE80211_HT_AMPDU_PARM_DENSITY,
564
565 .cap_info = cpu_to_le16(IEEE80211_HT_CAP_SUP_WIDTH_20_40 |
566 IEEE80211_HT_CAP_MAX_AMSDU |
567 IEEE80211_HT_CAP_SGI_40),
568 .mcs = {
569 .rx_mask = { 0xff, 0xff, 0xff, 0xff, 0xff,
570 0xff, 0xff, 0xff, 0xff, 0xff, },
571 },
572};
573
561struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len, 574struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len,
562 const struct ieee80211_ops *ops) 575 const struct ieee80211_ops *ops)
563{ 576{
@@ -594,7 +607,9 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len,
594 wiphy->flags |= WIPHY_FLAG_NETNS_OK | 607 wiphy->flags |= WIPHY_FLAG_NETNS_OK |
595 WIPHY_FLAG_4ADDR_AP | 608 WIPHY_FLAG_4ADDR_AP |
596 WIPHY_FLAG_4ADDR_STATION | 609 WIPHY_FLAG_4ADDR_STATION |
597 WIPHY_FLAG_REPORTS_OBSS; 610 WIPHY_FLAG_REPORTS_OBSS |
611 WIPHY_FLAG_OFFCHAN_TX |
612 WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL;
598 613
599 wiphy->features = NL80211_FEATURE_SK_TX_STATUS; 614 wiphy->features = NL80211_FEATURE_SK_TX_STATUS;
600 615
@@ -609,7 +624,7 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len,
609 624
610 local->hw.priv = (char *)local + ALIGN(sizeof(*local), NETDEV_ALIGN); 625 local->hw.priv = (char *)local + ALIGN(sizeof(*local), NETDEV_ALIGN);
611 626
612 BUG_ON(!ops->tx); 627 BUG_ON(!ops->tx && !ops->tx_frags);
613 BUG_ON(!ops->start); 628 BUG_ON(!ops->start);
614 BUG_ON(!ops->stop); 629 BUG_ON(!ops->stop);
615 BUG_ON(!ops->config); 630 BUG_ON(!ops->config);
@@ -629,6 +644,7 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len,
629 local->user_power_level = -1; 644 local->user_power_level = -1;
630 local->uapsd_queues = IEEE80211_DEFAULT_UAPSD_QUEUES; 645 local->uapsd_queues = IEEE80211_DEFAULT_UAPSD_QUEUES;
631 local->uapsd_max_sp_len = IEEE80211_DEFAULT_MAX_SP_LEN; 646 local->uapsd_max_sp_len = IEEE80211_DEFAULT_MAX_SP_LEN;
647 wiphy->ht_capa_mod_mask = &mac80211_ht_capa_mod_mask;
632 648
633 INIT_LIST_HEAD(&local->interfaces); 649 INIT_LIST_HEAD(&local->interfaces);
634 650