qcacmn: Avoid using "ic_" prefix in common component code
In DFS component the prefix "ic_ " was being used to represent ieee80211 channel related variables. Now use prefix "dfs_ch_" instead of "ic_". Change-Id: I2f739dc22ad89b7e410c06462876a22c2a615883 CRs-Fixed: 2056957
This commit is contained in:

committed by
snandini

parent
f3351d97d7
commit
7dc39001a5
@@ -79,7 +79,7 @@ struct dfsreq_nolelem {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct dfsreq_nolinfo {
|
struct dfsreq_nolinfo {
|
||||||
uint32_t ic_nchans;
|
uint32_t dfs_ch_nchans;
|
||||||
struct dfsreq_nolelem dfs_nol[IEEE80211_CHAN_MAX];
|
struct dfsreq_nolelem dfs_nol[IEEE80211_CHAN_MAX];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -438,21 +438,21 @@ struct dfs_filtertype {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* struct dfs_ieee80211_channel - Channel structure for dfs component.
|
* struct dfs_ieee80211_channel - Channel structure for dfs component.
|
||||||
* @ic_freq: Frequency in Mhz.
|
* @dfs_ch_freq: Frequency in Mhz.
|
||||||
* @ic_flags: Channel flags.
|
* @dfs_ch_flags: Channel flags.
|
||||||
* @ic_flagext: Extended channel flags.
|
* @dfs_ch_flagext: Extended channel flags.
|
||||||
* @ic_ieee: IEEE channel number.
|
* @dfs_ch_ieee: IEEE channel number.
|
||||||
* @ic_vhtop_ch_freq_seg1: Channel Center frequency.
|
* @dfs_ch_vhtop_ch_freq_seg1: Channel Center frequency.
|
||||||
* @ic_vhtop_ch_freq_seg2: Channel Center frequency applicable for 80+80MHz
|
* @dfs_ch_vhtop_ch_freq_seg2: Channel Center frequency applicable for 80+80MHz
|
||||||
* mode of operation.
|
* mode of operation.
|
||||||
*/
|
*/
|
||||||
struct dfs_ieee80211_channel {
|
struct dfs_ieee80211_channel {
|
||||||
uint16_t ic_freq;
|
uint16_t dfs_ch_freq;
|
||||||
uint32_t ic_flags;
|
uint32_t dfs_ch_flags;
|
||||||
uint16_t ic_flagext;
|
uint16_t dfs_ch_flagext;
|
||||||
uint8_t ic_ieee;
|
uint8_t dfs_ch_ieee;
|
||||||
uint8_t ic_vhtop_ch_freq_seg1;
|
uint8_t dfs_ch_vhtop_ch_freq_seg1;
|
||||||
uint8_t ic_vhtop_ch_freq_seg2;
|
uint8_t dfs_ch_vhtop_ch_freq_seg2;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1567,7 +1567,7 @@ int dfs_override_cac_timeout(struct wlan_dfs *dfs,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* dfs_clear_nolhistory() - unmarks IEEE80211_CHAN_CLR_HISTORY_RADAR flag for
|
* dfs_clear_nolhistory() - unmarks IEEE80211_CHAN_CLR_HISTORY_RADAR flag for
|
||||||
* all the channels in ic_channels.
|
* all the channels in dfs_ch_channels.
|
||||||
* @dfs: Pointer to wlan_dfs structure.
|
* @dfs: Pointer to wlan_dfs structure.
|
||||||
*/
|
*/
|
||||||
void dfs_clear_nolhistory(struct wlan_dfs *dfs);
|
void dfs_clear_nolhistory(struct wlan_dfs *dfs);
|
||||||
@@ -1710,20 +1710,20 @@ void ol_if_dfs_clist_update(struct wlan_dfs *dfs,
|
|||||||
/**
|
/**
|
||||||
* dfs_set_current_channel() - Set DFS current channel.
|
* dfs_set_current_channel() - Set DFS current channel.
|
||||||
* @dfs: Pointer to wlan_dfs structure.
|
* @dfs: Pointer to wlan_dfs structure.
|
||||||
* @ic_freq: Frequency in Mhz.
|
* @dfs_ch_freq: Frequency in Mhz.
|
||||||
* @ic_flags: Channel flags.
|
* @dfs_ch_flags: Channel flags.
|
||||||
* @ic_flagext: Extended channel flags.
|
* @dfs_ch_flagext: Extended channel flags.
|
||||||
* @ic_ieee: IEEE channel number.
|
* @dfs_ch_ieee: IEEE channel number.
|
||||||
* @ic_vhtop_ch_freq_seg1: Channel Center frequency1.
|
* @dfs_ch_vhtop_ch_freq_seg1: Channel Center frequency1.
|
||||||
* @ic_vhtop_ch_freq_seg2: Channel Center frequency2.
|
* @dfs_ch_vhtop_ch_freq_seg2: Channel Center frequency2.
|
||||||
*/
|
*/
|
||||||
void dfs_set_current_channel(struct wlan_dfs *dfs,
|
void dfs_set_current_channel(struct wlan_dfs *dfs,
|
||||||
uint16_t ic_freq,
|
uint16_t dfs_ch_freq,
|
||||||
uint32_t ic_flags,
|
uint32_t dfs_ch_flags,
|
||||||
uint16_t ic_flagext,
|
uint16_t dfs_ch_flagext,
|
||||||
uint8_t ic_ieee,
|
uint8_t dfs_ch_ieee,
|
||||||
uint8_t ic_vhtop_ch_freq_seg1,
|
uint8_t dfs_ch_vhtop_ch_freq_seg1,
|
||||||
uint8_t ic_vhtop_ch_freq_seg2);
|
uint8_t dfs_ch_vhtop_ch_freq_seg2);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dfs_second_segment_radar_disable() - Disables the second segment radar.
|
* dfs_second_segment_radar_disable() - Disables the second segment radar.
|
||||||
|
@@ -252,142 +252,143 @@ enum dfs_ieee80211_opmode {
|
|||||||
(IEEE80211_CHAN_ALL | IEEE80211_CHAN_TURBO | IEEE80211_CHAN_STURBO)
|
(IEEE80211_CHAN_ALL | IEEE80211_CHAN_TURBO | IEEE80211_CHAN_STURBO)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_FHSS(_c) \
|
#define IEEE80211_IS_CHAN_FHSS(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_FHSS) == IEEE80211_CHAN_FHSS)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_FHSS) == IEEE80211_CHAN_FHSS)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_A(_c) \
|
#define IEEE80211_IS_CHAN_A(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_A) == IEEE80211_CHAN_A)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_A) == IEEE80211_CHAN_A)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_B(_c) \
|
#define IEEE80211_IS_CHAN_B(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_B) == IEEE80211_CHAN_B)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_B) == IEEE80211_CHAN_B)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_PUREG(_c) \
|
#define IEEE80211_IS_CHAN_PUREG(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_PUREG) == IEEE80211_CHAN_PUREG)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_PUREG) == IEEE80211_CHAN_PUREG)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_G(_c) \
|
#define IEEE80211_IS_CHAN_G(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_G) == IEEE80211_CHAN_G)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_G) == IEEE80211_CHAN_G)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_ANYG(_c) \
|
#define IEEE80211_IS_CHAN_ANYG(_c) \
|
||||||
(IEEE80211_IS_CHAN_PUREG(_c) || IEEE80211_IS_CHAN_G(_c))
|
(IEEE80211_IS_CHAN_PUREG(_c) || IEEE80211_IS_CHAN_G(_c))
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_ST(_c) \
|
#define IEEE80211_IS_CHAN_ST(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_ST) == IEEE80211_CHAN_ST)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_ST) == IEEE80211_CHAN_ST)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_108A(_c) \
|
#define IEEE80211_IS_CHAN_108A(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_108A) == IEEE80211_CHAN_108A)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_108A) == IEEE80211_CHAN_108A)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_108G(_c) \
|
#define IEEE80211_IS_CHAN_108G(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_108G) == IEEE80211_CHAN_108G)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_108G) == IEEE80211_CHAN_108G)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_2GHZ(_c) \
|
#define IEEE80211_IS_CHAN_2GHZ(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_2GHZ) != 0)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_2GHZ) != 0)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_5GHZ(_c) \
|
#define IEEE80211_IS_CHAN_5GHZ(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_5GHZ) != 0)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_5GHZ) != 0)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_OFDM(_c) \
|
#define IEEE80211_IS_CHAN_OFDM(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_OFDM) != 0)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_OFDM) != 0)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_CCK(_c) \
|
#define IEEE80211_IS_CHAN_CCK(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_CCK) != 0)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_CCK) != 0)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_GFSK(_c) \
|
#define IEEE80211_IS_CHAN_GFSK(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_GFSK) != 0)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_GFSK) != 0)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_TURBO(_c) \
|
#define IEEE80211_IS_CHAN_TURBO(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_TURBO) != 0)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_TURBO) != 0)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_WEATHER_RADAR(_c) \
|
#define IEEE80211_IS_CHAN_WEATHER_RADAR(_c) \
|
||||||
((((_c)->ic_freq >= 5600) && ((_c)->ic_freq <= 5650)) || \
|
((((_c)->dfs_ch_freq >= 5600) && ((_c)->dfs_ch_freq <= 5650)) || \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_HT40PLUS) && (5580 == (_c)->ic_freq)))
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_HT40PLUS) && \
|
||||||
|
(5580 == (_c)->dfs_ch_freq)))
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_STURBO(_c) \
|
#define IEEE80211_IS_CHAN_STURBO(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_STURBO) != 0)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_STURBO) != 0)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_DTURBO(_c) \
|
#define IEEE80211_IS_CHAN_DTURBO(_c) \
|
||||||
(((_c)->ic_flags & \
|
(((_c)->dfs_ch_flags & \
|
||||||
(IEEE80211_CHAN_TURBO | IEEE80211_CHAN_STURBO)) == IEEE80211_CHAN_TURBO)
|
(IEEE80211_CHAN_TURBO | IEEE80211_CHAN_STURBO)) == IEEE80211_CHAN_TURBO)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_HALF(_c) \
|
#define IEEE80211_IS_CHAN_HALF(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_HALF) != 0)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_HALF) != 0)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_QUARTER(_c) \
|
#define IEEE80211_IS_CHAN_QUARTER(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_QUARTER) != 0)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_QUARTER) != 0)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_PASSIVE(_c) \
|
#define IEEE80211_IS_CHAN_PASSIVE(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_PASSIVE) != 0)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_PASSIVE) != 0)
|
||||||
|
|
||||||
#define IEEE80211_IS_PRIMARY_OR_SECONDARY_CHAN_DFS(_c) \
|
#define IEEE80211_IS_PRIMARY_OR_SECONDARY_CHAN_DFS(_c) \
|
||||||
(IEEE80211_IS_CHAN_DFS(_c->ic_curchan) || \
|
(IEEE80211_IS_CHAN_DFS(_c->dfs_ch_curchan) || \
|
||||||
((IEEE80211_IS_CHAN_11AC_VHT160(_c->ic_curchan) || \
|
((IEEE80211_IS_CHAN_11AC_VHT160(_c->dfs_ch_curchan) || \
|
||||||
IEEE80211_IS_CHAN_11AC_VHT80_80(_c->ic_curchan)) \
|
IEEE80211_IS_CHAN_11AC_VHT80_80(_c->dfs_ch_curchan)) \
|
||||||
&& IEEE80211_IS_CHAN_DFS_CFREQ2(_c->ic_curchan)))
|
&& IEEE80211_IS_CHAN_DFS_CFREQ2(_c->dfs_ch_curchan)))
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_DFS(_c) \
|
#define IEEE80211_IS_CHAN_DFS(_c) \
|
||||||
(((_c)->ic_flagext & \
|
(((_c)->dfs_ch_flagext & \
|
||||||
(IEEE80211_CHAN_DFS|IEEE80211_CHAN_DFS_CLEAR)) == IEEE80211_CHAN_DFS)
|
(IEEE80211_CHAN_DFS|IEEE80211_CHAN_DFS_CLEAR)) == IEEE80211_CHAN_DFS)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_DFS_CFREQ2(_c) \
|
#define IEEE80211_IS_CHAN_DFS_CFREQ2(_c) \
|
||||||
(((_c)->ic_flagext & \
|
(((_c)->dfs_ch_flagext & \
|
||||||
(IEEE80211_CHAN_DFS_CFREQ2|IEEE80211_CHAN_DFS_CLEAR)) == \
|
(IEEE80211_CHAN_DFS_CFREQ2|IEEE80211_CHAN_DFS_CLEAR)) == \
|
||||||
IEEE80211_CHAN_DFS_CFREQ2)
|
IEEE80211_CHAN_DFS_CFREQ2)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_DFSFLAG(_c) \
|
#define IEEE80211_IS_CHAN_DFSFLAG(_c) \
|
||||||
(((_c)->ic_flagext & IEEE80211_CHAN_DFS) == IEEE80211_CHAN_DFS)
|
(((_c)->dfs_ch_flagext & IEEE80211_CHAN_DFS) == IEEE80211_CHAN_DFS)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_DFSFLAG_CFREQ2(_c) \
|
#define IEEE80211_IS_CHAN_DFSFLAG_CFREQ2(_c) \
|
||||||
(((_c)->ic_flagext & IEEE80211_CHAN_DFS_CFREQ2) == \
|
(((_c)->dfs_ch_flagext & IEEE80211_CHAN_DFS_CFREQ2) == \
|
||||||
IEEE80211_CHAN_DFS_CFREQ2)
|
IEEE80211_CHAN_DFS_CFREQ2)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_DISALLOW_ADHOC(_c) \
|
#define IEEE80211_IS_CHAN_DISALLOW_ADHOC(_c) \
|
||||||
(((_c)->ic_flagext & IEEE80211_CHAN_DISALLOW_ADHOC) != 0)
|
(((_c)->dfs_ch_flagext & IEEE80211_CHAN_DISALLOW_ADHOC) != 0)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_11D_EXCLUDED(_c) \
|
#define IEEE80211_IS_CHAN_11D_EXCLUDED(_c) \
|
||||||
(((_c)->ic_flagext & IEEE80211_CHAN_11D_EXCLUDED) != 0)
|
(((_c)->dfs_ch_flagext & IEEE80211_CHAN_11D_EXCLUDED) != 0)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_CSA(_c) \
|
#define IEEE80211_IS_CHAN_CSA(_c) \
|
||||||
(((_c)->ic_flagext & IEEE80211_CHAN_CSA_RECEIVED) != 0)
|
(((_c)->dfs_ch_flagext & IEEE80211_CHAN_CSA_RECEIVED) != 0)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_ODD(_c) \
|
#define IEEE80211_IS_CHAN_ODD(_c) \
|
||||||
(((_c)->ic_freq == 5170) || ((_c)->ic_freq == 5190) || \
|
(((_c)->dfs_ch_freq == 5170) || ((_c)->dfs_ch_freq == 5190) || \
|
||||||
((_c)->ic_freq == 5210) || ((_c)->ic_freq == 5230))
|
((_c)->dfs_ch_freq == 5210) || ((_c)->dfs_ch_freq == 5230))
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_DISALLOW_HOSTAP(_c) \
|
#define IEEE80211_IS_CHAN_DISALLOW_HOSTAP(_c) \
|
||||||
(((_c)->ic_flagext & IEEE80211_CHAN_DISALLOW_HOSTAP) != 0)
|
(((_c)->dfs_ch_flagext & IEEE80211_CHAN_DISALLOW_HOSTAP) != 0)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_11NG_HT20(_c) \
|
#define IEEE80211_IS_CHAN_11NG_HT20(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_11NG_HT20) == \
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_11NG_HT20) == \
|
||||||
IEEE80211_CHAN_11NG_HT20)
|
IEEE80211_CHAN_11NG_HT20)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_11NA_HT20(_c) \
|
#define IEEE80211_IS_CHAN_11NA_HT20(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_11NA_HT20) == \
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_11NA_HT20) == \
|
||||||
IEEE80211_CHAN_11NA_HT20)
|
IEEE80211_CHAN_11NA_HT20)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_11NG_HT40PLUS(_c) \
|
#define IEEE80211_IS_CHAN_11NG_HT40PLUS(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_11NG_HT40PLUS) == \
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_11NG_HT40PLUS) == \
|
||||||
IEEE80211_CHAN_11NG_HT40PLUS)
|
IEEE80211_CHAN_11NG_HT40PLUS)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_11NG_HT40MINUS(_c) \
|
#define IEEE80211_IS_CHAN_11NG_HT40MINUS(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_11NG_HT40MINUS) == \
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_11NG_HT40MINUS) == \
|
||||||
IEEE80211_CHAN_11NG_HT40MINUS)
|
IEEE80211_CHAN_11NG_HT40MINUS)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_11NA_HT40PLUS(_c) \
|
#define IEEE80211_IS_CHAN_11NA_HT40PLUS(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_11NA_HT40PLUS) == \
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_11NA_HT40PLUS) == \
|
||||||
IEEE80211_CHAN_11NA_HT40PLUS)
|
IEEE80211_CHAN_11NA_HT40PLUS)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_11NA_HT40MINUS(_c) \
|
#define IEEE80211_IS_CHAN_11NA_HT40MINUS(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_11NA_HT40MINUS) == \
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_11NA_HT40MINUS) == \
|
||||||
IEEE80211_CHAN_11NA_HT40MINUS)
|
IEEE80211_CHAN_11NA_HT40MINUS)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_11N(_c) \
|
#define IEEE80211_IS_CHAN_11N(_c) \
|
||||||
(((_c)->ic_flags & (IEEE80211_CHAN_HT20 | \
|
(((_c)->dfs_ch_flags & (IEEE80211_CHAN_HT20 | \
|
||||||
IEEE80211_CHAN_HT40PLUS | \
|
IEEE80211_CHAN_HT40PLUS | \
|
||||||
IEEE80211_CHAN_HT40MINUS)) != 0)
|
IEEE80211_CHAN_HT40MINUS)) != 0)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_11N_HT20(_c) \
|
#define IEEE80211_IS_CHAN_11N_HT20(_c) \
|
||||||
(((_c)->ic_flags & (IEEE80211_CHAN_HT20)) != 0)
|
(((_c)->dfs_ch_flags & (IEEE80211_CHAN_HT20)) != 0)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_11N_HT40(_c) \
|
#define IEEE80211_IS_CHAN_11N_HT40(_c) \
|
||||||
(((_c)->ic_flags & (IEEE80211_CHAN_HT40PLUS | \
|
(((_c)->dfs_ch_flags & (IEEE80211_CHAN_HT40PLUS | \
|
||||||
IEEE80211_CHAN_HT40MINUS)) != 0)
|
IEEE80211_CHAN_HT40MINUS)) != 0)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_11NG(_c) \
|
#define IEEE80211_IS_CHAN_11NG(_c) \
|
||||||
@@ -397,19 +398,20 @@ enum dfs_ieee80211_opmode {
|
|||||||
(IEEE80211_IS_CHAN_5GHZ((_c)) && IEEE80211_IS_CHAN_11N((_c)))
|
(IEEE80211_IS_CHAN_5GHZ((_c)) && IEEE80211_IS_CHAN_11N((_c)))
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_11N_HT40PLUS(_c) \
|
#define IEEE80211_IS_CHAN_11N_HT40PLUS(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_HT40PLUS) != 0)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_HT40PLUS) != 0)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_11N_HT40MINUS(_c) \
|
#define IEEE80211_IS_CHAN_11N_HT40MINUS(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_HT40MINUS) != 0)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_HT40MINUS) != 0)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_HT20_CAPABLE(_c) \
|
#define IEEE80211_IS_CHAN_HT20_CAPABLE(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_HT20) == IEEE80211_CHAN_HT20)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_HT20) == IEEE80211_CHAN_HT20)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_HT40PLUS_CAPABLE(_c) \
|
#define IEEE80211_IS_CHAN_HT40PLUS_CAPABLE(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_HT40PLUS) == IEEE80211_CHAN_HT40PLUS)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_HT40PLUS) == \
|
||||||
|
IEEE80211_CHAN_HT40PLUS)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_HT40MINUS_CAPABLE(_c) \
|
#define IEEE80211_IS_CHAN_HT40MINUS_CAPABLE(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_HT40MINUS) == \
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_HT40MINUS) == \
|
||||||
IEEE80211_CHAN_HT40MINUS)
|
IEEE80211_CHAN_HT40MINUS)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_HT40_CAPABLE(_c) \
|
#define IEEE80211_IS_CHAN_HT40_CAPABLE(_c) \
|
||||||
@@ -424,10 +426,11 @@ enum dfs_ieee80211_opmode {
|
|||||||
IEEE80211_IS_CHAN_HT20_CAPABLE(_c)
|
IEEE80211_IS_CHAN_HT20_CAPABLE(_c)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_11N_CTL_U_CAPABLE(_c) \
|
#define IEEE80211_IS_CHAN_11N_CTL_U_CAPABLE(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_HT40PLUS) == IEEE80211_CHAN_HT40PLUS)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_HT40PLUS) == \
|
||||||
|
IEEE80211_CHAN_HT40PLUS)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_11N_CTL_L_CAPABLE(_c) \
|
#define IEEE80211_IS_CHAN_11N_CTL_L_CAPABLE(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_HT40MINUS) == \
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_HT40MINUS) == \
|
||||||
IEEE80211_CHAN_HT40MINUS)
|
IEEE80211_CHAN_HT40MINUS)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_11N_CTL_40_CAPABLE(_c) \
|
#define IEEE80211_IS_CHAN_11N_CTL_40_CAPABLE(_c) \
|
||||||
@@ -435,7 +438,7 @@ enum dfs_ieee80211_opmode {
|
|||||||
IEEE80211_IS_CHAN_11N_CTL_L_CAPABLE((_c)))
|
IEEE80211_IS_CHAN_11N_CTL_L_CAPABLE((_c)))
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_VHT(_c) \
|
#define IEEE80211_IS_CHAN_VHT(_c) \
|
||||||
(((_c)->ic_flags & (IEEE80211_CHAN_VHT20 | \
|
(((_c)->dfs_ch_flags & (IEEE80211_CHAN_VHT20 | \
|
||||||
IEEE80211_CHAN_VHT40PLUS | \
|
IEEE80211_CHAN_VHT40PLUS | \
|
||||||
IEEE80211_CHAN_VHT40MINUS | \
|
IEEE80211_CHAN_VHT40MINUS | \
|
||||||
IEEE80211_CHAN_VHT80 | \
|
IEEE80211_CHAN_VHT80 | \
|
||||||
@@ -468,86 +471,87 @@ enum dfs_ieee80211_opmode {
|
|||||||
(IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_VHT80_80)
|
(IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_VHT80_80)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_11AC_VHT20(_c) \
|
#define IEEE80211_IS_CHAN_11AC_VHT20(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_11AC_VHT20) == \
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_11AC_VHT20) == \
|
||||||
IEEE80211_CHAN_11AC_VHT20)
|
IEEE80211_CHAN_11AC_VHT20)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_11AC_VHT40(_c) \
|
#define IEEE80211_IS_CHAN_11AC_VHT40(_c) \
|
||||||
(((_c)->ic_flags & (IEEE80211_CHAN_VHT40PLUS | \
|
(((_c)->dfs_ch_flags & (IEEE80211_CHAN_VHT40PLUS | \
|
||||||
IEEE80211_CHAN_VHT40MINUS)) != 0)
|
IEEE80211_CHAN_VHT40MINUS)) != 0)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_11AC_VHT40PLUS(_c) \
|
#define IEEE80211_IS_CHAN_11AC_VHT40PLUS(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_11AC_VHT40PLUS) == \
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_11AC_VHT40PLUS) == \
|
||||||
IEEE80211_CHAN_11AC_VHT40PLUS)
|
IEEE80211_CHAN_11AC_VHT40PLUS)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_11AC_VHT40MINUS(_c) \
|
#define IEEE80211_IS_CHAN_11AC_VHT40MINUS(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_11AC_VHT40MINUS) == \
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_11AC_VHT40MINUS) == \
|
||||||
IEEE80211_CHAN_11AC_VHT40MINUS)
|
IEEE80211_CHAN_11AC_VHT40MINUS)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_11AC_VHT80(_c) \
|
#define IEEE80211_IS_CHAN_11AC_VHT80(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_11AC_VHT80) == \
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_11AC_VHT80) == \
|
||||||
IEEE80211_CHAN_11AC_VHT80)
|
IEEE80211_CHAN_11AC_VHT80)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_11AC_VHT160(_c) \
|
#define IEEE80211_IS_CHAN_11AC_VHT160(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_11AC_VHT160) == \
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_11AC_VHT160) == \
|
||||||
IEEE80211_CHAN_11AC_VHT160)
|
IEEE80211_CHAN_11AC_VHT160)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_11AC_VHT80_80(_c) \
|
#define IEEE80211_IS_CHAN_11AC_VHT80_80(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_11AC_VHT80_80) == \
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_11AC_VHT80_80) == \
|
||||||
IEEE80211_CHAN_11AC_VHT80_80)
|
IEEE80211_CHAN_11AC_VHT80_80)
|
||||||
|
|
||||||
#define IEEE80211_CH_HOPPING_SET_CHAN_BLOCKED(_c) \
|
#define IEEE80211_CH_HOPPING_SET_CHAN_BLOCKED(_c) \
|
||||||
((_c)->ic_flags |= IEEE80211_CHAN_BLOCKED)
|
((_c)->dfs_ch_flags |= IEEE80211_CHAN_BLOCKED)
|
||||||
|
|
||||||
#define IEEE80211_CH_HOPPING_IS_CHAN_BLOCKED(_c) \
|
#define IEEE80211_CH_HOPPING_IS_CHAN_BLOCKED(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_BLOCKED) == IEEE80211_CHAN_BLOCKED)
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_BLOCKED) == \
|
||||||
|
IEEE80211_CHAN_BLOCKED)
|
||||||
|
|
||||||
#define IEEE80211_CH_HOPPING_CLEAR_CHAN_BLOCKED(_c) \
|
#define IEEE80211_CH_HOPPING_CLEAR_CHAN_BLOCKED(_c) \
|
||||||
((_c)->ic_flags &= ~IEEE80211_CHAN_BLOCKED)
|
((_c)->dfs_ch_flags &= ~IEEE80211_CHAN_BLOCKED)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_RADAR(_c) \
|
#define IEEE80211_IS_CHAN_RADAR(_c) \
|
||||||
(((_c)->ic_flags & IEEE80211_CHAN_DFS_RADAR) == \
|
(((_c)->dfs_ch_flags & IEEE80211_CHAN_DFS_RADAR) == \
|
||||||
IEEE80211_CHAN_DFS_RADAR)
|
IEEE80211_CHAN_DFS_RADAR)
|
||||||
|
|
||||||
#define IEEE80211_CHAN_SET_RADAR(_c) \
|
#define IEEE80211_CHAN_SET_RADAR(_c) \
|
||||||
((_c)->ic_flags |= IEEE80211_CHAN_DFS_RADAR)
|
((_c)->dfs_ch_flags |= IEEE80211_CHAN_DFS_RADAR)
|
||||||
|
|
||||||
#define IEEE80211_CHAN_CLR_RADAR(_c) \
|
#define IEEE80211_CHAN_CLR_RADAR(_c) \
|
||||||
((_c)->ic_flags &= ~IEEE80211_CHAN_DFS_RADAR)
|
((_c)->dfs_ch_flags &= ~IEEE80211_CHAN_DFS_RADAR)
|
||||||
|
|
||||||
#define IEEE80211_CHAN_SET_DISALLOW_ADHOC(_c) \
|
#define IEEE80211_CHAN_SET_DISALLOW_ADHOC(_c) \
|
||||||
((_c)->ic_flagext |= IEEE80211_CHAN_DISALLOW_ADHOC)
|
((_c)->dfs_ch_flagext |= IEEE80211_CHAN_DISALLOW_ADHOC)
|
||||||
|
|
||||||
#define IEEE80211_CHAN_SET_DISALLOW_HOSTAP(_c) \
|
#define IEEE80211_CHAN_SET_DISALLOW_HOSTAP(_c) \
|
||||||
((_c)->ic_flagext |= IEEE80211_CHAN_DISALLOW_HOSTAP)
|
((_c)->dfs_ch_flagext |= IEEE80211_CHAN_DISALLOW_HOSTAP)
|
||||||
|
|
||||||
#define IEEE80211_CHAN_SET_DFS(_c) \
|
#define IEEE80211_CHAN_SET_DFS(_c) \
|
||||||
((_c)->ic_flagext |= IEEE80211_CHAN_DFS)
|
((_c)->dfs_ch_flagext |= IEEE80211_CHAN_DFS)
|
||||||
|
|
||||||
#define IEEE80211_CHAN_SET_DFS_CLEAR(_c) \
|
#define IEEE80211_CHAN_SET_DFS_CLEAR(_c) \
|
||||||
((_c)->ic_flagext |= IEEE80211_CHAN_DFS_CLEAR)
|
((_c)->dfs_ch_flagext |= IEEE80211_CHAN_DFS_CLEAR)
|
||||||
|
|
||||||
#define IEEE80211_CHAN_EXCLUDE_11D(_c) \
|
#define IEEE80211_CHAN_EXCLUDE_11D(_c) \
|
||||||
((_c)->ic_flagext |= IEEE80211_CHAN_11D_EXCLUDED)
|
((_c)->dfs_ch_flagext |= IEEE80211_CHAN_11D_EXCLUDED)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_HISTORY_RADAR(_c) \
|
#define IEEE80211_IS_CHAN_HISTORY_RADAR(_c) \
|
||||||
(((_c)->ic_flagext & IEEE80211_CHAN_HISTORY_RADAR) == \
|
(((_c)->dfs_ch_flagext & IEEE80211_CHAN_HISTORY_RADAR) == \
|
||||||
IEEE80211_CHAN_HISTORY_RADAR)
|
IEEE80211_CHAN_HISTORY_RADAR)
|
||||||
|
|
||||||
#define IEEE80211_CHAN_SET_HISTORY_RADAR(_c) \
|
#define IEEE80211_CHAN_SET_HISTORY_RADAR(_c) \
|
||||||
((_c)->ic_flagext |= IEEE80211_CHAN_HISTORY_RADAR)
|
((_c)->dfs_ch_flagext |= IEEE80211_CHAN_HISTORY_RADAR)
|
||||||
|
|
||||||
#define IEEE80211_CHAN_CLR_HISTORY_RADAR(_c) \
|
#define IEEE80211_CHAN_CLR_HISTORY_RADAR(_c) \
|
||||||
((_c)->ic_flagext &= ~IEEE80211_CHAN_HISTORY_RADAR)
|
((_c)->dfs_ch_flagext &= ~IEEE80211_CHAN_HISTORY_RADAR)
|
||||||
|
|
||||||
#define IEEE80211_IS_CHAN_CAC_VALID(_c) \
|
#define IEEE80211_IS_CHAN_CAC_VALID(_c) \
|
||||||
(((_c)->ic_flagext & IEEE80211_CHAN_CAC_VALID) == \
|
(((_c)->dfs_ch_flagext & IEEE80211_CHAN_CAC_VALID) == \
|
||||||
IEEE80211_CHAN_CAC_VALID)
|
IEEE80211_CHAN_CAC_VALID)
|
||||||
|
|
||||||
#define IEEE80211_CHAN_SET_CAC_VALID(_c) \
|
#define IEEE80211_CHAN_SET_CAC_VALID(_c) \
|
||||||
((_c)->ic_flagext |= IEEE80211_CHAN_CAC_VALID)
|
((_c)->dfs_ch_flagext |= IEEE80211_CHAN_CAC_VALID)
|
||||||
|
|
||||||
#define IEEE80211_CHAN_CLR_CAC_VALID(_c) \
|
#define IEEE80211_CHAN_CLR_CAC_VALID(_c) \
|
||||||
((_c)->ic_flagext &= ~IEEE80211_CHAN_CAC_VALID)
|
((_c)->dfs_ch_flagext &= ~IEEE80211_CHAN_CAC_VALID)
|
||||||
|
|
||||||
#define IEEE80211_CHAN_ANY (-1) /* token for ``any channel'' */
|
#define IEEE80211_CHAN_ANY (-1) /* token for ``any channel'' */
|
||||||
|
|
||||||
|
@@ -262,7 +262,7 @@ void dfs_process_ar_event(struct wlan_dfs *dfs,
|
|||||||
* Neighboring traffic detected, get out of
|
* Neighboring traffic detected, get out of
|
||||||
* Turbo.
|
* Turbo.
|
||||||
*/
|
*/
|
||||||
chan->ic_flagext |= CHANNEL_INTERFERENCE;
|
chan->dfs_ch_flagext |= CHANNEL_INTERFERENCE;
|
||||||
qdf_mem_zero(ar->ar_peaklist,
|
qdf_mem_zero(ar->ar_peaklist,
|
||||||
sizeof(ar->ar_peaklist));
|
sizeof(ar->ar_peaklist));
|
||||||
ar->ar_acksum = 0;
|
ar->ar_acksum = 0;
|
||||||
|
@@ -54,7 +54,7 @@ int dfs_bin5_check_pulse(struct wlan_dfs *dfs, struct dfs_event *re,
|
|||||||
|
|
||||||
#define CHANNEL_TURBO 0x00010
|
#define CHANNEL_TURBO 0x00010
|
||||||
/* Adjust the filter threshold for rssi in non TURBO mode. */
|
/* Adjust the filter threshold for rssi in non TURBO mode. */
|
||||||
if (!(dfs->dfs_curchan->ic_flags & CHANNEL_TURBO))
|
if (!(dfs->dfs_curchan->dfs_ch_flags & CHANNEL_TURBO))
|
||||||
b5_rssithresh += br->br_pulse.b5_rssimargin;
|
b5_rssithresh += br->br_pulse.b5_rssimargin;
|
||||||
|
|
||||||
/* Check if the pulse is within duration and rssi thresholds. */
|
/* Check if the pulse is within duration and rssi thresholds. */
|
||||||
|
@@ -460,8 +460,8 @@ static int dfs_tlv_calc_freq_info(struct wlan_dfs *dfs,
|
|||||||
* appropriately!
|
* appropriately!
|
||||||
*/
|
*/
|
||||||
chan_centre = dfs_mlme_ieee2mhz(dfs->dfs_pdev_obj,
|
chan_centre = dfs_mlme_ieee2mhz(dfs->dfs_pdev_obj,
|
||||||
dfs->dfs_curchan->ic_vhtop_ch_freq_seg1,
|
dfs->dfs_curchan->dfs_ch_vhtop_ch_freq_seg1,
|
||||||
dfs->dfs_curchan->ic_flags);
|
dfs->dfs_curchan->dfs_ch_flags);
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
* HT20/HT40.
|
* HT20/HT40.
|
||||||
@@ -475,10 +475,12 @@ static int dfs_tlv_calc_freq_info(struct wlan_dfs *dfs,
|
|||||||
|
|
||||||
/* Calculate offset based on HT40U/HT40D and VHT40U/VHT40D. */
|
/* Calculate offset based on HT40U/HT40D and VHT40U/VHT40D. */
|
||||||
if (IEEE80211_IS_CHAN_11N_HT40PLUS(dfs->dfs_curchan) ||
|
if (IEEE80211_IS_CHAN_11N_HT40PLUS(dfs->dfs_curchan) ||
|
||||||
dfs->dfs_curchan->ic_flags & IEEE80211_CHAN_VHT40PLUS)
|
dfs->dfs_curchan->dfs_ch_flags &
|
||||||
|
IEEE80211_CHAN_VHT40PLUS)
|
||||||
chan_offset = chan_width;
|
chan_offset = chan_width;
|
||||||
else if (IEEE80211_IS_CHAN_11N_HT40MINUS(dfs->dfs_curchan) ||
|
else if (IEEE80211_IS_CHAN_11N_HT40MINUS(dfs->dfs_curchan) ||
|
||||||
dfs->dfs_curchan->ic_flags & IEEE80211_CHAN_VHT40MINUS)
|
dfs->dfs_curchan->dfs_ch_flags &
|
||||||
|
IEEE80211_CHAN_VHT40MINUS)
|
||||||
chan_offset = -chan_width;
|
chan_offset = -chan_width;
|
||||||
else
|
else
|
||||||
chan_offset = 0;
|
chan_offset = 0;
|
||||||
|
@@ -99,8 +99,8 @@ static inline uint16_t dfs_get_event_freqcentre(struct wlan_dfs *dfs,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* For non-wide channels, the centre frequency is just ic_freq.
|
* For non-wide channels, the centre frequency is just dfs_ch_freq.
|
||||||
* The centre frequency for pri events is still ic_freq.
|
* The centre frequency for pri events is still dfs_ch_freq.
|
||||||
*/
|
*/
|
||||||
if (is_pri)
|
if (is_pri)
|
||||||
return dfs_ieee80211_chan2freq(dfs->dfs_curchan);
|
return dfs_ieee80211_chan2freq(dfs->dfs_curchan);
|
||||||
@@ -651,7 +651,7 @@ void dfs_process_phyerr(struct wlan_dfs *dfs, void *buf, uint16_t datalen,
|
|||||||
* If the channel is a turbo G channel, then the event is for the
|
* If the channel is a turbo G channel, then the event is for the
|
||||||
* adaptive radio (AR) pattern matching rather than radar detection.
|
* adaptive radio (AR) pattern matching rather than radar detection.
|
||||||
*/
|
*/
|
||||||
if ((dfs->dfs_curchan->ic_flags & CHANNEL_108G) == CHANNEL_108G) {
|
if ((dfs->dfs_curchan->dfs_ch_flags & CHANNEL_108G) == CHANNEL_108G) {
|
||||||
if (!(dfs->dfs_proc_phyerr & DFS_AR_EN)) {
|
if (!(dfs->dfs_proc_phyerr & DFS_AR_EN)) {
|
||||||
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS2,
|
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS2,
|
||||||
"%s: DFS_AR_EN not enabled\n",
|
"%s: DFS_AR_EN not enabled\n",
|
||||||
|
@@ -304,7 +304,7 @@ int dfs_process_radarevent(struct wlan_dfs *dfs,
|
|||||||
|
|
||||||
if ((dfs->dfsdomain == DFS_MKK4_DOMAIN) &&
|
if ((dfs->dfsdomain == DFS_MKK4_DOMAIN) &&
|
||||||
(dfs->dfs_caps.wlan_chip_is_bb_tlv) &&
|
(dfs->dfs_caps.wlan_chip_is_bb_tlv) &&
|
||||||
(chan->ic_freq < FREQ_5500_MHZ)) {
|
(chan->dfs_ch_freq < FREQ_5500_MHZ)) {
|
||||||
|
|
||||||
dfs->dfs_pri_multiplier = DFS_W53_DEFAULT_PRI_MULTIPLIER;
|
dfs->dfs_pri_multiplier = DFS_W53_DEFAULT_PRI_MULTIPLIER;
|
||||||
/*
|
/*
|
||||||
@@ -374,7 +374,7 @@ int dfs_process_radarevent(struct wlan_dfs *dfs,
|
|||||||
WLAN_DFSQ_UNLOCK(dfs);
|
WLAN_DFSQ_UNLOCK(dfs);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (rs->rs_chan.ic_flagext & CHANNEL_INTERFERENCE) {
|
if (rs->rs_chan.dfs_ch_flagext & CHANNEL_INTERFERENCE) {
|
||||||
WLAN_DFSQ_LOCK(dfs);
|
WLAN_DFSQ_LOCK(dfs);
|
||||||
empty = STAILQ_EMPTY(&(dfs->dfs_radarq));
|
empty = STAILQ_EMPTY(&(dfs->dfs_radarq));
|
||||||
WLAN_DFSQ_UNLOCK(dfs);
|
WLAN_DFSQ_UNLOCK(dfs);
|
||||||
@@ -597,7 +597,7 @@ int dfs_process_radarevent(struct wlan_dfs *dfs,
|
|||||||
rf = NULL;
|
rf = NULL;
|
||||||
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS1,
|
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS1,
|
||||||
" *** chan freq (%d): ts %llu dur %u rssi %u\n",
|
" *** chan freq (%d): ts %llu dur %u rssi %u\n",
|
||||||
rs->rs_chan.ic_freq,
|
rs->rs_chan.dfs_ch_freq,
|
||||||
(uint64_t)this_ts,
|
(uint64_t)this_ts,
|
||||||
re.re_dur,
|
re.re_dur,
|
||||||
re.re_rssi);
|
re.re_rssi);
|
||||||
@@ -609,7 +609,7 @@ int dfs_process_radarevent(struct wlan_dfs *dfs,
|
|||||||
[tabledepth])];
|
[tabledepth])];
|
||||||
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS2,
|
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS2,
|
||||||
" ** RD (%d): ts %x dur %u rssi %u\n",
|
" ** RD (%d): ts %x dur %u rssi %u\n",
|
||||||
rs->rs_chan.ic_freq,
|
rs->rs_chan.dfs_ch_freq,
|
||||||
re.re_ts,
|
re.re_ts,
|
||||||
re.re_dur,
|
re.re_dur,
|
||||||
re.re_rssi);
|
re.re_rssi);
|
||||||
@@ -685,7 +685,7 @@ dfsfound:
|
|||||||
} else {
|
} else {
|
||||||
DFS_PRINTK(
|
DFS_PRINTK(
|
||||||
"Radar found on channel %d (%d MHz)\n",
|
"Radar found on channel %d (%d MHz)\n",
|
||||||
thischan->ic_ieee, thischan->ic_freq);
|
thischan->dfs_ch_ieee, thischan->dfs_ch_freq);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -701,13 +701,13 @@ dfsfound:
|
|||||||
|
|
||||||
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS1,
|
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS1,
|
||||||
"Primary channel freq = %u flags=0x%x\n",
|
"Primary channel freq = %u flags=0x%x\n",
|
||||||
chan->ic_freq, chan->ic_flagext);
|
chan->dfs_ch_freq, chan->dfs_ch_flagext);
|
||||||
|
|
||||||
if (chan->ic_freq != thischan->ic_freq)
|
if (chan->dfs_ch_freq != thischan->dfs_ch_freq)
|
||||||
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS1,
|
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS1,
|
||||||
"Ext channel freq = %u flags=0x%x\n",
|
"Ext channel freq = %u flags=0x%x\n",
|
||||||
thischan->ic_freq,
|
thischan->dfs_ch_freq,
|
||||||
thischan->ic_flagext);
|
thischan->dfs_ch_flagext);
|
||||||
|
|
||||||
dfs->dfs_phyerr_freq_min = 0x7fffffff;
|
dfs->dfs_phyerr_freq_min = 0x7fffffff;
|
||||||
dfs->dfs_phyerr_freq_max = 0;
|
dfs->dfs_phyerr_freq_max = 0;
|
||||||
|
@@ -498,14 +498,15 @@ void dfs_radar_found_action(struct wlan_dfs *dfs)
|
|||||||
|
|
||||||
dfs_find_precac_secondary_vht80_chan(dfs, &ichan);
|
dfs_find_precac_secondary_vht80_chan(dfs, &ichan);
|
||||||
dfs_mlme_channel_mark_radar(dfs->dfs_pdev_obj,
|
dfs_mlme_channel_mark_radar(dfs->dfs_pdev_obj,
|
||||||
ichan->ic_freq,
|
ichan->dfs_ch_freq,
|
||||||
ichan->ic_vhtop_ch_freq_seg2,
|
ichan->dfs_ch_vhtop_ch_freq_seg2,
|
||||||
ichan->ic_flags);
|
ichan->dfs_ch_flags);
|
||||||
} else {
|
} else {
|
||||||
dfs_mlme_channel_mark_radar(dfs->dfs_pdev_obj,
|
dfs_mlme_channel_mark_radar(dfs->dfs_pdev_obj,
|
||||||
dfs->dfs_curchan->ic_freq,
|
dfs->dfs_curchan->dfs_ch_freq,
|
||||||
dfs->dfs_curchan->ic_vhtop_ch_freq_seg2,
|
dfs->dfs_curchan->
|
||||||
dfs->dfs_curchan->ic_flags);
|
dfs_ch_vhtop_ch_freq_seg2,
|
||||||
|
dfs->dfs_curchan->dfs_ch_flags);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -540,10 +541,10 @@ void dfs_radar_found_action(struct wlan_dfs *dfs)
|
|||||||
if (dfs->dfs_rinfo.rn_use_nol == 1) {
|
if (dfs->dfs_rinfo.rn_use_nol == 1) {
|
||||||
dfs_mlme_start_rcsa(dfs->dfs_pdev_obj);
|
dfs_mlme_start_rcsa(dfs->dfs_pdev_obj);
|
||||||
dfs_mlme_mark_dfs(dfs->dfs_pdev_obj,
|
dfs_mlme_mark_dfs(dfs->dfs_pdev_obj,
|
||||||
dfs->dfs_curchan->ic_ieee,
|
dfs->dfs_curchan->dfs_ch_ieee,
|
||||||
dfs->dfs_curchan->ic_freq,
|
dfs->dfs_curchan->dfs_ch_freq,
|
||||||
dfs->dfs_curchan->ic_vhtop_ch_freq_seg2,
|
dfs->dfs_curchan->dfs_ch_vhtop_ch_freq_seg2,
|
||||||
dfs->dfs_curchan->ic_flags);
|
dfs->dfs_curchan->dfs_ch_flags);
|
||||||
/*
|
/*
|
||||||
* EV 129487 : We have detected radar in the channel,
|
* EV 129487 : We have detected radar in the channel,
|
||||||
* stop processing PHY error data as this can cause
|
* stop processing PHY error data as this can cause
|
||||||
@@ -560,7 +561,7 @@ void dfs_radar_found_action(struct wlan_dfs *dfs)
|
|||||||
*/
|
*/
|
||||||
qdf_timer_stop(&dfs->wlan_dfstesttimer);
|
qdf_timer_stop(&dfs->wlan_dfstesttimer);
|
||||||
dfs->wlan_dfstest = 1;
|
dfs->wlan_dfstest = 1;
|
||||||
dfs->wlan_dfstest_ieeechan = dfs->dfs_curchan->ic_ieee;
|
dfs->wlan_dfstest_ieeechan = dfs->dfs_curchan->dfs_ch_ieee;
|
||||||
dfs->wlan_dfstesttime = 1; /* 1ms */
|
dfs->wlan_dfstesttime = 1; /* 1ms */
|
||||||
OS_SET_TIMER(&dfs->wlan_dfstesttimer,
|
OS_SET_TIMER(&dfs->wlan_dfstesttimer,
|
||||||
dfs->wlan_dfstesttime);
|
dfs->wlan_dfstesttime);
|
||||||
|
@@ -440,29 +440,32 @@ struct dfs_state *dfs_getchanstate(struct wlan_dfs *dfs, uint8_t *index,
|
|||||||
cmp_ch = &cmp_ch1;
|
cmp_ch = &cmp_ch1;
|
||||||
if (ext_chan_flag) {
|
if (ext_chan_flag) {
|
||||||
err = dfs_mlme_get_extchan(dfs->dfs_pdev_obj,
|
err = dfs_mlme_get_extchan(dfs->dfs_pdev_obj,
|
||||||
&(cmp_ch->ic_freq),
|
&(cmp_ch->dfs_ch_freq),
|
||||||
&(cmp_ch->ic_flags),
|
&(cmp_ch->dfs_ch_flags),
|
||||||
&(cmp_ch->ic_flagext),
|
&(cmp_ch->dfs_ch_flagext),
|
||||||
&(cmp_ch->ic_ieee),
|
&(cmp_ch->dfs_ch_ieee),
|
||||||
&(cmp_ch->ic_vhtop_ch_freq_seg1),
|
&(cmp_ch->dfs_ch_vhtop_ch_freq_seg1),
|
||||||
&(cmp_ch->ic_vhtop_ch_freq_seg2));
|
&(cmp_ch->dfs_ch_vhtop_ch_freq_seg2));
|
||||||
|
|
||||||
if (err == QDF_STATUS_SUCCESS) {
|
if (err == QDF_STATUS_SUCCESS) {
|
||||||
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS2,
|
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS2,
|
||||||
"Extension channel freq = %u flags=0x%x\n",
|
"Extension channel freq = %u flags=0x%x\n",
|
||||||
cmp_ch->ic_freq, cmp_ch->ic_flagext);
|
cmp_ch->dfs_ch_freq,
|
||||||
|
cmp_ch->dfs_ch_flagext);
|
||||||
} else
|
} else
|
||||||
return NULL;
|
return NULL;
|
||||||
} else {
|
} else {
|
||||||
cmp_ch = dfs->dfs_curchan;
|
cmp_ch = dfs->dfs_curchan;
|
||||||
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS2,
|
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS2,
|
||||||
"Primary channel freq = %u flags=0x%x\n",
|
"Primary channel freq = %u flags=0x%x\n",
|
||||||
cmp_ch->ic_freq, cmp_ch->ic_flagext);
|
cmp_ch->dfs_ch_freq, cmp_ch->dfs_ch_flagext);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < DFS_NUM_RADAR_STATES; i++) {
|
for (i = 0; i < DFS_NUM_RADAR_STATES; i++) {
|
||||||
if ((dfs->dfs_radar[i].rs_chan.ic_freq == cmp_ch->ic_freq) &&
|
if ((dfs->dfs_radar[i].rs_chan.dfs_ch_freq ==
|
||||||
(dfs->dfs_radar[i].rs_chan.ic_flags == cmp_ch->ic_flags)
|
cmp_ch->dfs_ch_freq) &&
|
||||||
|
(dfs->dfs_radar[i].rs_chan.dfs_ch_flags ==
|
||||||
|
cmp_ch->dfs_ch_flags)
|
||||||
) {
|
) {
|
||||||
if (index != NULL)
|
if (index != NULL)
|
||||||
*index = (uint8_t)i;
|
*index = (uint8_t)i;
|
||||||
@@ -471,7 +474,7 @@ struct dfs_state *dfs_getchanstate(struct wlan_dfs *dfs, uint8_t *index,
|
|||||||
}
|
}
|
||||||
/* No existing channel found, look for first free channel state entry.*/
|
/* No existing channel found, look for first free channel state entry.*/
|
||||||
for (i = 0; i < DFS_NUM_RADAR_STATES; i++) {
|
for (i = 0; i < DFS_NUM_RADAR_STATES; i++) {
|
||||||
if (dfs->dfs_radar[i].rs_chan.ic_freq == 0) {
|
if (dfs->dfs_radar[i].rs_chan.dfs_ch_freq == 0) {
|
||||||
rs = &(dfs->dfs_radar[i]);
|
rs = &(dfs->dfs_radar[i]);
|
||||||
/* Found one, set channel info and default thresholds.*/
|
/* Found one, set channel info and default thresholds.*/
|
||||||
rs->rs_chan = *cmp_ch;
|
rs->rs_chan = *cmp_ch;
|
||||||
@@ -528,12 +531,12 @@ void dfs_radar_enable(struct wlan_dfs *dfs, int no_cac, uint32_t opmode)
|
|||||||
ext_ch = &extchan;
|
ext_ch = &extchan;
|
||||||
if (is_ext_ch)
|
if (is_ext_ch)
|
||||||
err = dfs_mlme_get_extchan(dfs->dfs_pdev_obj,
|
err = dfs_mlme_get_extchan(dfs->dfs_pdev_obj,
|
||||||
&(ext_ch->ic_freq),
|
&(ext_ch->dfs_ch_freq),
|
||||||
&(ext_ch->ic_flags),
|
&(ext_ch->dfs_ch_flags),
|
||||||
&(ext_ch->ic_flagext),
|
&(ext_ch->dfs_ch_flagext),
|
||||||
&(ext_ch->ic_ieee),
|
&(ext_ch->dfs_ch_ieee),
|
||||||
&(ext_ch->ic_vhtop_ch_freq_seg1),
|
&(ext_ch->dfs_ch_vhtop_ch_freq_seg1),
|
||||||
&(ext_ch->ic_vhtop_ch_freq_seg2));
|
&(ext_ch->dfs_ch_vhtop_ch_freq_seg2));
|
||||||
|
|
||||||
|
|
||||||
dfs_reset_alldelaylines(dfs);
|
dfs_reset_alldelaylines(dfs);
|
||||||
@@ -578,7 +581,7 @@ void dfs_radar_enable(struct wlan_dfs *dfs, int no_cac, uint32_t opmode)
|
|||||||
dfs->dfsdomain);
|
dfs->dfsdomain);
|
||||||
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS,
|
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS,
|
||||||
"Enabled radar detection on channel %d\n",
|
"Enabled radar detection on channel %d\n",
|
||||||
dfs->dfs_curchan->ic_freq);
|
dfs->dfs_curchan->dfs_ch_freq);
|
||||||
|
|
||||||
dfs->dur_multiplier = is_fastclk ?
|
dfs->dur_multiplier = is_fastclk ?
|
||||||
DFS_FAST_CLOCK_MULTIPLIER :
|
DFS_FAST_CLOCK_MULTIPLIER :
|
||||||
@@ -869,7 +872,7 @@ int dfs_control(struct wlan_dfs *dfs,
|
|||||||
nol = (struct dfsreq_nolinfo *)outdata;
|
nol = (struct dfsreq_nolinfo *)outdata;
|
||||||
dfs_get_nol(dfs,
|
dfs_get_nol(dfs,
|
||||||
(struct dfsreq_nolelem *)nol->dfs_nol,
|
(struct dfsreq_nolelem *)nol->dfs_nol,
|
||||||
&nol->ic_nchans);
|
&nol->dfs_ch_nchans);
|
||||||
dfs_print_nol(dfs);
|
dfs_print_nol(dfs);
|
||||||
break;
|
break;
|
||||||
case DFS_SET_NOL:
|
case DFS_SET_NOL:
|
||||||
@@ -880,7 +883,7 @@ int dfs_control(struct wlan_dfs *dfs,
|
|||||||
nol = (struct dfsreq_nolinfo *) indata;
|
nol = (struct dfsreq_nolinfo *) indata;
|
||||||
dfs_set_nol(dfs,
|
dfs_set_nol(dfs,
|
||||||
(struct dfsreq_nolelem *)nol->dfs_nol,
|
(struct dfsreq_nolelem *)nol->dfs_nol,
|
||||||
nol->ic_nchans);
|
nol->dfs_ch_nchans);
|
||||||
break;
|
break;
|
||||||
case DFS_SHOW_NOL:
|
case DFS_SHOW_NOL:
|
||||||
dfs_print_nol(dfs);
|
dfs_print_nol(dfs);
|
||||||
@@ -1025,7 +1028,7 @@ void dfs_getnol(struct wlan_dfs *dfs, void *dfs_nolinfo)
|
|||||||
{
|
{
|
||||||
struct dfsreq_nolinfo *nolinfo = (struct dfsreq_nolinfo *)dfs_nolinfo;
|
struct dfsreq_nolinfo *nolinfo = (struct dfsreq_nolinfo *)dfs_nolinfo;
|
||||||
|
|
||||||
dfs_get_nol(dfs, nolinfo->dfs_nol, &(nolinfo->ic_nchans));
|
dfs_get_nol(dfs, nolinfo->dfs_nol, &(nolinfo->dfs_ch_nchans));
|
||||||
}
|
}
|
||||||
|
|
||||||
void dfs_clear_nolhistory(struct wlan_dfs *dfs)
|
void dfs_clear_nolhistory(struct wlan_dfs *dfs)
|
||||||
@@ -1036,39 +1039,39 @@ void dfs_clear_nolhistory(struct wlan_dfs *dfs)
|
|||||||
int nchans = 0;
|
int nchans = 0;
|
||||||
|
|
||||||
c = &lc;
|
c = &lc;
|
||||||
dfs_mlme_get_ic_nchans(dfs->dfs_pdev_obj, &nchans);
|
dfs_mlme_get_dfs_ch_nchans(dfs->dfs_pdev_obj, &nchans);
|
||||||
for (i = 0; i < nchans; i++) {
|
for (i = 0; i < nchans; i++) {
|
||||||
dfs_mlme_get_ic_channels(dfs->dfs_pdev_obj,
|
dfs_mlme_get_dfs_ch_channels(dfs->dfs_pdev_obj,
|
||||||
&(c->ic_freq),
|
&(c->dfs_ch_freq),
|
||||||
&(c->ic_flags),
|
&(c->dfs_ch_flags),
|
||||||
&(c->ic_flagext),
|
&(c->dfs_ch_flagext),
|
||||||
&(c->ic_ieee),
|
&(c->dfs_ch_ieee),
|
||||||
&(c->ic_vhtop_ch_freq_seg1),
|
&(c->dfs_ch_vhtop_ch_freq_seg1),
|
||||||
&(c->ic_vhtop_ch_freq_seg2),
|
&(c->dfs_ch_vhtop_ch_freq_seg2),
|
||||||
i);
|
i);
|
||||||
IEEE80211_CHAN_CLR_HISTORY_RADAR(c);
|
IEEE80211_CHAN_CLR_HISTORY_RADAR(c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void dfs_set_current_channel(struct wlan_dfs *dfs,
|
void dfs_set_current_channel(struct wlan_dfs *dfs,
|
||||||
uint16_t ic_freq,
|
uint16_t dfs_ch_freq,
|
||||||
uint32_t ic_flags,
|
uint32_t dfs_ch_flags,
|
||||||
uint16_t ic_flagext,
|
uint16_t dfs_ch_flagext,
|
||||||
uint8_t ic_ieee,
|
uint8_t dfs_ch_ieee,
|
||||||
uint8_t ic_vhtop_ch_freq_seg1,
|
uint8_t dfs_ch_vhtop_ch_freq_seg1,
|
||||||
uint8_t ic_vhtop_ch_freq_seg2)
|
uint8_t dfs_ch_vhtop_ch_freq_seg2)
|
||||||
{
|
{
|
||||||
if (dfs == NULL) {
|
if (dfs == NULL) {
|
||||||
DFS_PRINTK("%s: wlan_dfs is NULL\n", __func__);
|
DFS_PRINTK("%s: wlan_dfs is NULL\n", __func__);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
dfs->dfs_curchan->ic_freq = ic_freq;
|
dfs->dfs_curchan->dfs_ch_freq = dfs_ch_freq;
|
||||||
dfs->dfs_curchan->ic_flags = ic_flags;
|
dfs->dfs_curchan->dfs_ch_flags = dfs_ch_flags;
|
||||||
dfs->dfs_curchan->ic_flagext = ic_flagext;
|
dfs->dfs_curchan->dfs_ch_flagext = dfs_ch_flagext;
|
||||||
dfs->dfs_curchan->ic_ieee = ic_ieee;
|
dfs->dfs_curchan->dfs_ch_ieee = dfs_ch_ieee;
|
||||||
dfs->dfs_curchan->ic_vhtop_ch_freq_seg1 = ic_vhtop_ch_freq_seg1;
|
dfs->dfs_curchan->dfs_ch_vhtop_ch_freq_seg1 = dfs_ch_vhtop_ch_freq_seg1;
|
||||||
dfs->dfs_curchan->ic_vhtop_ch_freq_seg2 = ic_vhtop_ch_freq_seg2;
|
dfs->dfs_curchan->dfs_ch_vhtop_ch_freq_seg2 = dfs_ch_vhtop_ch_freq_seg2;
|
||||||
}
|
}
|
||||||
|
|
||||||
u_int dfs_ieee80211_chan2freq(struct dfs_ieee80211_channel *chan)
|
u_int dfs_ieee80211_chan2freq(struct dfs_ieee80211_channel *chan)
|
||||||
@@ -1077,5 +1080,5 @@ u_int dfs_ieee80211_chan2freq(struct dfs_ieee80211_channel *chan)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return chan == IEEE80211_CHAN_ANYC ?
|
return chan == IEEE80211_CHAN_ANYC ?
|
||||||
IEEE80211_CHAN_ANY : chan->ic_freq;
|
IEEE80211_CHAN_ANY : chan->dfs_ch_freq;
|
||||||
}
|
}
|
||||||
|
@@ -86,8 +86,8 @@ void dfs_cac_valid_reset(struct wlan_dfs *dfs,
|
|||||||
uint32_t prevchan_flags)
|
uint32_t prevchan_flags)
|
||||||
{
|
{
|
||||||
if (dfs->dfs_cac_valid_time) {
|
if (dfs->dfs_cac_valid_time) {
|
||||||
if ((prevchan_ieee != dfs->dfs_curchan->ic_ieee) ||
|
if ((prevchan_ieee != dfs->dfs_curchan->dfs_ch_ieee) ||
|
||||||
(prevchan_flags != dfs->dfs_curchan->ic_flags)) {
|
(prevchan_flags != dfs->dfs_curchan->dfs_ch_flags)) {
|
||||||
DFS_PRINTK(
|
DFS_PRINTK(
|
||||||
"%s : Cancelling timer & clearing cac_valid\n",
|
"%s : Cancelling timer & clearing cac_valid\n",
|
||||||
__func__);
|
__func__);
|
||||||
@@ -138,7 +138,7 @@ static os_timer_func(dfs_cac_timeout)
|
|||||||
dfs->dfs_cac_timer_running = 0;
|
dfs->dfs_cac_timer_running = 0;
|
||||||
|
|
||||||
DFS_PRINTK("%s cac expired, chan %d curr time %d\n", __func__,
|
DFS_PRINTK("%s cac expired, chan %d curr time %d\n", __func__,
|
||||||
dfs->dfs_curchan->ic_freq,
|
dfs->dfs_curchan->dfs_ch_freq,
|
||||||
(qdf_system_ticks_to_msecs(qdf_system_ticks()) / 1000));
|
(qdf_system_ticks_to_msecs(qdf_system_ticks()) / 1000));
|
||||||
/*
|
/*
|
||||||
* When radar is detected during a CAC we are woken up prematurely to
|
* When radar is detected during a CAC we are woken up prematurely to
|
||||||
@@ -146,17 +146,19 @@ static os_timer_func(dfs_cac_timeout)
|
|||||||
*/
|
*/
|
||||||
if (IEEE80211_IS_CHAN_RADAR(dfs->dfs_curchan)) {
|
if (IEEE80211_IS_CHAN_RADAR(dfs->dfs_curchan)) {
|
||||||
dfs_mlme_mark_dfs(dfs->dfs_pdev_obj,
|
dfs_mlme_mark_dfs(dfs->dfs_pdev_obj,
|
||||||
dfs->dfs_curchan->ic_ieee,
|
dfs->dfs_curchan->dfs_ch_ieee,
|
||||||
dfs->dfs_curchan->ic_freq,
|
dfs->dfs_curchan->dfs_ch_freq,
|
||||||
dfs->dfs_curchan->ic_vhtop_ch_freq_seg2,
|
dfs->dfs_curchan->dfs_ch_vhtop_ch_freq_seg2,
|
||||||
dfs->dfs_curchan->ic_flags);
|
dfs->dfs_curchan->dfs_ch_flags);
|
||||||
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS,
|
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS,
|
||||||
"CAC timer on channel %u (%u MHz) stopped due to radar\n",
|
"CAC timer on channel %u (%u MHz) stopped due to radar\n",
|
||||||
dfs->dfs_curchan->ic_ieee, dfs->dfs_curchan->ic_freq);
|
dfs->dfs_curchan->dfs_ch_ieee,
|
||||||
|
dfs->dfs_curchan->dfs_ch_freq);
|
||||||
} else {
|
} else {
|
||||||
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS,
|
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS,
|
||||||
"CAC timer on channel %u (%u MHz) expired; no radar detected\n",
|
"CAC timer on channel %u (%u MHz) expired; no radar detected\n",
|
||||||
dfs->dfs_curchan->ic_ieee, dfs->dfs_curchan->ic_freq);
|
dfs->dfs_curchan->dfs_ch_ieee,
|
||||||
|
dfs->dfs_curchan->dfs_ch_freq);
|
||||||
|
|
||||||
/* On CAC completion, set the bit 'cac_valid'.
|
/* On CAC completion, set the bit 'cac_valid'.
|
||||||
* CAC will not be re-done if this bit is reset.
|
* CAC will not be re-done if this bit is reset.
|
||||||
@@ -191,9 +193,9 @@ void dfs_start_cac_timer(struct wlan_dfs *dfs)
|
|||||||
{
|
{
|
||||||
OS_SET_TIMER(&dfs->dfs_cac_timer,
|
OS_SET_TIMER(&dfs->dfs_cac_timer,
|
||||||
dfs_mlme_get_cac_timeout(dfs->dfs_pdev_obj,
|
dfs_mlme_get_cac_timeout(dfs->dfs_pdev_obj,
|
||||||
dfs->dfs_curchan->ic_freq,
|
dfs->dfs_curchan->dfs_ch_freq,
|
||||||
dfs->dfs_curchan->ic_vhtop_ch_freq_seg2,
|
dfs->dfs_curchan->dfs_ch_vhtop_ch_freq_seg2,
|
||||||
dfs->dfs_curchan->ic_flags) * 1000);
|
dfs->dfs_curchan->dfs_ch_flags) * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
void dfs_cancel_cac_timer(struct wlan_dfs *dfs)
|
void dfs_cancel_cac_timer(struct wlan_dfs *dfs)
|
||||||
@@ -208,7 +210,7 @@ void dfs_cac_stop(struct wlan_dfs *dfs)
|
|||||||
dfs_get_debug_info(dfs, (void *)&phyerr);
|
dfs_get_debug_info(dfs, (void *)&phyerr);
|
||||||
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS,
|
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS,
|
||||||
"%s : Stopping CAC Timer %d procphyerr 0x%08x\n",
|
"%s : Stopping CAC Timer %d procphyerr 0x%08x\n",
|
||||||
__func__, dfs->dfs_curchan->ic_freq, phyerr);
|
__func__, dfs->dfs_curchan->dfs_ch_freq, phyerr);
|
||||||
qdf_timer_stop(&dfs->dfs_cac_timer);
|
qdf_timer_stop(&dfs->dfs_cac_timer);
|
||||||
dfs->dfs_cac_timer_running = 0;
|
dfs->dfs_cac_timer_running = 0;
|
||||||
}
|
}
|
||||||
@@ -220,7 +222,7 @@ void dfs_stacac_stop(struct wlan_dfs *dfs)
|
|||||||
dfs_get_debug_info(dfs, (void *)&phyerr);
|
dfs_get_debug_info(dfs, (void *)&phyerr);
|
||||||
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS,
|
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS,
|
||||||
"%s : Stopping STA CAC Timer %d procphyerr 0x%08x\n",
|
"%s : Stopping STA CAC Timer %d procphyerr 0x%08x\n",
|
||||||
__func__, dfs->dfs_curchan->ic_freq, phyerr);
|
__func__, dfs->dfs_curchan->dfs_ch_freq, phyerr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -239,24 +241,25 @@ static os_timer_func(dfs_nol_timeout)
|
|||||||
c = &lc;
|
c = &lc;
|
||||||
|
|
||||||
OS_GET_TIMER_ARG(dfs, struct wlan_dfs *);
|
OS_GET_TIMER_ARG(dfs, struct wlan_dfs *);
|
||||||
dfs_mlme_get_ic_nchans(dfs->dfs_pdev_obj, &nchans);
|
dfs_mlme_get_dfs_ch_nchans(dfs->dfs_pdev_obj, &nchans);
|
||||||
|
|
||||||
now = oldest = qdf_system_ticks();
|
now = oldest = qdf_system_ticks();
|
||||||
for (i = 0; i < nchans; i++) {
|
for (i = 0; i < nchans; i++) {
|
||||||
dfs_mlme_get_ic_channels(dfs->dfs_pdev_obj,
|
dfs_mlme_get_dfs_ch_channels(dfs->dfs_pdev_obj,
|
||||||
&(c->ic_freq),
|
&(c->dfs_ch_freq),
|
||||||
&(c->ic_flags),
|
&(c->dfs_ch_flags),
|
||||||
&(c->ic_flagext),
|
&(c->dfs_ch_flagext),
|
||||||
&(c->ic_ieee),
|
&(c->dfs_ch_ieee),
|
||||||
&(c->ic_vhtop_ch_freq_seg1),
|
&(c->dfs_ch_vhtop_ch_freq_seg1),
|
||||||
&(c->ic_vhtop_ch_freq_seg2),
|
&(c->dfs_ch_vhtop_ch_freq_seg2),
|
||||||
i);
|
i);
|
||||||
if (IEEE80211_IS_CHAN_RADAR(c)) {
|
if (IEEE80211_IS_CHAN_RADAR(c)) {
|
||||||
if (qdf_system_time_after_eq(now,
|
if (qdf_system_time_after_eq(now,
|
||||||
dfs->dfs_nol_event[i] + NOL_TIMEOUT)) {
|
dfs->dfs_nol_event[i] + NOL_TIMEOUT)) {
|
||||||
c->ic_flagext &=
|
c->dfs_ch_flagext &=
|
||||||
~IEEE80211_CHAN_DFS_RADAR_FOUND;
|
~IEEE80211_CHAN_DFS_RADAR_FOUND;
|
||||||
if (c->ic_flags & IEEE80211_CHAN_DFS_RADAR) {
|
if (c->dfs_ch_flags &
|
||||||
|
IEEE80211_CHAN_DFS_RADAR) {
|
||||||
/*
|
/*
|
||||||
* NB: do this here so we get only one
|
* NB: do this here so we get only one
|
||||||
* msg instead of one for every channel
|
* msg instead of one for every channel
|
||||||
@@ -265,8 +268,8 @@ static os_timer_func(dfs_nol_timeout)
|
|||||||
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS,
|
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS,
|
||||||
"%s : radar on channel %u (%u MHz) cleared after timeout\n",
|
"%s : radar on channel %u (%u MHz) cleared after timeout\n",
|
||||||
__func__,
|
__func__,
|
||||||
c->ic_ieee,
|
c->dfs_ch_ieee,
|
||||||
c->ic_freq);
|
c->dfs_ch_freq);
|
||||||
}
|
}
|
||||||
} else if (dfs->dfs_nol_event[i] < oldest)
|
} else if (dfs->dfs_nol_event[i] < oldest)
|
||||||
oldest = dfs->dfs_nol_event[i];
|
oldest = dfs->dfs_nol_event[i];
|
||||||
@@ -370,7 +373,7 @@ int dfs_random_channel(struct wlan_dfs *dfs,
|
|||||||
"%s -- MMK4 domain, HT160, will look for HT160. if can't find no restriction on using upper or lower 5G channel\n",
|
"%s -- MMK4 domain, HT160, will look for HT160. if can't find no restriction on using upper or lower 5G channel\n",
|
||||||
__func__);
|
__func__);
|
||||||
} else {
|
} else {
|
||||||
if (dfs->dfs_curchan->ic_freq < CH100_START_FREQ) {
|
if (dfs->dfs_curchan->dfs_ch_freq < CH100_START_FREQ) {
|
||||||
use_lower_5g_only = 1;
|
use_lower_5g_only = 1;
|
||||||
use_upper_5g_only = 0;
|
use_upper_5g_only = 0;
|
||||||
DFS_PRINTK(
|
DFS_PRINTK(
|
||||||
@@ -392,17 +395,17 @@ int dfs_random_channel(struct wlan_dfs *dfs,
|
|||||||
* Assuming all G channels are present at the beginning of the
|
* Assuming all G channels are present at the beginning of the
|
||||||
* list, followed by all A channels
|
* list, followed by all A channels
|
||||||
*/
|
*/
|
||||||
dfs_mlme_get_ic_nchans(dfs->dfs_pdev_obj, &nchans);
|
dfs_mlme_get_dfs_ch_nchans(dfs->dfs_pdev_obj, &nchans);
|
||||||
for (j = 0; j < nchans; j++) {
|
for (j = 0; j < nchans; j++) {
|
||||||
dfs_mlme_get_ic_channels(dfs->dfs_pdev_obj,
|
dfs_mlme_get_dfs_ch_channels(dfs->dfs_pdev_obj,
|
||||||
&(c->ic_freq),
|
&(c->dfs_ch_freq),
|
||||||
&(c->ic_flags),
|
&(c->dfs_ch_flags),
|
||||||
&(c->ic_flagext),
|
&(c->dfs_ch_flagext),
|
||||||
&(c->ic_ieee),
|
&(c->dfs_ch_ieee),
|
||||||
&(c->ic_vhtop_ch_freq_seg1),
|
&(c->dfs_ch_vhtop_ch_freq_seg1),
|
||||||
&(c->ic_vhtop_ch_freq_seg2),
|
&(c->dfs_ch_vhtop_ch_freq_seg2),
|
||||||
j);
|
j);
|
||||||
chan_flags = c->ic_flags;
|
chan_flags = c->dfs_ch_flags;
|
||||||
if (chan_flags & IEEE80211_CHAN_2GHZ) {
|
if (chan_flags & IEEE80211_CHAN_2GHZ) {
|
||||||
numGChannels++;
|
numGChannels++;
|
||||||
continue;
|
continue;
|
||||||
@@ -413,34 +416,34 @@ int dfs_random_channel(struct wlan_dfs *dfs,
|
|||||||
numAChannels = (nchans - numGChannels);
|
numAChannels = (nchans - numGChannels);
|
||||||
chanStart = numGChannels;
|
chanStart = numGChannels;
|
||||||
|
|
||||||
curChanFlags = (dfs->dfs_curchan->ic_flags) & IEEE80211_CHAN_ALL;
|
curChanFlags = (dfs->dfs_curchan->dfs_ch_flags) & IEEE80211_CHAN_ALL;
|
||||||
if (dfs_mlme_ic_flags_ext(dfs->dfs_pdev_obj) &
|
if (dfs_mlme_dfs_ch_flags_ext(dfs->dfs_pdev_obj) &
|
||||||
IEEE80211_FEXT_BLKDFSCHAN)
|
IEEE80211_FEXT_BLKDFSCHAN)
|
||||||
curChanFlags &= ~IEEE80211_CHAN_DFS;
|
curChanFlags &= ~IEEE80211_CHAN_DFS;
|
||||||
|
|
||||||
for (n = 0; n < nchans; chanStart++, n++) {
|
for (n = 0; n < nchans; chanStart++, n++) {
|
||||||
if (chanStart == nchans)
|
if (chanStart == nchans)
|
||||||
chanStart = 0;
|
chanStart = 0;
|
||||||
dfs_mlme_get_ic_channels(dfs->dfs_pdev_obj,
|
dfs_mlme_get_dfs_ch_channels(dfs->dfs_pdev_obj,
|
||||||
&(c->ic_freq),
|
&(c->dfs_ch_freq),
|
||||||
&(c->ic_flags),
|
&(c->dfs_ch_flags),
|
||||||
&(c->ic_flagext),
|
&(c->dfs_ch_flagext),
|
||||||
&(c->ic_ieee),
|
&(c->dfs_ch_ieee),
|
||||||
&(c->ic_vhtop_ch_freq_seg1),
|
&(c->dfs_ch_vhtop_ch_freq_seg1),
|
||||||
&(c->ic_vhtop_ch_freq_seg2),
|
&(c->dfs_ch_vhtop_ch_freq_seg2),
|
||||||
chanStart);
|
chanStart);
|
||||||
chan_flags = c->ic_flags;
|
chan_flags = c->dfs_ch_flags;
|
||||||
chan_flagext = c->ic_flagext;
|
chan_flagext = c->dfs_ch_flagext;
|
||||||
|
|
||||||
if (skip_curchan) {
|
if (skip_curchan) {
|
||||||
/* Skip curchan when choosing apriori random channel.
|
/* Skip curchan when choosing apriori random channel.
|
||||||
*/
|
*/
|
||||||
if (c->ic_freq == dfs->dfs_curchan->ic_freq)
|
if (c->dfs_ch_freq == dfs->dfs_curchan->dfs_ch_freq)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* These channels have CAC of 10 minutes so skipping these. */
|
/* These channels have CAC of 10 minutes so skipping these. */
|
||||||
dfs_mlme_get_ic_no_weather_radar_chan(dfs->dfs_pdev_obj,
|
dfs_mlme_get_dfs_ch_no_weather_radar_chan(dfs->dfs_pdev_obj,
|
||||||
&no_wradar);
|
&no_wradar);
|
||||||
if (no_wradar) {
|
if (no_wradar) {
|
||||||
/*
|
/*
|
||||||
@@ -473,7 +476,7 @@ int dfs_random_channel(struct wlan_dfs *dfs,
|
|||||||
(chan_flags & IEEE80211_CHAN_DFS_RADAR) ||
|
(chan_flags & IEEE80211_CHAN_DFS_RADAR) ||
|
||||||
(chan_flagext & IEEE80211_CHAN_11D_EXCLUDED) ||
|
(chan_flagext & IEEE80211_CHAN_11D_EXCLUDED) ||
|
||||||
(chan_flagext & IEEE80211_CHAN_DFS &&
|
(chan_flagext & IEEE80211_CHAN_DFS &&
|
||||||
dfs_mlme_ic_flags_ext(dfs->dfs_pdev_obj) &
|
dfs_mlme_dfs_ch_flags_ext(dfs->dfs_pdev_obj) &
|
||||||
IEEE80211_FEXT_BLKDFSCHAN) ||
|
IEEE80211_FEXT_BLKDFSCHAN) ||
|
||||||
(chan_flagext & IEEE80211_CHAN_DFS && is_select_nondfs))
|
(chan_flagext & IEEE80211_CHAN_DFS && is_select_nondfs))
|
||||||
continue;
|
continue;
|
||||||
@@ -486,13 +489,14 @@ int dfs_random_channel(struct wlan_dfs *dfs,
|
|||||||
*/
|
*/
|
||||||
if (use_lower_5g_only) {
|
if (use_lower_5g_only) {
|
||||||
if (IEEE80211_IS_CHAN_11AC_VHT80_80(c)) {
|
if (IEEE80211_IS_CHAN_11AC_VHT80_80(c)) {
|
||||||
if ((c->ic_freq > CH100_START_FREQ) ||
|
if ((c->dfs_ch_freq > CH100_START_FREQ) ||
|
||||||
(c->ic_vhtop_ch_freq_seg2 > CH100)) {
|
(c->dfs_ch_vhtop_ch_freq_seg2 >
|
||||||
|
CH100)) {
|
||||||
/* Skip this channel. */
|
/* Skip this channel. */
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (c->ic_freq > CH100_START_FREQ) {
|
if (c->dfs_ch_freq > CH100_START_FREQ) {
|
||||||
/* Skip this channel. */
|
/* Skip this channel. */
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -501,13 +505,14 @@ int dfs_random_channel(struct wlan_dfs *dfs,
|
|||||||
|
|
||||||
if (use_upper_5g_only) {
|
if (use_upper_5g_only) {
|
||||||
if (IEEE80211_IS_CHAN_11AC_VHT80_80(c)) {
|
if (IEEE80211_IS_CHAN_11AC_VHT80_80(c)) {
|
||||||
if ((c->ic_freq < CH100_START_FREQ) ||
|
if ((c->dfs_ch_freq < CH100_START_FREQ) ||
|
||||||
(c->ic_vhtop_ch_freq_seg2 < CH100)) {
|
(c->dfs_ch_vhtop_ch_freq_seg2 <
|
||||||
|
CH100)) {
|
||||||
/* Skip this channel. */
|
/* Skip this channel. */
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (c->ic_freq < CH100_START_FREQ) {
|
if (c->dfs_ch_freq < CH100_START_FREQ) {
|
||||||
/* Skip this channel. */
|
/* Skip this channel. */
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@@ -171,20 +171,20 @@ void dfs_print_nolhistory(struct wlan_dfs *dfs)
|
|||||||
|
|
||||||
c = &lc;
|
c = &lc;
|
||||||
|
|
||||||
dfs_mlme_get_ic_nchans(dfs->dfs_pdev_obj, &nchans);
|
dfs_mlme_get_dfs_ch_nchans(dfs->dfs_pdev_obj, &nchans);
|
||||||
for (i = 0; i < nchans; i++) {
|
for (i = 0; i < nchans; i++) {
|
||||||
dfs_mlme_get_ic_channels(dfs->dfs_pdev_obj,
|
dfs_mlme_get_dfs_ch_channels(dfs->dfs_pdev_obj,
|
||||||
&(c->ic_freq),
|
&(c->dfs_ch_freq),
|
||||||
&(c->ic_flags),
|
&(c->dfs_ch_flags),
|
||||||
&(c->ic_flagext),
|
&(c->dfs_ch_flagext),
|
||||||
&(c->ic_ieee),
|
&(c->dfs_ch_ieee),
|
||||||
&(c->ic_vhtop_ch_freq_seg1),
|
&(c->dfs_ch_vhtop_ch_freq_seg1),
|
||||||
&(c->ic_vhtop_ch_freq_seg2),
|
&(c->dfs_ch_vhtop_ch_freq_seg2),
|
||||||
i);
|
i);
|
||||||
if (IEEE80211_IS_CHAN_HISTORY_RADAR(c)) {
|
if (IEEE80211_IS_CHAN_HISTORY_RADAR(c)) {
|
||||||
DFS_PRINTK(
|
DFS_PRINTK(
|
||||||
"nolhistory:%d channel=%d MHz Flags=%X\n",
|
"nolhistory:%d channel=%d MHz Flags=%X\n",
|
||||||
j, c->ic_freq, c->ic_flags);
|
j, c->dfs_ch_freq, c->dfs_ch_flags);
|
||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -235,12 +235,12 @@ void dfs_set_nol(struct wlan_dfs *dfs,
|
|||||||
qdf_system_ticks_to_msecs(qdf_system_ticks() -
|
qdf_system_ticks_to_msecs(qdf_system_ticks() -
|
||||||
dfs_nol[i].nol_start_ticks);
|
dfs_nol[i].nol_start_ticks);
|
||||||
if (nol_time_left_ms < dfs_nol[i].nol_timeout_ms) {
|
if (nol_time_left_ms < dfs_nol[i].nol_timeout_ms) {
|
||||||
chan.ic_freq = dfs_nol[i].nol_freq;
|
chan.dfs_ch_freq = dfs_nol[i].nol_freq;
|
||||||
chan.ic_flags = 0;
|
chan.dfs_ch_flags = 0;
|
||||||
chan.ic_flagext = 0;
|
chan.dfs_ch_flagext = 0;
|
||||||
nol_time_left_ms =
|
nol_time_left_ms =
|
||||||
(dfs_nol[i].nol_timeout_ms - nol_time_left_ms);
|
(dfs_nol[i].nol_timeout_ms - nol_time_left_ms);
|
||||||
dfs_nol_addchan(dfs, chan.ic_freq,
|
dfs_nol_addchan(dfs, chan.dfs_ch_freq,
|
||||||
(nol_time_left_ms / TIME_IN_MS));
|
(nol_time_left_ms / TIME_IN_MS));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -222,7 +222,7 @@ void dfs_process_radar_found_indication(struct wlan_dfs *dfs,
|
|||||||
}
|
}
|
||||||
|
|
||||||
qdf_mem_set(&freq_offset, sizeof(freq_offset), 0);
|
qdf_mem_set(&freq_offset, sizeof(freq_offset), 0);
|
||||||
flag = dfs->dfs_curchan->ic_flags;
|
flag = dfs->dfs_curchan->dfs_ch_flags;
|
||||||
|
|
||||||
for (i = 0; i < DFS_NUM_FREQ_OFFSET; i++)
|
for (i = 0; i < DFS_NUM_FREQ_OFFSET; i++)
|
||||||
freq_offset.offset[i] = radar_found->freq_offset;
|
freq_offset.offset[i] = radar_found->freq_offset;
|
||||||
@@ -231,10 +231,10 @@ void dfs_process_radar_found_indication(struct wlan_dfs *dfs,
|
|||||||
|
|
||||||
if (!radar_found->segment_id)
|
if (!radar_found->segment_id)
|
||||||
freq_center = utils_dfs_chan_to_freq(
|
freq_center = utils_dfs_chan_to_freq(
|
||||||
dfs->dfs_curchan->ic_vhtop_ch_freq_seg1);
|
dfs->dfs_curchan->dfs_ch_vhtop_ch_freq_seg1);
|
||||||
else {
|
else {
|
||||||
freq_center = utils_dfs_chan_to_freq(
|
freq_center = utils_dfs_chan_to_freq(
|
||||||
dfs->dfs_curchan->ic_vhtop_ch_freq_seg2);
|
dfs->dfs_curchan->dfs_ch_vhtop_ch_freq_seg2);
|
||||||
if (flag & IEEE80211_CHAN_VHT160)
|
if (flag & IEEE80211_CHAN_VHT160)
|
||||||
freq_center += DFS_160MHZ_SECOND_SEG_OFFSET;
|
freq_center += DFS_160MHZ_SECOND_SEG_OFFSET;
|
||||||
}
|
}
|
||||||
|
@@ -436,31 +436,35 @@ static void dfs_apply_rules(struct wlan_dfs *dfs,
|
|||||||
for (i = 0; i < ch_cnt; i++) {
|
for (i = 0; i < ch_cnt; i++) {
|
||||||
chan = &ch_list[i];
|
chan = &ch_list[i];
|
||||||
|
|
||||||
if ((chan->ic_ieee == 0) || (chan->ic_ieee > MAX_CHANNEL_NUM)) {
|
if ((chan->dfs_ch_ieee == 0) ||
|
||||||
|
(chan->dfs_ch_ieee > MAX_CHANNEL_NUM)) {
|
||||||
DFS_PRINTK("%s: invalid channel %d\n",
|
DFS_PRINTK("%s: invalid channel %d\n",
|
||||||
__func__, chan->ic_ieee);
|
__func__, chan->dfs_ch_ieee);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (acs_info && (acs_info->acs_mode == 1) &&
|
if (acs_info && (acs_info->acs_mode == 1) &&
|
||||||
((chan->ic_ieee < acs_info->start_ch) ||
|
((chan->dfs_ch_ieee < acs_info->start_ch) ||
|
||||||
(chan->ic_ieee > acs_info->end_ch))) {
|
(chan->dfs_ch_ieee > acs_info->end_ch))) {
|
||||||
DFS_PRINTK("%s: skip ch %d not in acs range (%d-%d)\n",
|
DFS_PRINTK("%s: skip ch %d not in acs range (%d-%d)\n",
|
||||||
__func__, chan->ic_ieee, acs_info->start_ch,
|
__func__, chan->dfs_ch_ieee,
|
||||||
|
acs_info->start_ch,
|
||||||
acs_info->end_ch);
|
acs_info->end_ch);
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flag_no_2g_chan && chan->ic_ieee <= DFS_MAX_24GHZ_CHANNEL) {
|
if (flag_no_2g_chan &&
|
||||||
|
chan->dfs_ch_ieee <= DFS_MAX_24GHZ_CHANNEL) {
|
||||||
DFS_PRINTK("%s: skip 2.4 GHz channel=%d\n",
|
DFS_PRINTK("%s: skip 2.4 GHz channel=%d\n",
|
||||||
__func__, chan->ic_ieee);
|
__func__, chan->dfs_ch_ieee);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flag_no_5g_chan && chan->ic_ieee > DFS_MAX_24GHZ_CHANNEL) {
|
if (flag_no_5g_chan &&
|
||||||
|
chan->dfs_ch_ieee > DFS_MAX_24GHZ_CHANNEL) {
|
||||||
DFS_PRINTK("%s: skip 5 GHz channel=%d\n",
|
DFS_PRINTK("%s: skip 5 GHz channel=%d\n",
|
||||||
__func__, chan->ic_ieee);
|
__func__, chan->dfs_ch_ieee);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -469,50 +473,50 @@ static void dfs_apply_rules(struct wlan_dfs *dfs,
|
|||||||
* We should also avoid this channel in HT40 mode as
|
* We should also avoid this channel in HT40 mode as
|
||||||
* extension channel will be on 5600.
|
* extension channel will be on 5600.
|
||||||
*/
|
*/
|
||||||
/* TODO check if reg updating chan->ic_flags for
|
/* TODO check if reg updating chan->dfs_ch_flags for
|
||||||
* IEEE80211_CHAN_11NA_HT40PLUS
|
* IEEE80211_CHAN_11NA_HT40PLUS
|
||||||
* */
|
* */
|
||||||
if (DFS_IS_CHANNEL_WEATHER_RADAR(chan->ic_freq)) {
|
if (DFS_IS_CHANNEL_WEATHER_RADAR(chan->dfs_ch_freq)) {
|
||||||
DFS_PRINTK("%s: skip weather channel=%d\n",
|
DFS_PRINTK("%s: skip weather channel=%d\n",
|
||||||
__func__, chan->ic_ieee);
|
__func__, chan->dfs_ch_ieee);
|
||||||
continue;
|
continue;
|
||||||
} else if (DFS_ADJACENT_WEATHER_RADAR_CHANNEL ==
|
} else if (DFS_ADJACENT_WEATHER_RADAR_CHANNEL ==
|
||||||
chan->ic_freq && (chan->ic_flags &
|
chan->dfs_ch_freq && (chan->dfs_ch_flags &
|
||||||
IEEE80211_CHAN_11NA_HT40PLUS)) {
|
IEEE80211_CHAN_11NA_HT40PLUS)) {
|
||||||
DFS_PRINTK("%s: skip weather adjacent ch=%d\n",
|
DFS_PRINTK("%s: skip weather adjacent ch=%d\n",
|
||||||
__func__, chan->ic_ieee);
|
__func__, chan->dfs_ch_ieee);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flag_no_lower_5g &&
|
if (flag_no_lower_5g &&
|
||||||
DFS_IS_CHAN_JAPAN_INDOOR(chan->ic_freq)) {
|
DFS_IS_CHAN_JAPAN_INDOOR(chan->dfs_ch_freq)) {
|
||||||
DFS_PRINTK("%s: skip indoor channel=%d\n",
|
DFS_PRINTK("%s: skip indoor channel=%d\n",
|
||||||
__func__, chan->ic_ieee);
|
__func__, chan->dfs_ch_ieee);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flag_no_upper_5g &&
|
if (flag_no_upper_5g &&
|
||||||
DFS_IS_CHAN_JAPAN_OUTDOOR(chan->ic_freq)) {
|
DFS_IS_CHAN_JAPAN_OUTDOOR(chan->dfs_ch_freq)) {
|
||||||
DFS_PRINTK("%s: skip outdoor channel=%d\n",
|
DFS_PRINTK("%s: skip outdoor channel=%d\n",
|
||||||
__func__, chan->ic_ieee);
|
__func__, chan->dfs_ch_ieee);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flag_no_dfs_chan &&
|
if (flag_no_dfs_chan &&
|
||||||
(chan->ic_flagext & IEEE80211_CHAN_DFS)) {
|
(chan->dfs_ch_flagext & IEEE80211_CHAN_DFS)) {
|
||||||
DFS_PRINTK("%s: skip dfs channel=%d\n",
|
DFS_PRINTK("%s: skip dfs channel=%d\n",
|
||||||
__func__, chan->ic_ieee);
|
__func__, chan->dfs_ch_ieee);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dfs_freq_is_in_nol(dfs, chan->ic_freq)) {
|
if (dfs_freq_is_in_nol(dfs, chan->dfs_ch_freq)) {
|
||||||
DFS_PRINTK("%s: skip nol channel=%d\n",
|
DFS_PRINTK("%s: skip nol channel=%d\n",
|
||||||
__func__, chan->ic_ieee);
|
__func__, chan->dfs_ch_ieee);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
random_chan_list[*random_chan_cnt] = chan->ic_ieee;
|
random_chan_list[*random_chan_cnt] = chan->dfs_ch_ieee;
|
||||||
*random_chan_cnt += 1;
|
*random_chan_cnt += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -561,7 +565,7 @@ int dfs_prepare_random_channel(struct wlan_dfs *dfs,
|
|||||||
}
|
}
|
||||||
|
|
||||||
target_ch = dfs_find_ch_with_fallback(ch_wd,
|
target_ch = dfs_find_ch_with_fallback(ch_wd,
|
||||||
&cur_chan->ic_vhtop_ch_freq_seg2,
|
&cur_chan->dfs_ch_vhtop_ch_freq_seg2,
|
||||||
random_chan_list,
|
random_chan_list,
|
||||||
random_chan_cnt);
|
random_chan_cnt);
|
||||||
if (target_ch)
|
if (target_ch)
|
||||||
|
@@ -158,7 +158,7 @@ bool dfs_is_ht20_40_80_chan_in_precac_done_list(struct wlan_dfs *dfs)
|
|||||||
&dfs->dfs_precac_done_list,
|
&dfs->dfs_precac_done_list,
|
||||||
pe_list) {
|
pe_list) {
|
||||||
/* Find if the VHT80 freq1 is in Pre-CAC done list */
|
/* Find if the VHT80 freq1 is in Pre-CAC done list */
|
||||||
if (IS_WITHIN_RANGE(dfs->dfs_curchan->ic_ieee,
|
if (IS_WITHIN_RANGE(dfs->dfs_curchan->dfs_ch_ieee,
|
||||||
precac_entry->vht80_freq,
|
precac_entry->vht80_freq,
|
||||||
VHT80_OFFSET)) {
|
VHT80_OFFSET)) {
|
||||||
ret_val = 1;
|
ret_val = 1;
|
||||||
@@ -168,7 +168,7 @@ bool dfs_is_ht20_40_80_chan_in_precac_done_list(struct wlan_dfs *dfs)
|
|||||||
PRECAC_LIST_UNLOCK(dfs);
|
PRECAC_LIST_UNLOCK(dfs);
|
||||||
|
|
||||||
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS, "%s : vht80_freq = %u ret_val = %d\n",
|
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS, "%s : vht80_freq = %u ret_val = %d\n",
|
||||||
__func__, dfs->dfs_curchan->ic_ieee, ret_val);
|
__func__, dfs->dfs_curchan->dfs_ch_ieee, ret_val);
|
||||||
|
|
||||||
return ret_val;
|
return ret_val;
|
||||||
}
|
}
|
||||||
@@ -186,7 +186,7 @@ bool dfs_is_ht80_80_chan_in_precac_done_list(struct wlan_dfs *dfs)
|
|||||||
TAILQ_FOREACH(precac_entry,
|
TAILQ_FOREACH(precac_entry,
|
||||||
&dfs->dfs_precac_done_list,
|
&dfs->dfs_precac_done_list,
|
||||||
pe_list) {
|
pe_list) {
|
||||||
if (dfs->dfs_curchan->ic_vhtop_ch_freq_seg1
|
if (dfs->dfs_curchan->dfs_ch_vhtop_ch_freq_seg1
|
||||||
== precac_entry->vht80_freq) {
|
== precac_entry->vht80_freq) {
|
||||||
primary_found = 1;
|
primary_found = 1;
|
||||||
break;
|
break;
|
||||||
@@ -202,7 +202,7 @@ bool dfs_is_ht80_80_chan_in_precac_done_list(struct wlan_dfs *dfs)
|
|||||||
TAILQ_FOREACH(precac_entry,
|
TAILQ_FOREACH(precac_entry,
|
||||||
&dfs->dfs_precac_done_list,
|
&dfs->dfs_precac_done_list,
|
||||||
pe_list) {
|
pe_list) {
|
||||||
if (dfs->dfs_curchan->ic_vhtop_ch_freq_seg2
|
if (dfs->dfs_curchan->dfs_ch_vhtop_ch_freq_seg2
|
||||||
== precac_entry->vht80_freq) {
|
== precac_entry->vht80_freq) {
|
||||||
/* Now secondary also found */
|
/* Now secondary also found */
|
||||||
ret_val = 1;
|
ret_val = 1;
|
||||||
@@ -219,8 +219,8 @@ bool dfs_is_ht80_80_chan_in_precac_done_list(struct wlan_dfs *dfs)
|
|||||||
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS,
|
DFS_DPRINTK(dfs, WLAN_DEBUG_DFS,
|
||||||
"%s : freq_seg1 = %u freq_seq2 = %u ret_val = %d\n",
|
"%s : freq_seg1 = %u freq_seq2 = %u ret_val = %d\n",
|
||||||
__func__,
|
__func__,
|
||||||
dfs->dfs_curchan->ic_vhtop_ch_freq_seg1,
|
dfs->dfs_curchan->dfs_ch_vhtop_ch_freq_seg1,
|
||||||
dfs->dfs_curchan->ic_vhtop_ch_freq_seg2,
|
dfs->dfs_curchan->dfs_ch_vhtop_ch_freq_seg2,
|
||||||
ret_val);
|
ret_val);
|
||||||
|
|
||||||
return ret_val;
|
return ret_val;
|
||||||
@@ -277,7 +277,7 @@ void dfs_mark_precac_dfs(struct wlan_dfs *dfs,
|
|||||||
if (is_radar_found_on_secondary_seg ?
|
if (is_radar_found_on_secondary_seg ?
|
||||||
(dfs->dfs_precac_secondary_freq ==
|
(dfs->dfs_precac_secondary_freq ==
|
||||||
precac_entry->vht80_freq) : IS_WITHIN_RANGE(
|
precac_entry->vht80_freq) : IS_WITHIN_RANGE(
|
||||||
dfs->dfs_curchan->ic_ieee,
|
dfs->dfs_curchan->dfs_ch_ieee,
|
||||||
precac_entry->vht80_freq,
|
precac_entry->vht80_freq,
|
||||||
VHT80_IEEE_FREQ_OFFSET)) {
|
VHT80_IEEE_FREQ_OFFSET)) {
|
||||||
TAILQ_REMOVE(&dfs->dfs_precac_required_list,
|
TAILQ_REMOVE(&dfs->dfs_precac_required_list,
|
||||||
@@ -311,7 +311,7 @@ void dfs_mark_precac_dfs(struct wlan_dfs *dfs,
|
|||||||
(dfs->dfs_precac_secondary_freq ==
|
(dfs->dfs_precac_secondary_freq ==
|
||||||
precac_entry->vht80_freq) :
|
precac_entry->vht80_freq) :
|
||||||
IS_WITHIN_RANGE(
|
IS_WITHIN_RANGE(
|
||||||
dfs->dfs_curchan->ic_ieee,
|
dfs->dfs_curchan->dfs_ch_ieee,
|
||||||
precac_entry->vht80_freq, 6)) {
|
precac_entry->vht80_freq, 6)) {
|
||||||
TAILQ_REMOVE(&dfs->dfs_precac_done_list,
|
TAILQ_REMOVE(&dfs->dfs_precac_done_list,
|
||||||
precac_entry, pe_list);
|
precac_entry, pe_list);
|
||||||
@@ -370,19 +370,20 @@ bool dfs_is_precac_timer_running(struct wlan_dfs *dfs)
|
|||||||
void dfs_find_precac_secondary_vht80_chan(struct wlan_dfs *dfs,
|
void dfs_find_precac_secondary_vht80_chan(struct wlan_dfs *dfs,
|
||||||
struct dfs_ieee80211_channel **chan)
|
struct dfs_ieee80211_channel **chan)
|
||||||
{
|
{
|
||||||
uint8_t first_primary_ic_ieee;
|
uint8_t first_primary_dfs_ch_ieee;
|
||||||
|
|
||||||
first_primary_ic_ieee =
|
first_primary_dfs_ch_ieee =
|
||||||
dfs->dfs_precac_secondary_freq - VHT80_IEEE_FREQ_OFFSET;
|
dfs->dfs_precac_secondary_freq - VHT80_IEEE_FREQ_OFFSET;
|
||||||
|
|
||||||
dfs_mlme_find_dot11_channel(dfs->dfs_pdev_obj, first_primary_ic_ieee, 0,
|
dfs_mlme_find_dot11_channel(dfs->dfs_pdev_obj,
|
||||||
|
first_primary_dfs_ch_ieee, 0,
|
||||||
IEEE80211_MODE_11AC_VHT80,
|
IEEE80211_MODE_11AC_VHT80,
|
||||||
&((*chan)->ic_freq),
|
&((*chan)->dfs_ch_freq),
|
||||||
&((*chan)->ic_flags),
|
&((*chan)->dfs_ch_flags),
|
||||||
&((*chan)->ic_flagext),
|
&((*chan)->dfs_ch_flagext),
|
||||||
&((*chan)->ic_ieee),
|
&((*chan)->dfs_ch_ieee),
|
||||||
&((*chan)->ic_vhtop_ch_freq_seg1),
|
&((*chan)->dfs_ch_vhtop_ch_freq_seg1),
|
||||||
&((*chan)->ic_vhtop_ch_freq_seg2));
|
&((*chan)->dfs_ch_vhtop_ch_freq_seg2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -486,7 +487,7 @@ void dfs_init_precac_list(struct wlan_dfs *dfs)
|
|||||||
TAILQ_INIT(&dfs->dfs_precac_required_list);
|
TAILQ_INIT(&dfs->dfs_precac_required_list);
|
||||||
TAILQ_INIT(&dfs->dfs_precac_done_list);
|
TAILQ_INIT(&dfs->dfs_precac_done_list);
|
||||||
TAILQ_INIT(&dfs->dfs_precac_nol_list);
|
TAILQ_INIT(&dfs->dfs_precac_nol_list);
|
||||||
dfs_mlme_get_ic_nchans(dfs->dfs_pdev_obj, &nchans);
|
dfs_mlme_get_dfs_ch_nchans(dfs->dfs_pdev_obj, &nchans);
|
||||||
|
|
||||||
PRECAC_LIST_LOCK(dfs);
|
PRECAC_LIST_LOCK(dfs);
|
||||||
/* Fill the precac-required-list with unique elements */
|
/* Fill the precac-required-list with unique elements */
|
||||||
@@ -494,13 +495,13 @@ void dfs_init_precac_list(struct wlan_dfs *dfs)
|
|||||||
struct dfs_ieee80211_channel *ichan = NULL, lc;
|
struct dfs_ieee80211_channel *ichan = NULL, lc;
|
||||||
|
|
||||||
ichan = &lc;
|
ichan = &lc;
|
||||||
dfs_mlme_get_ic_channels(dfs->dfs_pdev_obj,
|
dfs_mlme_get_dfs_ch_channels(dfs->dfs_pdev_obj,
|
||||||
&(ichan->ic_freq),
|
&(ichan->dfs_ch_freq),
|
||||||
&(ichan->ic_flags),
|
&(ichan->dfs_ch_flags),
|
||||||
&(ichan->ic_flagext),
|
&(ichan->dfs_ch_flagext),
|
||||||
&(ichan->ic_ieee),
|
&(ichan->dfs_ch_ieee),
|
||||||
&(ichan->ic_vhtop_ch_freq_seg1),
|
&(ichan->dfs_ch_vhtop_ch_freq_seg1),
|
||||||
&(ichan->ic_vhtop_ch_freq_seg2),
|
&(ichan->dfs_ch_vhtop_ch_freq_seg2),
|
||||||
i);
|
i);
|
||||||
|
|
||||||
if (IEEE80211_IS_CHAN_11AC_VHT80(ichan) &&
|
if (IEEE80211_IS_CHAN_11AC_VHT80(ichan) &&
|
||||||
@@ -510,7 +511,8 @@ void dfs_init_precac_list(struct wlan_dfs *dfs)
|
|||||||
&dfs->dfs_precac_required_list,
|
&dfs->dfs_precac_required_list,
|
||||||
pe_list) {
|
pe_list) {
|
||||||
if (tmp_precac_entry->vht80_freq ==
|
if (tmp_precac_entry->vht80_freq ==
|
||||||
ichan->ic_vhtop_ch_freq_seg1) {
|
ichan->
|
||||||
|
dfs_ch_vhtop_ch_freq_seg1) {
|
||||||
found = 1;
|
found = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -521,7 +523,7 @@ void dfs_init_precac_list(struct wlan_dfs *dfs)
|
|||||||
precac_entry = qdf_mem_malloc(
|
precac_entry = qdf_mem_malloc(
|
||||||
sizeof(*precac_entry));
|
sizeof(*precac_entry));
|
||||||
precac_entry->vht80_freq =
|
precac_entry->vht80_freq =
|
||||||
ichan->ic_vhtop_ch_freq_seg1;
|
ichan->dfs_ch_vhtop_ch_freq_seg1;
|
||||||
precac_entry->dfs = dfs;
|
precac_entry->dfs = dfs;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -631,7 +633,7 @@ void dfs_cancel_precac_timer(struct wlan_dfs *dfs)
|
|||||||
void dfs_start_precac_timer(struct wlan_dfs *dfs, uint8_t precac_chan)
|
void dfs_start_precac_timer(struct wlan_dfs *dfs, uint8_t precac_chan)
|
||||||
{
|
{
|
||||||
struct dfs_ieee80211_channel *ichan, lc;
|
struct dfs_ieee80211_channel *ichan, lc;
|
||||||
uint8_t first_primary_ic_ieee;
|
uint8_t first_primary_dfs_ch_ieee;
|
||||||
int primary_cac_timeout;
|
int primary_cac_timeout;
|
||||||
int secondary_cac_timeout;
|
int secondary_cac_timeout;
|
||||||
int precac_timeout;
|
int precac_timeout;
|
||||||
@@ -643,29 +645,30 @@ void dfs_start_precac_timer(struct wlan_dfs *dfs, uint8_t precac_chan)
|
|||||||
* Get the first primary ieee chan in the HT80 band and find the channel
|
* Get the first primary ieee chan in the HT80 band and find the channel
|
||||||
* pointer.
|
* pointer.
|
||||||
*/
|
*/
|
||||||
first_primary_ic_ieee = precac_chan - VHT80_IEEE_FREQ_OFFSET;
|
first_primary_dfs_ch_ieee = precac_chan - VHT80_IEEE_FREQ_OFFSET;
|
||||||
|
|
||||||
primary_cac_timeout = dfs_mlme_get_cac_timeout(dfs->dfs_pdev_obj,
|
primary_cac_timeout = dfs_mlme_get_cac_timeout(dfs->dfs_pdev_obj,
|
||||||
dfs->dfs_curchan->ic_freq,
|
dfs->dfs_curchan->dfs_ch_freq,
|
||||||
dfs->dfs_curchan->ic_vhtop_ch_freq_seg2,
|
dfs->dfs_curchan->dfs_ch_vhtop_ch_freq_seg2,
|
||||||
dfs->dfs_curchan->ic_flags);
|
dfs->dfs_curchan->dfs_ch_flags);
|
||||||
|
|
||||||
ichan = &lc;
|
ichan = &lc;
|
||||||
dfs_mlme_find_dot11_channel(dfs->dfs_pdev_obj, first_primary_ic_ieee, 0,
|
dfs_mlme_find_dot11_channel(dfs->dfs_pdev_obj,
|
||||||
|
first_primary_dfs_ch_ieee, 0,
|
||||||
IEEE80211_MODE_11AC_VHT80,
|
IEEE80211_MODE_11AC_VHT80,
|
||||||
&(ichan->ic_freq),
|
&(ichan->dfs_ch_freq),
|
||||||
&(ichan->ic_flags),
|
&(ichan->dfs_ch_flags),
|
||||||
&(ichan->ic_flagext),
|
&(ichan->dfs_ch_flagext),
|
||||||
&(ichan->ic_ieee),
|
&(ichan->dfs_ch_ieee),
|
||||||
&(ichan->ic_vhtop_ch_freq_seg1),
|
&(ichan->dfs_ch_vhtop_ch_freq_seg1),
|
||||||
&(ichan->ic_vhtop_ch_freq_seg2));
|
&(ichan->dfs_ch_vhtop_ch_freq_seg2));
|
||||||
|
|
||||||
secondary_cac_timeout = (dfs->dfs_precac_timeout_override != -1) ?
|
secondary_cac_timeout = (dfs->dfs_precac_timeout_override != -1) ?
|
||||||
dfs->dfs_precac_timeout_override :
|
dfs->dfs_precac_timeout_override :
|
||||||
dfs_mlme_get_cac_timeout(dfs->dfs_pdev_obj,
|
dfs_mlme_get_cac_timeout(dfs->dfs_pdev_obj,
|
||||||
ichan->ic_freq,
|
ichan->dfs_ch_freq,
|
||||||
ichan->ic_vhtop_ch_freq_seg2,
|
ichan->dfs_ch_vhtop_ch_freq_seg2,
|
||||||
ichan->ic_flags);
|
ichan->dfs_ch_flags);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* EXTRA time is needed so that if CAC and PreCAC is running
|
* EXTRA time is needed so that if CAC and PreCAC is running
|
||||||
|
@@ -76,25 +76,25 @@ void dfs_mlme_proc_cac(struct wlan_objmgr_pdev *pdev, uint32_t vdev_id);
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* dfs_mlme_deliver_event_up_afrer_cac() - Send a CAC timeout, VAP up event to
|
* dfs_mlme_deliver_event_up_afrer_cac() - Send a CAC timeout, VAP up event to
|
||||||
* userspace.
|
* userspace.
|
||||||
* @pdev: Pointer to DFS pdev object.
|
* @pdev: Pointer to DFS pdev object.
|
||||||
*/
|
*/
|
||||||
void dfs_mlme_deliver_event_up_afrer_cac(struct wlan_objmgr_pdev *pdev);
|
void dfs_mlme_deliver_event_up_afrer_cac(struct wlan_objmgr_pdev *pdev);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dfs_mlme_get_ic_nchans() - Get number of channels in the channel list
|
* dfs_mlme_get_dfs_ch_nchans() - Get number of channels in the channel list
|
||||||
* @pdev: Pointer to DFS pdev object.
|
* @pdev: Pointer to DFS pdev object.
|
||||||
* @nchans: Pointer to save the channel number.
|
* @nchans: Pointer to save the channel number.
|
||||||
*/
|
*/
|
||||||
void dfs_mlme_get_ic_nchans(struct wlan_objmgr_pdev *pdev, int *nchans);
|
void dfs_mlme_get_dfs_ch_nchans(struct wlan_objmgr_pdev *pdev, int *nchans);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dfs_mlme_get_ic_no_weather_radar_chan() - Checks is the channel is weather
|
* dfs_mlme_get_dfs_ch_no_weather_radar_chan() - Checks is the channel is
|
||||||
* radar channel.
|
* weather radar channel.
|
||||||
* @pdev: Pointer to DFS pdev object.
|
* @pdev: Pointer to DFS pdev object.
|
||||||
* @no_wradar: Pointer to save weather radar filter value.
|
* @no_wradar: Pointer to save weather radar filter value.
|
||||||
*/
|
*/
|
||||||
void dfs_mlme_get_ic_no_weather_radar_chan(struct wlan_objmgr_pdev *pdev,
|
void dfs_mlme_get_dfs_ch_no_weather_radar_chan(struct wlan_objmgr_pdev *pdev,
|
||||||
uint8_t *no_wradar);
|
uint8_t *no_wradar);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -120,21 +120,21 @@ void dfs_mlme_find_any_valid_channel(struct wlan_objmgr_pdev *pdev,
|
|||||||
/**
|
/**
|
||||||
* dfs_mlme_get_extchan() - Get extension channel.
|
* dfs_mlme_get_extchan() - Get extension channel.
|
||||||
* @pdev: Pointer to DFS pdev object.
|
* @pdev: Pointer to DFS pdev object.
|
||||||
* @ic_freq: Frequency in Mhz.
|
* @dfs_ch_freq: Frequency in Mhz.
|
||||||
* @ic_flags: Channel flags.
|
* @dfs_ch_flags: Channel flags.
|
||||||
* @ic_flagext: Extended channel flags.
|
* @dfs_ch_flagext: Extended channel flags.
|
||||||
* @ic_ieee: IEEE channel number.
|
* @dfs_ch_ieee: IEEE channel number.
|
||||||
* @ic_vhtop_ch_freq_seg1: Channel Center frequency.
|
* @dfs_ch_vhtop_ch_freq_seg1: Channel Center frequency.
|
||||||
* @ic_vhtop_ch_freq_seg2: Channel Center frequency applicable for 80+80MHz
|
* @dfs_ch_vhtop_ch_freq_seg2: Channel Center frequency applicable for 80+80MHz
|
||||||
* mode of operation.
|
* mode of operation.
|
||||||
*/
|
*/
|
||||||
QDF_STATUS dfs_mlme_get_extchan(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS dfs_mlme_get_extchan(struct wlan_objmgr_pdev *pdev,
|
||||||
uint16_t *ic_freq,
|
uint16_t *dfs_ch_freq,
|
||||||
uint32_t *ic_flags,
|
uint32_t *dfs_ch_flags,
|
||||||
uint16_t *ic_flagext,
|
uint16_t *dfs_ch_flagext,
|
||||||
uint8_t *ic_ieee,
|
uint8_t *dfs_ch_ieee,
|
||||||
uint8_t *ic_vhtop_ch_freq_seg1,
|
uint8_t *dfs_ch_vhtop_ch_freq_seg1,
|
||||||
uint8_t *ic_vhtop_ch_freq_seg2);
|
uint8_t *dfs_ch_vhtop_ch_freq_seg2);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dfs_mlme_set_no_chans_available() - Set no_chans_available flag.
|
* dfs_mlme_set_no_chans_available() - Set no_chans_available flag.
|
||||||
@@ -160,51 +160,51 @@ int dfs_mlme_ieee2mhz(struct wlan_objmgr_pdev *pdev,
|
|||||||
* @ieee: Channel number.
|
* @ieee: Channel number.
|
||||||
* @des_cfreq2: cfreq2
|
* @des_cfreq2: cfreq2
|
||||||
* @mode: Phymode
|
* @mode: Phymode
|
||||||
* @ic_freq: Frequency in Mhz.
|
* @dfs_ch_freq: Frequency in Mhz.
|
||||||
* @ic_flags: Channel flags.
|
* @dfs_ch_flags: Channel flags.
|
||||||
* @ic_flagext: Extended channel flags.
|
* @dfs_ch_flagext: Extended channel flags.
|
||||||
* @ic_ieee: IEEE channel number.
|
* @dfs_ch_ieee: IEEE channel number.
|
||||||
* @ic_vhtop_ch_freq_seg1: Channel Center frequency.
|
* @dfs_ch_vhtop_ch_freq_seg1: Channel Center frequency.
|
||||||
* @ic_vhtop_ch_freq_seg2: Channel Center frequency applicable for 80+80MHz
|
* @dfs_ch_vhtop_ch_freq_seg2: Channel Center frequency applicable for 80+80MHz
|
||||||
* mode of operation.
|
* mode of operation.
|
||||||
*/
|
*/
|
||||||
void dfs_mlme_find_dot11_channel(struct wlan_objmgr_pdev *pdev,
|
void dfs_mlme_find_dot11_channel(struct wlan_objmgr_pdev *pdev,
|
||||||
uint8_t ieee,
|
uint8_t ieee,
|
||||||
uint8_t des_cfreq2,
|
uint8_t des_cfreq2,
|
||||||
int mode,
|
int mode,
|
||||||
uint16_t *ic_freq,
|
uint16_t *dfs_ch_freq,
|
||||||
uint32_t *ic_flags,
|
uint32_t *dfs_ch_flags,
|
||||||
uint16_t *ic_flagext,
|
uint16_t *dfs_ch_flagext,
|
||||||
uint8_t *ic_ieee,
|
uint8_t *dfs_ch_ieee,
|
||||||
uint8_t *ic_vhtop_ch_freq_seg1,
|
uint8_t *dfs_ch_vhtop_ch_freq_seg1,
|
||||||
uint8_t *ic_vhtop_ch_freq_seg2);
|
uint8_t *dfs_ch_vhtop_ch_freq_seg2);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dfs_mlme_get_ic_channels() - Get channel from channel list.
|
* dfs_mlme_get_dfs_ch_channels() - Get channel from channel list.
|
||||||
* @pdev: Pointer to DFS pdev object.
|
* @pdev: Pointer to DFS pdev object.
|
||||||
* @ic_freq: Frequency in Mhz.
|
* @dfs_ch_freq: Frequency in Mhz.
|
||||||
* @ic_flags: Channel flags.
|
* @dfs_ch_flags: Channel flags.
|
||||||
* @ic_flagext: Extended channel flags.
|
* @dfs_ch_flagext: Extended channel flags.
|
||||||
* @ic_ieee: IEEE channel number.
|
* @dfs_ch_ieee: IEEE channel number.
|
||||||
* @ic_vhtop_ch_freq_seg1: Channel Center frequency.
|
* @dfs_ch_vhtop_ch_freq_seg1: Channel Center frequency.
|
||||||
* @ic_vhtop_ch_freq_seg2: Channel Center frequency applicable for 80+80MHz
|
* @dfs_ch_vhtop_ch_freq_seg2: Channel Center frequency applicable for 80+80MHz
|
||||||
* mode of operation.
|
* mode of operation.
|
||||||
* @index: Index into channel list.
|
* @index: Index into channel list.
|
||||||
*/
|
*/
|
||||||
void dfs_mlme_get_ic_channels(struct wlan_objmgr_pdev *pdev,
|
void dfs_mlme_get_dfs_ch_channels(struct wlan_objmgr_pdev *pdev,
|
||||||
uint16_t *ic_freq,
|
uint16_t *dfs_ch_freq,
|
||||||
uint32_t *ic_flags,
|
uint32_t *dfs_ch_flags,
|
||||||
uint16_t *ic_flagext,
|
uint16_t *dfs_ch_flagext,
|
||||||
uint8_t *ic_ieee,
|
uint8_t *dfs_ch_ieee,
|
||||||
uint8_t *ic_vhtop_ch_freq_seg1,
|
uint8_t *dfs_ch_vhtop_ch_freq_seg1,
|
||||||
uint8_t *ic_vhtop_ch_freq_seg2,
|
uint8_t *dfs_ch_vhtop_ch_freq_seg2,
|
||||||
int index);
|
int index);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dfs_mlme_ic_flags_ext() - Get extension channel flags.
|
* dfs_mlme_dfs_ch_flags_ext() - Get extension channel flags.
|
||||||
* @pdev: Pointer to DFS pdev object.
|
* @pdev: Pointer to DFS pdev object.
|
||||||
*/
|
*/
|
||||||
uint32_t dfs_mlme_ic_flags_ext(struct wlan_objmgr_pdev *pdev);
|
uint32_t dfs_mlme_dfs_ch_flags_ext(struct wlan_objmgr_pdev *pdev);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dfs_mlme_channel_change_by_precac() - Channel change by PreCAC.
|
* dfs_mlme_channel_change_by_precac() - Channel change by PreCAC.
|
||||||
@@ -231,14 +231,14 @@ void dfs_mlme_clist_update(struct wlan_objmgr_pdev *pdev,
|
|||||||
/**
|
/**
|
||||||
* dfs_mlme_get_cac_timeout() - Get cac_timeout.
|
* dfs_mlme_get_cac_timeout() - Get cac_timeout.
|
||||||
* @pdev: Pointer to DFS pdev object.
|
* @pdev: Pointer to DFS pdev object.
|
||||||
* @ic_freq: Frequency in Mhz.
|
* @dfs_ch_freq: Frequency in Mhz.
|
||||||
* @ic_vhtop_ch_freq_seg2: Channel Center frequency applicable for 80+80MHz
|
* @dfs_ch_vhtop_ch_freq_seg2: Channel Center frequency applicable for 80+80MHz
|
||||||
* mode of operation.
|
* mode of operation.
|
||||||
* @ic_flags: Channel flags.
|
* @dfs_ch_flags: Channel flags.
|
||||||
*/
|
*/
|
||||||
int dfs_mlme_get_cac_timeout(struct wlan_objmgr_pdev *pdev,
|
int dfs_mlme_get_cac_timeout(struct wlan_objmgr_pdev *pdev,
|
||||||
uint16_t ic_freq,
|
uint16_t dfs_ch_freq,
|
||||||
uint8_t ic_vhtop_ch_freq_seg2,
|
uint8_t dfs_ch_vhtop_ch_freq_seg2,
|
||||||
uint32_t ic_flags);
|
uint32_t dfs_ch_flags);
|
||||||
|
|
||||||
#endif /* _WLAN_DFS_MLME_API_H_ */
|
#endif /* _WLAN_DFS_MLME_API_H_ */
|
||||||
|
@@ -34,20 +34,20 @@ extern struct dfs_to_mlme global_dfs_to_mlme;
|
|||||||
* tgt_dfs_set_current_channel() - Fill dfs channel structure from
|
* tgt_dfs_set_current_channel() - Fill dfs channel structure from
|
||||||
* dfs_ieee80211_channel structure.
|
* dfs_ieee80211_channel structure.
|
||||||
* @pdev: Pointer to DFS pdev object.
|
* @pdev: Pointer to DFS pdev object.
|
||||||
* @ic_freq: Frequency in Mhz.
|
* @dfs_ch_freq: Frequency in Mhz.
|
||||||
* @ic_flags: Channel flags.
|
* @dfs_ch_flags: Channel flags.
|
||||||
* @ic_flagext: Extended channel flags.
|
* @dfs_ch_flagext: Extended channel flags.
|
||||||
* @ic_ieee: IEEE channel number.
|
* @dfs_ch_ieee: IEEE channel number.
|
||||||
* @ic_vhtop_ch_freq_seg1: Channel Center frequency1.
|
* @dfs_ch_vhtop_ch_freq_seg1: Channel Center frequency1.
|
||||||
* @ic_vhtop_ch_freq_seg2: Channel Center frequency2.
|
* @dfs_ch_vhtop_ch_freq_seg2: Channel Center frequency2.
|
||||||
*/
|
*/
|
||||||
QDF_STATUS tgt_dfs_set_current_channel(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS tgt_dfs_set_current_channel(struct wlan_objmgr_pdev *pdev,
|
||||||
uint16_t ic_freq,
|
uint16_t dfs_ch_freq,
|
||||||
uint32_t ic_flags,
|
uint32_t dfs_ch_flags,
|
||||||
uint16_t ic_flagext,
|
uint16_t dfs_ch_flagext,
|
||||||
uint8_t ic_ieee,
|
uint8_t dfs_ch_ieee,
|
||||||
uint8_t ic_vhtop_ch_freq_seg1,
|
uint8_t dfs_ch_vhtop_ch_freq_seg1,
|
||||||
uint8_t ic_vhtop_ch_freq_seg2);
|
uint8_t dfs_ch_vhtop_ch_freq_seg2);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* tgt_dfs_reset() - DFS reset
|
* tgt_dfs_reset() - DFS reset
|
||||||
|
@@ -40,18 +40,18 @@
|
|||||||
* @mlme_proc_cac: Process the CAC completion event.
|
* @mlme_proc_cac: Process the CAC completion event.
|
||||||
* @mlme_deliver_event_up_afrer_cac: Send a CAC timeout, VAP up event to user
|
* @mlme_deliver_event_up_afrer_cac: Send a CAC timeout, VAP up event to user
|
||||||
* space
|
* space
|
||||||
* @mlme_get_ic_nchans: Get number of channels in the channel
|
* @mlme_get_dfs_ch_nchans: Get number of channels in the channel
|
||||||
* list.
|
* list.
|
||||||
* @mlme_get_ic_no_weather_radar_chan: Checks is the channel is weather radar
|
* @mlme_get_dfs_ch_no_weather_radar_chan: Checks is the channel is weather
|
||||||
* channel.
|
* radar channel.
|
||||||
* @mlme_find_alternate_mode_channel: Finds the channel.
|
* @mlme_find_alternate_mode_channel: Finds the channel.
|
||||||
* @mlme_find_any_valid_channel: Find the valid channeil.
|
* @mlme_find_any_valid_channel: Find the valid channeil.
|
||||||
* @mlme_get_extchan: Gets the extension channel.
|
* @mlme_get_extchan: Gets the extension channel.
|
||||||
* @mlme_set_no_chans_available: Sets no_chans_available flag.
|
* @mlme_set_no_chans_available: Sets no_chans_available flag.
|
||||||
* @mlme_ieee2mhz: Gets Channel freq from ieee number.
|
* @mlme_ieee2mhz: Gets Channel freq from ieee number.
|
||||||
* @mlme_find_dot11_channel: Find dot11 channel.
|
* @mlme_find_dot11_channel: Find dot11 channel.
|
||||||
* @mlme_get_ic_channels: Get the channel list.
|
* @mlme_get_dfs_ch_channels: Get the channel list.
|
||||||
* @mlme_ic_flags_ext: Gets channel extension flag.
|
* @mlme_dfs_ch_flags_ext: Gets channel extension flag.
|
||||||
* @mlme_channel_change_by_precac: Channel change triggered by PreCAC.
|
* @mlme_channel_change_by_precac: Channel change triggered by PreCAC.
|
||||||
* @mlme_nol_timeout_notification: NOL timeout notification.
|
* @mlme_nol_timeout_notification: NOL timeout notification.
|
||||||
* @mlme_clist_update: Updates the channel list.
|
* @mlme_clist_update: Updates the channel list.
|
||||||
@@ -82,9 +82,9 @@ struct dfs_to_mlme {
|
|||||||
QDF_STATUS (*mlme_proc_cac)(struct wlan_objmgr_pdev *pdev);
|
QDF_STATUS (*mlme_proc_cac)(struct wlan_objmgr_pdev *pdev);
|
||||||
QDF_STATUS (*mlme_deliver_event_up_afrer_cac)(
|
QDF_STATUS (*mlme_deliver_event_up_afrer_cac)(
|
||||||
struct wlan_objmgr_pdev *pdev);
|
struct wlan_objmgr_pdev *pdev);
|
||||||
QDF_STATUS (*mlme_get_ic_nchans)(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS (*mlme_get_dfs_ch_nchans)(struct wlan_objmgr_pdev *pdev,
|
||||||
int *nchans);
|
int *nchans);
|
||||||
QDF_STATUS (*mlme_get_ic_no_weather_radar_chan)(
|
QDF_STATUS (*mlme_get_dfs_ch_no_weather_radar_chan)(
|
||||||
struct wlan_objmgr_pdev *pdev,
|
struct wlan_objmgr_pdev *pdev,
|
||||||
uint8_t *no_wradar);
|
uint8_t *no_wradar);
|
||||||
QDF_STATUS (*mlme_find_alternate_mode_channel)(
|
QDF_STATUS (*mlme_find_alternate_mode_channel)(
|
||||||
@@ -97,12 +97,12 @@ struct dfs_to_mlme {
|
|||||||
uint32_t chan_mode,
|
uint32_t chan_mode,
|
||||||
int *ret_val);
|
int *ret_val);
|
||||||
QDF_STATUS (*mlme_get_extchan)(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS (*mlme_get_extchan)(struct wlan_objmgr_pdev *pdev,
|
||||||
uint16_t *ic_freq,
|
uint16_t *dfs_ch_freq,
|
||||||
uint32_t *ic_flags,
|
uint32_t *dfs_ch_flags,
|
||||||
uint16_t *ic_flagext,
|
uint16_t *dfs_ch_flagext,
|
||||||
uint8_t *ic_ieee,
|
uint8_t *dfs_ch_ieee,
|
||||||
uint8_t *ic_vhtop_ch_freq_seg1,
|
uint8_t *dfs_ch_vhtop_ch_freq_seg1,
|
||||||
uint8_t *ic_vhtop_ch_freq_seg2);
|
uint8_t *dfs_ch_vhtop_ch_freq_seg2);
|
||||||
QDF_STATUS (*mlme_set_no_chans_available)(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS (*mlme_set_no_chans_available)(struct wlan_objmgr_pdev *pdev,
|
||||||
int val);
|
int val);
|
||||||
QDF_STATUS (*mlme_ieee2mhz)(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS (*mlme_ieee2mhz)(struct wlan_objmgr_pdev *pdev,
|
||||||
@@ -113,22 +113,22 @@ struct dfs_to_mlme {
|
|||||||
uint8_t ieee,
|
uint8_t ieee,
|
||||||
uint8_t des_cfreq2,
|
uint8_t des_cfreq2,
|
||||||
int mode,
|
int mode,
|
||||||
uint16_t *ic_freq,
|
uint16_t *dfs_ch_freq,
|
||||||
uint32_t *ic_flags,
|
uint32_t *dfs_ch_flags,
|
||||||
uint16_t *ic_flagext,
|
uint16_t *dfs_ch_flagext,
|
||||||
uint8_t *ic_ieee,
|
uint8_t *dfs_ch_ieee,
|
||||||
uint8_t *ic_vhtop_ch_freq_seg1,
|
uint8_t *dfs_ch_vhtop_ch_freq_seg1,
|
||||||
uint8_t *ic_vhtop_ch_freq_seg2);
|
uint8_t *dfs_ch_vhtop_ch_freq_seg2);
|
||||||
|
|
||||||
QDF_STATUS (*mlme_get_ic_channels)(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS (*mlme_get_dfs_ch_channels)(struct wlan_objmgr_pdev *pdev,
|
||||||
uint16_t *ic_freq,
|
uint16_t *dfs_ch_freq,
|
||||||
uint32_t *ic_flags,
|
uint32_t *dfs_ch_flags,
|
||||||
uint16_t *ic_flagext,
|
uint16_t *dfs_ch_flagext,
|
||||||
uint8_t *ic_ieee,
|
uint8_t *dfs_ch_ieee,
|
||||||
uint8_t *ic_vhtop_ch_freq_seg1,
|
uint8_t *dfs_ch_vhtop_ch_freq_seg1,
|
||||||
uint8_t *ic_vhtop_ch_freq_seg2,
|
uint8_t *dfs_ch_vhtop_ch_freq_seg2,
|
||||||
int index);
|
int index);
|
||||||
QDF_STATUS (*mlme_ic_flags_ext)(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS (*mlme_dfs_ch_flags_ext)(struct wlan_objmgr_pdev *pdev,
|
||||||
uint32_t *flag_ext);
|
uint32_t *flag_ext);
|
||||||
QDF_STATUS (*mlme_channel_change_by_precac)(
|
QDF_STATUS (*mlme_channel_change_by_precac)(
|
||||||
struct wlan_objmgr_pdev *pdev);
|
struct wlan_objmgr_pdev *pdev);
|
||||||
@@ -138,9 +138,9 @@ struct dfs_to_mlme {
|
|||||||
void *nollist,
|
void *nollist,
|
||||||
int nentries);
|
int nentries);
|
||||||
QDF_STATUS (*mlme_get_cac_timeout)(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS (*mlme_get_cac_timeout)(struct wlan_objmgr_pdev *pdev,
|
||||||
uint16_t ic_freq,
|
uint16_t dfs_ch_freq,
|
||||||
uint8_t c_vhtop_ch_freq_seg2,
|
uint8_t c_vhtop_ch_freq_seg2,
|
||||||
uint32_t ic_flags,
|
uint32_t dfs_ch_flags,
|
||||||
int *cac_timeout);
|
int *cac_timeout);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -64,9 +64,9 @@ void register_dfs_callbacks(void)
|
|||||||
tmp_dfs_to_mlme->mlme_proc_cac = mlme_dfs_proc_cac;
|
tmp_dfs_to_mlme->mlme_proc_cac = mlme_dfs_proc_cac;
|
||||||
tmp_dfs_to_mlme->mlme_deliver_event_up_afrer_cac =
|
tmp_dfs_to_mlme->mlme_deliver_event_up_afrer_cac =
|
||||||
mlme_dfs_deliver_event_up_afrer_cac;
|
mlme_dfs_deliver_event_up_afrer_cac;
|
||||||
tmp_dfs_to_mlme->mlme_get_ic_nchans = mlme_dfs_get_ic_nchans;
|
tmp_dfs_to_mlme->mlme_get_dfs_ch_nchans = mlme_dfs_get_dfs_ch_nchans;
|
||||||
tmp_dfs_to_mlme->mlme_get_ic_no_weather_radar_chan =
|
tmp_dfs_to_mlme->mlme_get_dfs_ch_no_weather_radar_chan =
|
||||||
mlme_dfs_get_ic_no_weather_radar_chan;
|
mlme_dfs_get_dfs_ch_no_weather_radar_chan;
|
||||||
tmp_dfs_to_mlme->mlme_find_alternate_mode_channel =
|
tmp_dfs_to_mlme->mlme_find_alternate_mode_channel =
|
||||||
mlme_dfs_find_alternate_mode_channel;
|
mlme_dfs_find_alternate_mode_channel;
|
||||||
tmp_dfs_to_mlme->mlme_find_any_valid_channel =
|
tmp_dfs_to_mlme->mlme_find_any_valid_channel =
|
||||||
@@ -76,8 +76,9 @@ void register_dfs_callbacks(void)
|
|||||||
mlme_dfs_set_no_chans_available;
|
mlme_dfs_set_no_chans_available;
|
||||||
tmp_dfs_to_mlme->mlme_ieee2mhz = mlme_dfs_ieee2mhz;
|
tmp_dfs_to_mlme->mlme_ieee2mhz = mlme_dfs_ieee2mhz;
|
||||||
tmp_dfs_to_mlme->mlme_find_dot11_channel = mlme_dfs_find_dot11_channel;
|
tmp_dfs_to_mlme->mlme_find_dot11_channel = mlme_dfs_find_dot11_channel;
|
||||||
tmp_dfs_to_mlme->mlme_get_ic_channels = mlme_dfs_get_ic_channels;
|
tmp_dfs_to_mlme->mlme_get_dfs_ch_channels =
|
||||||
tmp_dfs_to_mlme->mlme_ic_flags_ext = mlme_dfs_ic_flags_ext;
|
mlme_dfs_get_dfs_ch_channels;
|
||||||
|
tmp_dfs_to_mlme->mlme_dfs_ch_flags_ext = mlme_dfs_dfs_ch_flags_ext;
|
||||||
tmp_dfs_to_mlme->mlme_channel_change_by_precac =
|
tmp_dfs_to_mlme->mlme_channel_change_by_precac =
|
||||||
mlme_dfs_channel_change_by_precac;
|
mlme_dfs_channel_change_by_precac;
|
||||||
tmp_dfs_to_mlme->mlme_nol_timeout_notification =
|
tmp_dfs_to_mlme->mlme_nol_timeout_notification =
|
||||||
|
@@ -130,19 +130,19 @@ void dfs_mlme_deliver_event_up_afrer_cac(struct wlan_objmgr_pdev *pdev)
|
|||||||
pdev);
|
pdev);
|
||||||
}
|
}
|
||||||
|
|
||||||
void dfs_mlme_get_ic_nchans(struct wlan_objmgr_pdev *pdev,
|
void dfs_mlme_get_dfs_ch_nchans(struct wlan_objmgr_pdev *pdev,
|
||||||
int *nchans)
|
int *nchans)
|
||||||
{
|
{
|
||||||
if (global_dfs_to_mlme.mlme_get_ic_nchans != NULL)
|
if (global_dfs_to_mlme.mlme_get_dfs_ch_nchans != NULL)
|
||||||
global_dfs_to_mlme.mlme_get_ic_nchans(pdev,
|
global_dfs_to_mlme.mlme_get_dfs_ch_nchans(pdev,
|
||||||
nchans);
|
nchans);
|
||||||
}
|
}
|
||||||
|
|
||||||
void dfs_mlme_get_ic_no_weather_radar_chan(struct wlan_objmgr_pdev *pdev,
|
void dfs_mlme_get_dfs_ch_no_weather_radar_chan(struct wlan_objmgr_pdev *pdev,
|
||||||
uint8_t *no_wradar)
|
uint8_t *no_wradar)
|
||||||
{
|
{
|
||||||
if (global_dfs_to_mlme.mlme_get_ic_no_weather_radar_chan != NULL)
|
if (global_dfs_to_mlme.mlme_get_dfs_ch_no_weather_radar_chan != NULL)
|
||||||
global_dfs_to_mlme.mlme_get_ic_no_weather_radar_chan(
|
global_dfs_to_mlme.mlme_get_dfs_ch_no_weather_radar_chan(
|
||||||
pdev,
|
pdev,
|
||||||
no_wradar);
|
no_wradar);
|
||||||
}
|
}
|
||||||
@@ -173,21 +173,21 @@ void dfs_mlme_find_any_valid_channel(struct wlan_objmgr_pdev *pdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS dfs_mlme_get_extchan(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS dfs_mlme_get_extchan(struct wlan_objmgr_pdev *pdev,
|
||||||
uint16_t *ic_freq,
|
uint16_t *dfs_ch_freq,
|
||||||
uint32_t *ic_flags,
|
uint32_t *dfs_ch_flags,
|
||||||
uint16_t *ic_flagext,
|
uint16_t *dfs_ch_flagext,
|
||||||
uint8_t *ic_ieee,
|
uint8_t *dfs_ch_ieee,
|
||||||
uint8_t *ic_vhtop_ch_freq_seg1,
|
uint8_t *dfs_ch_vhtop_ch_freq_seg1,
|
||||||
uint8_t *ic_vhtop_ch_freq_seg2)
|
uint8_t *dfs_ch_vhtop_ch_freq_seg2)
|
||||||
{
|
{
|
||||||
if (global_dfs_to_mlme.mlme_get_extchan != NULL)
|
if (global_dfs_to_mlme.mlme_get_extchan != NULL)
|
||||||
return global_dfs_to_mlme.mlme_get_extchan(pdev,
|
return global_dfs_to_mlme.mlme_get_extchan(pdev,
|
||||||
ic_freq,
|
dfs_ch_freq,
|
||||||
ic_flags,
|
dfs_ch_flags,
|
||||||
ic_flagext,
|
dfs_ch_flagext,
|
||||||
ic_ieee,
|
dfs_ch_ieee,
|
||||||
ic_vhtop_ch_freq_seg1,
|
dfs_ch_vhtop_ch_freq_seg1,
|
||||||
ic_vhtop_ch_freq_seg2);
|
dfs_ch_vhtop_ch_freq_seg2);
|
||||||
|
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
@@ -218,52 +218,52 @@ void dfs_mlme_find_dot11_channel(struct wlan_objmgr_pdev *pdev,
|
|||||||
uint8_t ieee,
|
uint8_t ieee,
|
||||||
uint8_t des_cfreq2,
|
uint8_t des_cfreq2,
|
||||||
int mode,
|
int mode,
|
||||||
uint16_t *ic_freq,
|
uint16_t *dfs_ch_freq,
|
||||||
uint32_t *ic_flags,
|
uint32_t *dfs_ch_flags,
|
||||||
uint16_t *ic_flagext,
|
uint16_t *dfs_ch_flagext,
|
||||||
uint8_t *ic_ieee,
|
uint8_t *dfs_ch_ieee,
|
||||||
uint8_t *ic_vhtop_ch_freq_seg1,
|
uint8_t *dfs_ch_vhtop_ch_freq_seg1,
|
||||||
uint8_t *ic_vhtop_ch_freq_seg2)
|
uint8_t *dfs_ch_vhtop_ch_freq_seg2)
|
||||||
{
|
{
|
||||||
if (global_dfs_to_mlme.mlme_find_dot11_channel != NULL)
|
if (global_dfs_to_mlme.mlme_find_dot11_channel != NULL)
|
||||||
global_dfs_to_mlme.mlme_find_dot11_channel(pdev,
|
global_dfs_to_mlme.mlme_find_dot11_channel(pdev,
|
||||||
ieee,
|
ieee,
|
||||||
des_cfreq2,
|
des_cfreq2,
|
||||||
mode,
|
mode,
|
||||||
ic_freq,
|
dfs_ch_freq,
|
||||||
ic_flags,
|
dfs_ch_flags,
|
||||||
ic_flagext,
|
dfs_ch_flagext,
|
||||||
ic_ieee,
|
dfs_ch_ieee,
|
||||||
ic_vhtop_ch_freq_seg1,
|
dfs_ch_vhtop_ch_freq_seg1,
|
||||||
ic_vhtop_ch_freq_seg2);
|
dfs_ch_vhtop_ch_freq_seg2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void dfs_mlme_get_ic_channels(struct wlan_objmgr_pdev *pdev,
|
void dfs_mlme_get_dfs_ch_channels(struct wlan_objmgr_pdev *pdev,
|
||||||
uint16_t *ic_freq,
|
uint16_t *dfs_ch_freq,
|
||||||
uint32_t *ic_flags,
|
uint32_t *dfs_ch_flags,
|
||||||
uint16_t *ic_flagext,
|
uint16_t *dfs_ch_flagext,
|
||||||
uint8_t *ic_ieee,
|
uint8_t *dfs_ch_ieee,
|
||||||
uint8_t *ic_vhtop_ch_freq_seg1,
|
uint8_t *dfs_ch_vhtop_ch_freq_seg1,
|
||||||
uint8_t *ic_vhtop_ch_freq_seg2,
|
uint8_t *dfs_ch_vhtop_ch_freq_seg2,
|
||||||
int index)
|
int index)
|
||||||
{
|
{
|
||||||
if (global_dfs_to_mlme.mlme_get_ic_channels != NULL)
|
if (global_dfs_to_mlme.mlme_get_dfs_ch_channels != NULL)
|
||||||
global_dfs_to_mlme.mlme_get_ic_channels(pdev,
|
global_dfs_to_mlme.mlme_get_dfs_ch_channels(pdev,
|
||||||
ic_freq,
|
dfs_ch_freq,
|
||||||
ic_flags,
|
dfs_ch_flags,
|
||||||
ic_flagext,
|
dfs_ch_flagext,
|
||||||
ic_ieee,
|
dfs_ch_ieee,
|
||||||
ic_vhtop_ch_freq_seg1,
|
dfs_ch_vhtop_ch_freq_seg1,
|
||||||
ic_vhtop_ch_freq_seg2,
|
dfs_ch_vhtop_ch_freq_seg2,
|
||||||
index);
|
index);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t dfs_mlme_ic_flags_ext(struct wlan_objmgr_pdev *pdev)
|
uint32_t dfs_mlme_dfs_ch_flags_ext(struct wlan_objmgr_pdev *pdev)
|
||||||
{
|
{
|
||||||
uint32_t flag_ext = 0;
|
uint32_t flag_ext = 0;
|
||||||
|
|
||||||
if (global_dfs_to_mlme.mlme_ic_flags_ext != NULL)
|
if (global_dfs_to_mlme.mlme_dfs_ch_flags_ext != NULL)
|
||||||
global_dfs_to_mlme.mlme_ic_flags_ext(pdev,
|
global_dfs_to_mlme.mlme_dfs_ch_flags_ext(pdev,
|
||||||
&flag_ext);
|
&flag_ext);
|
||||||
|
|
||||||
return flag_ext;
|
return flag_ext;
|
||||||
@@ -294,17 +294,17 @@ void dfs_mlme_clist_update(struct wlan_objmgr_pdev *pdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
int dfs_mlme_get_cac_timeout(struct wlan_objmgr_pdev *pdev,
|
int dfs_mlme_get_cac_timeout(struct wlan_objmgr_pdev *pdev,
|
||||||
uint16_t ic_freq,
|
uint16_t dfs_ch_freq,
|
||||||
uint8_t ic_vhtop_ch_freq_seg2,
|
uint8_t dfs_ch_vhtop_ch_freq_seg2,
|
||||||
uint32_t ic_flags)
|
uint32_t dfs_ch_flags)
|
||||||
{
|
{
|
||||||
int cac_timeout = 0;
|
int cac_timeout = 0;
|
||||||
|
|
||||||
if (global_dfs_to_mlme.mlme_get_cac_timeout != NULL)
|
if (global_dfs_to_mlme.mlme_get_cac_timeout != NULL)
|
||||||
global_dfs_to_mlme.mlme_get_cac_timeout(pdev,
|
global_dfs_to_mlme.mlme_get_cac_timeout(pdev,
|
||||||
ic_freq,
|
dfs_ch_freq,
|
||||||
ic_vhtop_ch_freq_seg2,
|
dfs_ch_vhtop_ch_freq_seg2,
|
||||||
ic_flags,
|
dfs_ch_flags,
|
||||||
&cac_timeout);
|
&cac_timeout);
|
||||||
|
|
||||||
return cac_timeout;
|
return cac_timeout;
|
||||||
|
@@ -36,12 +36,12 @@ wlan_psoc_get_dfs_txops(struct wlan_objmgr_psoc *psoc)
|
|||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS tgt_dfs_set_current_channel(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS tgt_dfs_set_current_channel(struct wlan_objmgr_pdev *pdev,
|
||||||
uint16_t ic_freq,
|
uint16_t dfs_ch_freq,
|
||||||
uint32_t ic_flags,
|
uint32_t dfs_ch_flags,
|
||||||
uint16_t ic_flagext,
|
uint16_t dfs_ch_flagext,
|
||||||
uint8_t ic_ieee,
|
uint8_t dfs_ch_ieee,
|
||||||
uint8_t ic_vhtop_ch_freq_seg1,
|
uint8_t dfs_ch_vhtop_ch_freq_seg1,
|
||||||
uint8_t ic_vhtop_ch_freq_seg2)
|
uint8_t dfs_ch_vhtop_ch_freq_seg2)
|
||||||
{
|
{
|
||||||
struct wlan_dfs *dfs;
|
struct wlan_dfs *dfs;
|
||||||
|
|
||||||
@@ -49,8 +49,13 @@ QDF_STATUS tgt_dfs_set_current_channel(struct wlan_objmgr_pdev *pdev,
|
|||||||
if (dfs == NULL)
|
if (dfs == NULL)
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
dfs_set_current_channel(dfs, ic_freq, ic_flags, ic_flagext, ic_ieee,
|
dfs_set_current_channel(dfs,
|
||||||
ic_vhtop_ch_freq_seg1, ic_vhtop_ch_freq_seg2);
|
dfs_ch_freq,
|
||||||
|
dfs_ch_flags,
|
||||||
|
dfs_ch_flagext,
|
||||||
|
dfs_ch_ieee,
|
||||||
|
dfs_ch_vhtop_ch_freq_seg1,
|
||||||
|
dfs_ch_vhtop_ch_freq_seg2);
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
@@ -253,10 +258,10 @@ QDF_STATUS tgt_dfs_process_radar_ind(struct wlan_objmgr_pdev *pdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
dfs_process_radar_found_indication(dfs, radar_found);
|
dfs_process_radar_found_indication(dfs, radar_found);
|
||||||
dfs_mlme_mark_dfs(pdev, dfs->dfs_curchan->ic_ieee,
|
dfs_mlme_mark_dfs(pdev, dfs->dfs_curchan->dfs_ch_ieee,
|
||||||
dfs->dfs_curchan->ic_freq,
|
dfs->dfs_curchan->dfs_ch_freq,
|
||||||
dfs->dfs_curchan->ic_vhtop_ch_freq_seg2,
|
dfs->dfs_curchan->dfs_ch_vhtop_ch_freq_seg2,
|
||||||
dfs->dfs_curchan->ic_flags);
|
dfs->dfs_curchan->dfs_ch_flags);
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@@ -465,8 +465,9 @@ static void utils_dfs_get_chan_list(struct wlan_objmgr_pdev *pdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < len; i++) {
|
for (i = 0; i < len; i++) {
|
||||||
chan_list[i].ic_ieee = pcl_ch[i];
|
chan_list[i].dfs_ch_ieee = pcl_ch[i];
|
||||||
chan_list[i].ic_freq = wlan_reg_chan_to_freq(pdev, pcl_ch[i]);
|
chan_list[i].dfs_ch_freq =
|
||||||
|
wlan_reg_chan_to_freq(pdev, pcl_ch[i]);
|
||||||
}
|
}
|
||||||
*num_chan = i;
|
*num_chan = i;
|
||||||
DFS_PRINTK("%s: num channels %d\n", __func__, i);
|
DFS_PRINTK("%s: num channels %d\n", __func__, i);
|
||||||
@@ -517,8 +518,8 @@ QDF_STATUS dfs_get_random_channel(
|
|||||||
goto random_chan_error;
|
goto random_chan_error;
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_chan.ic_vhtop_ch_freq_seg1 = ch_params->center_freq_seg0;
|
cur_chan.dfs_ch_vhtop_ch_freq_seg1 = ch_params->center_freq_seg0;
|
||||||
cur_chan.ic_vhtop_ch_freq_seg2 = ch_params->center_freq_seg1;
|
cur_chan.dfs_ch_vhtop_ch_freq_seg2 = ch_params->center_freq_seg1;
|
||||||
|
|
||||||
if (!ch_params->ch_width)
|
if (!ch_params->ch_width)
|
||||||
utils_dfs_get_max_sup_width(pdev,
|
utils_dfs_get_max_sup_width(pdev,
|
||||||
@@ -528,8 +529,8 @@ QDF_STATUS dfs_get_random_channel(
|
|||||||
num_chan, flags, (uint8_t *)&ch_params->ch_width,
|
num_chan, flags, (uint8_t *)&ch_params->ch_width,
|
||||||
&cur_chan, (uint8_t)dfs_reg, acs_info);
|
&cur_chan, (uint8_t)dfs_reg, acs_info);
|
||||||
|
|
||||||
ch_params->center_freq_seg0 = cur_chan.ic_vhtop_ch_freq_seg1;
|
ch_params->center_freq_seg0 = cur_chan.dfs_ch_vhtop_ch_freq_seg1;
|
||||||
ch_params->center_freq_seg1 = cur_chan.ic_vhtop_ch_freq_seg2;
|
ch_params->center_freq_seg1 = cur_chan.dfs_ch_vhtop_ch_freq_seg2;
|
||||||
DFS_PRINTK("%s: input width=%d\n", __func__, ch_params->ch_width);
|
DFS_PRINTK("%s: input width=%d\n", __func__, ch_params->ch_width);
|
||||||
|
|
||||||
if (*target_chan) {
|
if (*target_chan) {
|
||||||
|
Reference in New Issue
Block a user