|
@@ -3818,6 +3818,14 @@ static int ath10k_set_bitrate_mask(struct ieee80211_hw *hw,
|
|
|
return ath10k_set_fixed_rate_param(arvif, fixed_rate, fixed_nss);
|
|
|
}
|
|
|
|
|
|
+static void ath10k_channel_switch_beacon(struct ieee80211_hw *hw,
|
|
|
+ struct ieee80211_vif *vif,
|
|
|
+ struct cfg80211_chan_def *chandef)
|
|
|
+{
|
|
|
+ /* there's no need to do anything here. vif->csa_active is enough */
|
|
|
+ return;
|
|
|
+}
|
|
|
+
|
|
|
static const struct ieee80211_ops ath10k_ops = {
|
|
|
.tx = ath10k_tx,
|
|
|
.start = ath10k_start,
|
|
@@ -3841,6 +3849,7 @@ static const struct ieee80211_ops ath10k_ops = {
|
|
|
.restart_complete = ath10k_restart_complete,
|
|
|
.get_survey = ath10k_get_survey,
|
|
|
.set_bitrate_mask = ath10k_set_bitrate_mask,
|
|
|
+ .channel_switch_beacon = ath10k_channel_switch_beacon,
|
|
|
#ifdef CONFIG_PM
|
|
|
.suspend = ath10k_suspend,
|
|
|
.resume = ath10k_resume,
|
|
@@ -4220,6 +4229,7 @@ int ath10k_mac_register(struct ath10k *ar)
|
|
|
ar->hw->max_listen_interval = ATH10K_MAX_HW_LISTEN_INTERVAL;
|
|
|
|
|
|
ar->hw->wiphy->flags |= WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL;
|
|
|
+ ar->hw->wiphy->flags |= WIPHY_FLAG_HAS_CHANNEL_SWITCH;
|
|
|
ar->hw->wiphy->max_remain_on_channel_duration = 5000;
|
|
|
|
|
|
ar->hw->wiphy->flags |= WIPHY_FLAG_AP_UAPSD;
|