Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
[linux-2.6-microblaze.git] / drivers / net / wireless / mediatek / mt76 / mt7615 / init.c
index 1f57b43..e194259 100644 (file)
@@ -217,6 +217,22 @@ static const struct ieee80211_iface_limit if_limits[] = {
        }
 };
 
+static const struct ieee80211_iface_combination if_comb_radar[] = {
+       {
+               .limits = if_limits,
+               .n_limits = ARRAY_SIZE(if_limits),
+               .max_interfaces = 4,
+               .num_different_channels = 1,
+               .beacon_int_infra_match = true,
+               .radar_detect_widths = BIT(NL80211_CHAN_WIDTH_20_NOHT) |
+                                      BIT(NL80211_CHAN_WIDTH_20) |
+                                      BIT(NL80211_CHAN_WIDTH_40) |
+                                      BIT(NL80211_CHAN_WIDTH_80) |
+                                      BIT(NL80211_CHAN_WIDTH_160) |
+                                      BIT(NL80211_CHAN_WIDTH_80P80),
+       }
+};
+
 static const struct ieee80211_iface_combination if_comb[] = {
        {
                .limits = if_limits,
@@ -306,8 +322,13 @@ mt7615_init_wiphy(struct ieee80211_hw *hw)
        hw->sta_data_size = sizeof(struct mt7615_sta);
        hw->vif_data_size = sizeof(struct mt7615_vif);
 
-       wiphy->iface_combinations = if_comb;
-       wiphy->n_iface_combinations = ARRAY_SIZE(if_comb);
+       if (is_mt7663(&phy->dev->mt76)) {
+               wiphy->iface_combinations = if_comb;
+               wiphy->n_iface_combinations = ARRAY_SIZE(if_comb);
+       } else {
+               wiphy->iface_combinations = if_comb_radar;
+               wiphy->n_iface_combinations = ARRAY_SIZE(if_comb_radar);
+       }
        wiphy->reg_notifier = mt7615_regd_notifier;
 
        wiphy->max_sched_scan_plan_interval = MT7615_MAX_SCHED_SCAN_INTERVAL;