qcacld-3.0: Correct 160MHz SAP dfs flag
Use wlan_reg_get_channel_state_for_freq API to get channel state and identify 6Ghz channel as non-dfs channel. Change-Id: Ib134a71c62e24324abc12e5a5b11a524e89de810 CRs-Fixed: 2681608
This commit is contained in:
@@ -427,18 +427,24 @@ wlansap_roam_process_ch_change_success(struct mac_context *mac_ctx,
|
||||
if (sap_ctx->ch_params.ch_width == CH_WIDTH_160MHZ) {
|
||||
is_ch_dfs = true;
|
||||
} else if (sap_ctx->ch_params.ch_width == CH_WIDTH_80P80MHZ) {
|
||||
if (wlan_reg_get_channel_state_for_freq(mac_ctx->pdev, target_chan_freq) ==
|
||||
if (wlan_reg_get_channel_state_for_freq(
|
||||
mac_ctx->pdev,
|
||||
target_chan_freq) ==
|
||||
CHANNEL_STATE_DFS ||
|
||||
wlan_reg_get_channel_state(mac_ctx->pdev,
|
||||
sap_ctx->ch_params.center_freq_seg1 -
|
||||
SIR_80MHZ_START_CENTER_CH_DIFF) ==
|
||||
CHANNEL_STATE_DFS)
|
||||
wlan_reg_get_channel_state_for_freq(
|
||||
mac_ctx->pdev,
|
||||
sap_ctx->ch_params.mhz_freq_seg1) ==
|
||||
CHANNEL_STATE_DFS)
|
||||
is_ch_dfs = true;
|
||||
} else {
|
||||
if (wlan_reg_get_channel_state_for_freq(mac_ctx->pdev, target_chan_freq) ==
|
||||
if (wlan_reg_get_channel_state_for_freq(
|
||||
mac_ctx->pdev,
|
||||
target_chan_freq) ==
|
||||
CHANNEL_STATE_DFS)
|
||||
is_ch_dfs = true;
|
||||
}
|
||||
if (WLAN_REG_IS_6GHZ_CHAN_FREQ(sap_ctx->chan_freq))
|
||||
is_ch_dfs = false;
|
||||
|
||||
sap_ctx->chan_freq = target_chan_freq;
|
||||
/* check if currently selected channel is a DFS channel */
|
||||
|
@@ -2532,7 +2532,7 @@ static QDF_STATUS sap_fsm_state_starting(struct sap_context *sap_ctx,
|
||||
if (sap_ctx->ch_params.ch_width == CH_WIDTH_160MHZ) {
|
||||
is_dfs = wlan_reg_get_5g_bonded_channel_state_for_freq(
|
||||
mac_ctx->pdev, sap_chan_freq,
|
||||
CH_WIDTH_160MHZ);
|
||||
CH_WIDTH_160MHZ) == CHANNEL_STATE_DFS;
|
||||
} else if (sap_ctx->ch_params.ch_width == CH_WIDTH_80P80MHZ) {
|
||||
if (wlan_reg_get_channel_state_for_freq(
|
||||
mac_ctx->pdev,
|
||||
|
@@ -1667,29 +1667,36 @@ wlansap_set_cac_required_for_chan(struct mac_context *mac_ctx,
|
||||
{
|
||||
bool is_ch_dfs = false;
|
||||
bool cac_required;
|
||||
uint32_t channel;
|
||||
uint32_t chan_freq;
|
||||
uint8_t vdev_id_list[MAX_NUMBER_OF_CONC_CONNECTIONS];
|
||||
uint32_t freq_list[MAX_NUMBER_OF_CONC_CONNECTIONS];
|
||||
uint8_t sta_cnt, i;
|
||||
|
||||
channel = wlan_reg_freq_to_chan(mac_ctx->pdev, sap_ctx->chan_freq);
|
||||
|
||||
chan_freq = sap_ctx->chan_freq;
|
||||
if (sap_ctx->ch_params.ch_width == CH_WIDTH_160MHZ) {
|
||||
is_ch_dfs = true;
|
||||
} else if (sap_ctx->ch_params.ch_width == CH_WIDTH_80P80MHZ) {
|
||||
if ((wlan_reg_get_channel_state(mac_ctx->pdev, channel) ==
|
||||
CHANNEL_STATE_DFS) ||
|
||||
(wlan_reg_get_channel_state(mac_ctx->pdev,
|
||||
sap_ctx->ch_params.center_freq_seg1 -
|
||||
SIR_80MHZ_START_CENTER_CH_DIFF) ==
|
||||
CHANNEL_STATE_DFS))
|
||||
if (wlan_reg_get_channel_state_for_freq(
|
||||
mac_ctx->pdev,
|
||||
sap_ctx->chan_freq) ==
|
||||
CHANNEL_STATE_DFS ||
|
||||
wlan_reg_get_channel_state_for_freq(
|
||||
mac_ctx->pdev,
|
||||
sap_ctx->ch_params.mhz_freq_seg1) ==
|
||||
CHANNEL_STATE_DFS)
|
||||
is_ch_dfs = true;
|
||||
} else {
|
||||
if (wlan_reg_get_channel_state_for_freq(
|
||||
mac_ctx->pdev,
|
||||
sap_ctx->chan_freq) ==
|
||||
CHANNEL_STATE_DFS)
|
||||
is_ch_dfs = true;
|
||||
} else if (wlan_reg_get_channel_state(mac_ctx->pdev, channel) ==
|
||||
CHANNEL_STATE_DFS) {
|
||||
is_ch_dfs = true;
|
||||
}
|
||||
if (WLAN_REG_IS_6GHZ_CHAN_FREQ(sap_ctx->chan_freq))
|
||||
is_ch_dfs = false;
|
||||
|
||||
sap_debug("vdev id %d chan %d is_ch_dfs %d pre_cac_complete %d ignore_cac %d cac_state %d",
|
||||
sap_ctx->sessionId, channel, is_ch_dfs,
|
||||
sap_ctx->sessionId, chan_freq, is_ch_dfs,
|
||||
sap_ctx->pre_cac_complete, mac_ctx->sap.SapDfsInfo.ignore_cac,
|
||||
mac_ctx->sap.SapDfsInfo.cac_state);
|
||||
|
||||
|
Viittaa uudesa ongelmassa
Block a user