qcacmn: Add more channel flags in nol logic
Add more channel flags support in nol channel marking logic. Change-Id: I2c931fec773c2f6138fff8ee757c4c99b056d56d CRs-Fixed: 2069388
Cette révision appartient à :
@@ -162,6 +162,30 @@ enum dfs_ieee80211_opmode {
|
||||
/* VHT 80_80 channel */
|
||||
#define IEEE80211_CHAN_VHT80_80 0x08000000
|
||||
|
||||
/* HE 20 channel */
|
||||
#define IEEE80211_CHAN_HE20 0x0000000010000000
|
||||
|
||||
/* HE 40 with extension channel above */
|
||||
#define IEEE80211_CHAN_HE40PLUS 0x0000000020000000
|
||||
|
||||
/* HE 40 with extension channel below */
|
||||
#define IEEE80211_CHAN_HE40MINUS 0x0000000040000000
|
||||
|
||||
/* HE 40 Intolerant */
|
||||
#define IEEE80211_CHAN_HE40INTOL 0x0000000080000000
|
||||
|
||||
/* HE 40 Intolerant mark bit for ACS use */
|
||||
#define IEEE80211_CHAN_HE40INTOLMARK 0x0000000100000000
|
||||
|
||||
/* HE 80 channel */
|
||||
#define IEEE80211_CHAN_HE80 0x0000000200000000
|
||||
|
||||
/* HE 160 channel */
|
||||
#define IEEE80211_CHAN_HE160 0x0000000400000000
|
||||
|
||||
/* HE 80_80 channel */
|
||||
#define IEEE80211_CHAN_HE80_80 0x0000000800000000
|
||||
|
||||
/* flagext */
|
||||
#define IEEE80211_CHAN_DFS_RADAR_FOUND 0x01
|
||||
|
||||
@@ -238,6 +262,42 @@ enum dfs_ieee80211_opmode {
|
||||
#define IEEE80211_CHAN_11NA_HT40MINUS \
|
||||
(IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_HT40MINUS)
|
||||
|
||||
#define IEEE80211_CHAN_11AXG_HE20 \
|
||||
(IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_HE20)
|
||||
|
||||
#define IEEE80211_CHAN_11AXA_HE20 \
|
||||
(IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_HE20)
|
||||
|
||||
#define IEEE80211_CHAN_11AXG_HE40PLUS \
|
||||
(IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_HE40PLUS)
|
||||
|
||||
#define IEEE80211_CHAN_11AXG_HE40MINUS \
|
||||
(IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_HE40MINUS)
|
||||
|
||||
#define IEEE80211_CHAN_11AXG_HE40 \
|
||||
(IEEE80211_CHAN_11AXG_HE40PLUS | IEEE80211_CHAN_11AXG_HE40MINUS)
|
||||
|
||||
#define IEEE80211_CHAN_11AXA_HE40PLUS \
|
||||
(IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_HE40PLUS)
|
||||
|
||||
#define IEEE80211_CHAN_11AXA_HE40MINUS \
|
||||
(IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_HE40MINUS)
|
||||
|
||||
#define IEEE80211_CHAN_11AXA_HE40 \
|
||||
(IEEE80211_CHAN_11AXA_HE40PLUS | IEEE80211_CHAN_11AXA_HE40MINUS)
|
||||
|
||||
#define IEEE80211_CHAN_11AX_HE40 \
|
||||
(IEEE80211_CHAN_HE40PLUS | IEEE80211_CHAN_HE40MINUS)
|
||||
|
||||
#define IEEE80211_CHAN_11AXA_HE80 \
|
||||
(IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_HE80)
|
||||
|
||||
#define IEEE80211_CHAN_11AXA_HE160 \
|
||||
(IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_HE160)
|
||||
|
||||
#define IEEE80211_CHAN_11AXA_HE80_80 \
|
||||
(IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_HE80_80)
|
||||
|
||||
#define IEEE80211_CHAN_ALL \
|
||||
(IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_5GHZ | \
|
||||
IEEE80211_CHAN_GFSK | IEEE80211_CHAN_CCK | \
|
||||
@@ -246,7 +306,11 @@ enum dfs_ieee80211_opmode {
|
||||
IEEE80211_CHAN_HT40MINUS | IEEE80211_CHAN_VHT20 | \
|
||||
IEEE80211_CHAN_VHT40PLUS | IEEE80211_CHAN_VHT40MINUS | \
|
||||
IEEE80211_CHAN_VHT80 | IEEE80211_CHAN_VHT160 | \
|
||||
IEEE80211_CHAN_VHT80_80 | IEEE80211_CHAN_HALF | IEEE80211_CHAN_QUARTER)
|
||||
IEEE80211_CHAN_VHT80_80 | IEEE80211_CHAN_HALF | \
|
||||
IEEE80211_CHAN_QUARTER | IEEE80211_CHAN_HE20 | \
|
||||
IEEE80211_CHAN_HE40PLUS | IEEE80211_CHAN_HE40MINUS | \
|
||||
IEEE80211_CHAN_HE80 | IEEE80211_CHAN_HE160 | \
|
||||
IEEE80211_CHAN_HE80_80)
|
||||
|
||||
#define IEEE80211_CHAN_ALLTURBO \
|
||||
(IEEE80211_CHAN_ALL | IEEE80211_CHAN_TURBO | IEEE80211_CHAN_STURBO)
|
||||
|
@@ -244,31 +244,44 @@ void dfs_process_radar_found_indication(struct wlan_dfs *dfs,
|
||||
radar_found->freq_offset, radar_found->is_chirp,
|
||||
flag, freq_center);
|
||||
|
||||
if ((flag & IEEE80211_CHAN_HT20) ||
|
||||
(flag & IEEE80211_CHAN_VHT20)) {
|
||||
if ((flag & IEEE80211_CHAN_A) ||
|
||||
(flag & IEEE80211_CHAN_11NA_HT20) ||
|
||||
(flag & IEEE80211_CHAN_HT20) ||
|
||||
(flag & IEEE80211_CHAN_VHT20) ||
|
||||
(flag & IEEE80211_CHAN_11AXA_HE20)) {
|
||||
if (radar_found->is_chirp ||
|
||||
(sidx && !(abs(sidx) % DFS_BOUNDRY_SIDX))) {
|
||||
freq_offset.offset[1] -= DFS_CHIRP_OFFSET;
|
||||
freq_offset.offset[2] += DFS_CHIRP_OFFSET;
|
||||
}
|
||||
dfs_radar_chan_for_20(&freq_offset, freq_center);
|
||||
} else if ((flag & IEEE80211_CHAN_VHT40PLUS) ||
|
||||
(flag & IEEE80211_CHAN_HT40PLUS) ||
|
||||
(flag & IEEE80211_CHAN_VHT40MINUS) ||
|
||||
(flag & IEEE80211_CHAN_HT40MINUS)) {
|
||||
} else if ((flag & IEEE80211_CHAN_VHT40PLUS) ||
|
||||
(flag & IEEE80211_CHAN_VHT40MINUS) ||
|
||||
(flag & IEEE80211_CHAN_HT40PLUS) ||
|
||||
(flag & IEEE80211_CHAN_HT40MINUS) ||
|
||||
(flag & IEEE80211_CHAN_11NA_HT40PLUS) ||
|
||||
(flag & IEEE80211_CHAN_11NA_HT40MINUS) ||
|
||||
(flag & IEEE80211_CHAN_11AXA_HE40PLUS) ||
|
||||
(flag & IEEE80211_CHAN_11AXA_HE40MINUS)) {
|
||||
if (radar_found->is_chirp || !(abs(sidx) % DFS_BOUNDRY_SIDX)) {
|
||||
freq_offset.offset[1] -= DFS_CHIRP_OFFSET;
|
||||
freq_offset.offset[2] += DFS_CHIRP_OFFSET;
|
||||
}
|
||||
dfs_radar_chan_for_40(&freq_offset, freq_center);
|
||||
} else if ((flag & IEEE80211_CHAN_VHT80) ||
|
||||
(flag & IEEE80211_CHAN_VHT80_80) ||
|
||||
(flag & IEEE80211_CHAN_VHT160)) {
|
||||
} else if ((flag & IEEE80211_CHAN_VHT80) ||
|
||||
(flag & IEEE80211_CHAN_VHT80_80) ||
|
||||
(flag & IEEE80211_CHAN_VHT160) ||
|
||||
(flag & IEEE80211_CHAN_11AXA_HE80) ||
|
||||
(flag & IEEE80211_CHAN_11AXA_HE80_80) ||
|
||||
(flag & IEEE80211_CHAN_11AXA_HE160)) {
|
||||
if (radar_found->is_chirp || !(abs(sidx) % DFS_BOUNDRY_SIDX)) {
|
||||
freq_offset.offset[1] -= DFS_CHIRP_OFFSET;
|
||||
freq_offset.offset[2] += DFS_CHIRP_OFFSET;
|
||||
}
|
||||
dfs_radar_chan_for_80(&freq_offset, freq_center);
|
||||
} else {
|
||||
DFS_PRINTK("%s: channel flag(%d) is invalid\n", __func__, flag);
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i < DFS_NUM_FREQ_OFFSET; i++) {
|
||||
|
Référencer dans un nouveau ticket
Bloquer un utilisateur