Merge "qca-wifi: use dp_vdev_bss_peer_get API to get bss peer"
diff --git a/tools/linux/cfg80211_ven_cmd.h b/tools/linux/cfg80211_ven_cmd.h
index 3ae5d9c..91106c7 100644
--- a/tools/linux/cfg80211_ven_cmd.h
+++ b/tools/linux/cfg80211_ven_cmd.h
@@ -1203,6 +1203,14 @@
OL_ATH_PARAM_RPT_MAX_PHY = 446,
/* Enable additional operating triplets in the Country IE */
OL_ATH_PARAM_ENABLE_ADDITIONAL_TRIPLETS = 447,
+#ifdef QCA_SUPPORT_DFS_CHAN_POSTNOL
+ /* Set the primary frequency for the AP to go back to, after NOL */
+ OL_ATH_DFS_CHAN_POSTNOL_FREQ = 448,
+ /* Set the mode for the AP to go back to, after NOL */
+ OL_ATH_DFS_CHAN_POSTNOL_MODE = 449,
+ /* Set the secondary center frequency for the post NOL channel. */
+ OL_ATH_DFS_CHAN_POSTNOL_CFREQ2 = 450,
+#endif
};
@@ -3103,6 +3111,20 @@
OL_ATH_PARAM_SHIFT | OL_ATH_PARAM_ENABLE_ADDITIONAL_TRIPLETS, SET_PARAM, 1},
{"g_enable_additional_triplets",
OL_ATH_PARAM_SHIFT | OL_ATH_PARAM_ENABLE_ADDITIONAL_TRIPLETS, GET_PARAM, 0},
+#ifdef QCA_SUPPORT_DFS_CHAN_POSTNOL
+ {"setpostNOLfreq",
+ OL_ATH_PARAM_SHIFT | OL_ATH_DFS_CHAN_POSTNOL_FREQ, SET_PARAM, 1},
+ {"getpostNOLfreq",
+ OL_ATH_PARAM_SHIFT | OL_ATH_DFS_CHAN_POSTNOL_FREQ, GET_PARAM, 0},
+ {"setpostNOLmode",
+ OL_ATH_PARAM_SHIFT | OL_ATH_DFS_CHAN_POSTNOL_MODE, SET_PARAM, 1},
+ {"getpostNOLmode",
+ OL_ATH_PARAM_SHIFT | OL_ATH_DFS_CHAN_POSTNOL_MODE, SET_PARAM, 0},
+ {"setpostNOLcfreq2",
+ OL_ATH_PARAM_SHIFT | OL_ATH_DFS_CHAN_POSTNOL_CFREQ2, SET_PARAM, 1},
+ {"getpostNOLcfreq2",
+ OL_ATH_PARAM_SHIFT | OL_ATH_DFS_CHAN_POSTNOL_CFREQ2, GET_PARAM, 0},
+#endif
};
#endif
#endif
diff --git a/umac/dfs/core/src/misc/dfs_zero_cac.c b/umac/dfs/core/src/misc/dfs_zero_cac.c
index fe84861..cabe5bc 100644
--- a/umac/dfs/core/src/misc/dfs_zero_cac.c
+++ b/umac/dfs/core/src/misc/dfs_zero_cac.c
@@ -273,10 +273,12 @@
dfs->dfs_precac_secondary_freq_mhz = 0;
}
+#if defined(ATH_SUPPORT_ZERO_CAC_DFS) && !defined(QCA_MCL_DFS_SUPPORT)
void dfs_zero_cac_timer_detach(struct dfs_soc_priv_obj *dfs_soc_obj)
{
qdf_timer_free(&dfs_soc_obj->dfs_precac_timer);
}
+#endif
int dfs_override_precac_timeout(struct wlan_dfs *dfs, int precac_timeout)
{
@@ -514,6 +516,13 @@
bool ret_val = 0;
uint16_t cfreq;
+ if (!WLAN_IS_CHAN_5GHZ(chan)) {
+ dfs_debug(dfs, WLAN_DEBUG_DFS,
+ "Channel %d not a 5GHz channel",
+ chan->dfs_ch_ieee);
+ return 0;
+ }
+
if (WLAN_IS_CHAN_MODE_160(chan))
cfreq = chan->dfs_ch_mhz_freq_seg2;
else if (WLAN_IS_CHAN_MODE_165(dfs, chan))
@@ -1474,6 +1483,7 @@
}
}
+#if defined(ATH_SUPPORT_ZERO_CAC_DFS) && !defined(QCA_MCL_DFS_SUPPORT)
void dfs_zero_cac_timer_init(struct dfs_soc_priv_obj *dfs_soc_obj)
{
dfs_soc_obj->precac_state_started = false;
@@ -1482,6 +1492,7 @@
(void *)dfs_soc_obj,
QDF_TIMER_TYPE_WAKE_APPS);
}
+#endif
void dfs_zero_cac_attach(struct wlan_dfs *dfs)
{
@@ -3542,6 +3553,12 @@
if (WLAN_IS_CHAN_MODE_165(dfs, dfs->dfs_curchan))
flags |= DFS_RANDOM_CH_FLAG_RESTRICTED_80P80_ENABLED;
+ if (!WLAN_IS_CHAN_5GHZ(dfs->dfs_curchan)) {
+ dfs_debug(dfs, WLAN_DEBUG_DFS_AGILE,
+ "Current operating channel not a 5G channel");
+ goto exit;
+ }
+
dfs_fill_des_rcac_chan_params(dfs,
&nxt_chan_params,
curchan_chwidth);