qcacmn: Use channel flags to determine DFS channel

Use channel flags to determine DFS channel. Channel state is
set to CHANNEL_STATE_DFS even for passive channel.

Change-Id: I5ff88f05d2967f9e93de028d59d91369b66303c5
CRs-Fixed: 2695162
此提交包含在:
Amar Singhal
2020-06-04 21:58:58 -07:00
提交者 nshrivas
父節點 c070294c55
當前提交 af142cc672
共有 2 個檔案被更改,包括 27 行新增3 行删除

查看文件

@@ -3110,6 +3110,29 @@ enum channel_state reg_get_channel_state_for_freq(struct wlan_objmgr_pdev *pdev,
return pdev_priv_obj->cur_chan_list[ch_idx].state;
}
static uint32_t reg_get_channel_flags_for_freq(struct wlan_objmgr_pdev *pdev,
qdf_freq_t freq)
{
enum channel_enum chan_enum;
struct wlan_regulatory_pdev_priv_obj *pdev_priv_obj;
chan_enum = reg_get_chan_enum_for_freq(freq);
if (chan_enum == INVALID_CHANNEL) {
reg_err("chan freq is not valid");
return REGULATORY_CHAN_INVALID;
}
pdev_priv_obj = reg_get_pdev_obj(pdev);
if (!IS_VALID_PDEV_REG_OBJ(pdev_priv_obj)) {
reg_err("pdev reg obj is NULL");
return REGULATORY_CHAN_INVALID;
}
return pdev_priv_obj->cur_chan_list[chan_enum].chan_flags;
}
/**
* reg_get_5g_bonded_chan_array_for_freq()- Return the channel state for a
* 5G or 6G channel frequency based on the bonded channel.
@@ -3575,11 +3598,11 @@ uint8_t reg_get_channel_reg_power_for_freq(struct wlan_objmgr_pdev *pdev,
bool reg_is_dfs_for_freq(struct wlan_objmgr_pdev *pdev, qdf_freq_t freq)
{
enum channel_state ch_state;
uint32_t chan_flags;
ch_state = reg_get_channel_state_for_freq(pdev, freq);
chan_flags = reg_get_channel_flags_for_freq(pdev, freq);
return ch_state == CHANNEL_STATE_DFS;
return chan_flags & REGULATORY_CHAN_RADAR;
}
void reg_update_nol_ch_for_freq(struct wlan_objmgr_pdev *pdev,

查看文件

@@ -54,6 +54,7 @@
#define REGULATORY_CHAN_NO_160MHZ BIT(8)
#define REGULATORY_CHAN_NO_20MHZ BIT(11)
#define REGULATORY_CHAN_NO_10MHZ BIT(12)
#define REGULATORY_CHAN_INVALID BIT(14)
#define REGULATORY_PHYMODE_NO11A BIT(0)
#define REGULATORY_PHYMODE_NO11B BIT(1)