qcacmn: Cleanup code under CONFIG_CHAN_NUM_API feature flag
As part of regulatory cleanup, Cleanup code under CONFIG_CHAN_NUM_API feature flag. Change-Id: I3add81605ea939b3631396154ed3f07f59493f24 CRs-Fixed: 2953646
このコミットが含まれているのは:
@@ -1000,21 +1000,13 @@ struct dfs_rcac_params {
|
|||||||
* @is_radar_found_on_secondary_seg: Radar on second segment.
|
* @is_radar_found_on_secondary_seg: Radar on second segment.
|
||||||
* @is_radar_during_precac: Radar found during precac.
|
* @is_radar_during_precac: Radar found during precac.
|
||||||
* @dfs_precac_lock: Lock to protect precac lists.
|
* @dfs_precac_lock: Lock to protect precac lists.
|
||||||
* @dfs_precac_secondary_freq: Second segment freq for precac.
|
|
||||||
* Applicable to only legacy chips.
|
|
||||||
* @dfs_precac_secondary_freq_mhz: Second segment freq in MHZ for precac.
|
* @dfs_precac_secondary_freq_mhz: Second segment freq in MHZ for precac.
|
||||||
* Applicable to only legacy chips.
|
* Applicable to only legacy chips.
|
||||||
* @dfs_precac_primary_freq: PreCAC Primary freq applicable only to
|
|
||||||
* legacy chips.
|
|
||||||
* @dfs_precac_primary_freq_mhz: PreCAC Primary freq in MHZ applicable only
|
* @dfs_precac_primary_freq_mhz: PreCAC Primary freq in MHZ applicable only
|
||||||
* to legacy chips.
|
* to legacy chips.
|
||||||
* @dfs_defer_precac_channel_change: Defer precac channel change.
|
* @dfs_defer_precac_channel_change: Defer precac channel change.
|
||||||
* @dfs_precac_inter_chan: Intermediate non-DFS channel used while
|
|
||||||
* doing precac.
|
|
||||||
* @dfs_precac_inter_chan_freq: Intermediate non-DFS freq used while
|
* @dfs_precac_inter_chan_freq: Intermediate non-DFS freq used while
|
||||||
* doing precac.
|
* doing precac.
|
||||||
* @dfs_autoswitch_des_chan: Desired channel which has to be used
|
|
||||||
* after precac.
|
|
||||||
* @dfs_autoswitch_chan: Desired channel of dfs_channel structure
|
* @dfs_autoswitch_chan: Desired channel of dfs_channel structure
|
||||||
* which will be prioritized for preCAC.
|
* which will be prioritized for preCAC.
|
||||||
* @dfs_autoswitch_des_mode: Desired PHY mode which has to be used
|
* @dfs_autoswitch_des_mode: Desired PHY mode which has to be used
|
||||||
@@ -1184,20 +1176,12 @@ struct wlan_dfs {
|
|||||||
bool is_radar_during_precac;
|
bool is_radar_during_precac;
|
||||||
qdf_spinlock_t dfs_precac_lock;
|
qdf_spinlock_t dfs_precac_lock;
|
||||||
bool dfs_precac_enable;
|
bool dfs_precac_enable;
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
uint8_t dfs_precac_secondary_freq;
|
|
||||||
uint8_t dfs_precac_primary_freq;
|
|
||||||
#endif
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
uint16_t dfs_precac_secondary_freq_mhz;
|
uint16_t dfs_precac_secondary_freq_mhz;
|
||||||
uint16_t dfs_precac_primary_freq_mhz;
|
uint16_t dfs_precac_primary_freq_mhz;
|
||||||
#endif
|
#endif
|
||||||
uint8_t dfs_defer_precac_channel_change;
|
uint8_t dfs_defer_precac_channel_change;
|
||||||
#ifdef WLAN_DFS_PRECAC_AUTO_CHAN_SUPPORT
|
#ifdef WLAN_DFS_PRECAC_AUTO_CHAN_SUPPORT
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
uint8_t dfs_precac_inter_chan;
|
|
||||||
uint8_t dfs_autoswitch_des_chan;
|
|
||||||
#endif
|
|
||||||
enum wlan_phymode dfs_autoswitch_des_mode;
|
enum wlan_phymode dfs_autoswitch_des_mode;
|
||||||
#endif
|
#endif
|
||||||
#ifdef WLAN_DFS_PRECAC_AUTO_CHAN_SUPPORT
|
#ifdef WLAN_DFS_PRECAC_AUTO_CHAN_SUPPORT
|
||||||
@@ -1256,9 +1240,6 @@ struct wlan_dfs {
|
|||||||
#if defined(QCA_SUPPORT_AGILE_DFS) || defined(ATH_SUPPORT_ZERO_CAC_DFS)
|
#if defined(QCA_SUPPORT_AGILE_DFS) || defined(ATH_SUPPORT_ZERO_CAC_DFS)
|
||||||
uint8_t dfs_psoc_idx;
|
uint8_t dfs_psoc_idx;
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
uint8_t dfs_agile_precac_freq;
|
|
||||||
#endif
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
uint16_t dfs_agile_precac_freq_mhz;
|
uint16_t dfs_agile_precac_freq_mhz;
|
||||||
#endif
|
#endif
|
||||||
@@ -2580,26 +2561,6 @@ static inline bool dfs_is_en302_502_applicable(struct wlan_dfs *dfs)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
|
||||||
* dfs_set_current_channel() - Set DFS current channel.
|
|
||||||
* @dfs: Pointer to wlan_dfs structure.
|
|
||||||
* @dfs_ch_freq: Frequency in Mhz.
|
|
||||||
* @dfs_ch_flags: Channel flags.
|
|
||||||
* @dfs_ch_flagext: Extended channel flags.
|
|
||||||
* @dfs_ch_ieee: IEEE channel number.
|
|
||||||
* @dfs_ch_vhtop_ch_freq_seg1: Channel Center frequency1.
|
|
||||||
* @dfs_ch_vhtop_ch_freq_seg2: Channel Center frequency2.
|
|
||||||
*/
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
void dfs_set_current_channel(struct wlan_dfs *dfs,
|
|
||||||
uint16_t dfs_ch_freq,
|
|
||||||
uint64_t dfs_ch_flags,
|
|
||||||
uint16_t dfs_ch_flagext,
|
|
||||||
uint8_t dfs_ch_ieee,
|
|
||||||
uint8_t dfs_ch_vhtop_ch_freq_seg1,
|
|
||||||
uint8_t dfs_ch_vhtop_ch_freq_seg2);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
/**
|
/**
|
||||||
* dfs_set_current_channel_for_freq() - Set DFS current channel.
|
* dfs_set_current_channel_for_freq() - Set DFS current channel.
|
||||||
|
@@ -94,14 +94,6 @@ dfs_flush_additional_pulses(struct wlan_dfs *dfs)
|
|||||||
#define LEFT_CH 1
|
#define LEFT_CH 1
|
||||||
#define RIGHT_CH 2
|
#define RIGHT_CH 2
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
/* Next channel number offset's from center channel number */
|
|
||||||
#define DFS_5GHZ_NEXT_CHAN_OFFSET 2
|
|
||||||
#define DFS_5GHZ_2ND_CHAN_OFFSET 6
|
|
||||||
#define DFS_5GHZ_3RD_CHAN_OFFSET 10
|
|
||||||
#define DFS_5GHZ_4TH_CHAN_OFFSET 14
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
/* Next channel frequency offsets from center channel frequency */
|
/* Next channel frequency offsets from center channel frequency */
|
||||||
#define DFS_5GHZ_NEXT_CHAN_FREQ_OFFSET 10
|
#define DFS_5GHZ_NEXT_CHAN_FREQ_OFFSET 10
|
||||||
@@ -288,18 +280,6 @@ void dfs_reset_bangradar(struct wlan_dfs *dfs);
|
|||||||
*/
|
*/
|
||||||
void dfs_send_csa_to_current_chan(struct wlan_dfs *dfs);
|
void dfs_send_csa_to_current_chan(struct wlan_dfs *dfs);
|
||||||
|
|
||||||
/**
|
|
||||||
* dfs_get_bonding_channels_without_seg_info() - Get bonding channels in chan
|
|
||||||
* @chan: Pointer to dfs_channel structure.
|
|
||||||
* @channels: channel array holding list of bonded channels.
|
|
||||||
*
|
|
||||||
* Return: number of sub channels in the input channel.
|
|
||||||
*/
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
uint8_t dfs_get_bonding_channels_without_seg_info(struct dfs_channel *chan,
|
|
||||||
uint8_t *channels);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dfs_get_bonding_channel_without_seg_info_for_freq() - Get bonding channels
|
* dfs_get_bonding_channel_without_seg_info_for_freq() - Get bonding channels
|
||||||
* in chan.
|
* in chan.
|
||||||
|
@@ -121,11 +121,6 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define DFS_IS_CHANNEL_WEATHER_RADAR(_f) (((_f) >= 5600) && ((_f) <= 5650))
|
#define DFS_IS_CHANNEL_WEATHER_RADAR(_f) (((_f) >= 5600) && ((_f) <= 5650))
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
#define DFS_IS_CHAN_JAPAN_INDOOR(_ch) (((_ch) >= 36) && ((_ch) <= 64))
|
|
||||||
#define DFS_IS_CHAN_JAPAN_W53(_ch) (((_ch) >= 52) && ((_ch) <= 64))
|
|
||||||
#define DFS_IS_CHAN_JAPAN_OUTDOOR(_ch) (((_ch) >= 100) && ((_ch) <= 144))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
#define DFS_IS_CHAN_JAPAN_INDOOR_FREQ(_ch)(((_ch) >= 5180) && ((_ch) <= 5320))
|
#define DFS_IS_CHAN_JAPAN_INDOOR_FREQ(_ch)(((_ch) >= 5180) && ((_ch) <= 5320))
|
||||||
|
@@ -34,10 +34,6 @@
|
|||||||
#include "dfs.h"
|
#include "dfs.h"
|
||||||
#include <wlan_dfs_tgt_api.h>
|
#include <wlan_dfs_tgt_api.h>
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
#define VHT160_IEEE_FREQ_DIFF 16
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define OCAC_SUCCESS 0
|
#define OCAC_SUCCESS 0
|
||||||
#define OCAC_RESET 1
|
#define OCAC_RESET 1
|
||||||
#define OCAC_CANCEL 2
|
#define OCAC_CANCEL 2
|
||||||
@@ -234,19 +230,9 @@ static inline void dfs_zero_cac_detach(struct wlan_dfs *dfs)
|
|||||||
*/
|
*/
|
||||||
void dfs_init_precac_list(struct wlan_dfs *dfs);
|
void dfs_init_precac_list(struct wlan_dfs *dfs);
|
||||||
|
|
||||||
/**
|
|
||||||
* dfs_start_precac_timer() - Start precac timer.
|
|
||||||
* @dfs: Pointer to wlan_dfs structure.
|
|
||||||
* @precac_chan: Start thr precac timer in this channel.
|
|
||||||
*/
|
|
||||||
#if defined(WLAN_DFS_PARTIAL_OFFLOAD) && !defined(QCA_MCL_DFS_SUPPORT)
|
#if defined(WLAN_DFS_PARTIAL_OFFLOAD) && !defined(QCA_MCL_DFS_SUPPORT)
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
void dfs_start_precac_timer(struct wlan_dfs *dfs,
|
|
||||||
uint8_t precac_chan);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dfs_start_precac_timer() - Start precac timer.
|
* dfs_start_precac_timer_for_freq() - Start precac timer.
|
||||||
* @dfs: Pointer to wlan_dfs structure.
|
* @dfs: Pointer to wlan_dfs structure.
|
||||||
* @precac_chan_freq: Frequency to start precac timer.
|
* @precac_chan_freq: Frequency to start precac timer.
|
||||||
*/
|
*/
|
||||||
@@ -255,12 +241,6 @@ void dfs_start_precac_timer_for_freq(struct wlan_dfs *dfs,
|
|||||||
uint16_t precac_chan_freq);
|
uint16_t precac_chan_freq);
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
static inline void dfs_start_precac_timer(struct wlan_dfs *dfs,
|
|
||||||
uint8_t precac_chan)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
static inline
|
static inline
|
||||||
void dfs_start_precac_timer_for_freq(struct wlan_dfs *dfs,
|
void dfs_start_precac_timer_for_freq(struct wlan_dfs *dfs,
|
||||||
@@ -339,25 +319,6 @@ static inline bool dfs_is_precac_done(struct wlan_dfs *dfs,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WLAN_DFS_PRECAC_AUTO_CHAN_SUPPORT
|
#ifdef WLAN_DFS_PRECAC_AUTO_CHAN_SUPPORT
|
||||||
/**
|
|
||||||
* dfs_decide_precac_preferred_chan() - Choose operating channel among
|
|
||||||
* configured DFS channel and
|
|
||||||
* intermediate channel based on
|
|
||||||
* precac status of configured
|
|
||||||
* DFS channel.
|
|
||||||
* @dfs: Pointer to wlan_dfs structure.
|
|
||||||
* @pref_chan: Configured DFS channel.
|
|
||||||
* @mode: Configured PHY mode.
|
|
||||||
*
|
|
||||||
* Return: True if intermediate channel needs to configure. False otherwise.
|
|
||||||
*/
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
bool
|
|
||||||
dfs_decide_precac_preferred_chan(struct wlan_dfs *dfs,
|
|
||||||
uint8_t *pref_chan,
|
|
||||||
enum wlan_phymode mode);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dfs_decide_precac_preferred_chan_for_freq() - Choose operating channel among
|
* dfs_decide_precac_preferred_chan_for_freq() - Choose operating channel among
|
||||||
* configured DFS channel and
|
* configured DFS channel and
|
||||||
@@ -378,13 +339,6 @@ dfs_decide_precac_preferred_chan_for_freq(struct wlan_dfs *dfs,
|
|||||||
enum wlan_phymode mode);
|
enum wlan_phymode mode);
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
static inline void dfs_decide_precac_preferred_chan(struct wlan_dfs *dfs,
|
|
||||||
uint8_t *pref_chan,
|
|
||||||
enum wlan_phymode mode)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
static inline void
|
static inline void
|
||||||
dfs_decide_precac_preferred_chan_for_freq(struct wlan_dfs *dfs,
|
dfs_decide_precac_preferred_chan_for_freq(struct wlan_dfs *dfs,
|
||||||
@@ -395,21 +349,6 @@ dfs_decide_precac_preferred_chan_for_freq(struct wlan_dfs *dfs,
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
|
||||||
* dfs_get_ieeechan_for_precac() - Get chan of required bandwidth from
|
|
||||||
* precac_list.
|
|
||||||
* @dfs: Pointer to wlan_dfs structure.
|
|
||||||
* @exclude_pri_ch_ieee: Primary channel IEEE to be excluded for preCAC.
|
|
||||||
* @exclude_sec_ch_ieee: Secondary channel IEEE to be excluded for preCAC.
|
|
||||||
* @bandwidth: Bandwidth of requested channel.
|
|
||||||
*/
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
uint8_t dfs_get_ieeechan_for_precac(struct wlan_dfs *dfs,
|
|
||||||
uint8_t exclude_pri_ch_ieee,
|
|
||||||
uint8_t exclude_sec_ch_ieee,
|
|
||||||
uint8_t bandwidth);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dfs_get_ieeechan_for_precac_for_freq() - Get chan of required bandwidth from
|
* dfs_get_ieeechan_for_precac_for_freq() - Get chan of required bandwidth from
|
||||||
* precac_list.
|
* precac_list.
|
||||||
@@ -458,16 +397,6 @@ static inline int dfs_get_override_precac_timeout(struct wlan_dfs *dfs,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dfs_find_vht80_chan_for_precac() - Find VHT80 channel for precac.
|
|
||||||
* @dfs: Pointer to wlan_dfs structure.
|
|
||||||
* @chan_mode: Channel mode.
|
|
||||||
* @ch_freq_seg1: Segment1 channel freq.
|
|
||||||
* @cfreq1: cfreq1.
|
|
||||||
* @cfreq2: cfreq2.
|
|
||||||
* @phy_mode: Precac phymode.
|
|
||||||
* @dfs_set_cfreq2: Precac cfreq2
|
|
||||||
* @set_agile: Agile mode flag.
|
|
||||||
*
|
|
||||||
* Zero-CAC-DFS algorithm:-
|
* Zero-CAC-DFS algorithm:-
|
||||||
* Zero-CAC-DFS algorithm works in stealth mode.
|
* Zero-CAC-DFS algorithm works in stealth mode.
|
||||||
* 1) When any channel change happens in VHT80 mode the algorithm
|
* 1) When any channel change happens in VHT80 mode the algorithm
|
||||||
@@ -493,19 +422,8 @@ static inline int dfs_get_override_precac_timeout(struct wlan_dfs *dfs,
|
|||||||
* exhausted the VHT80_80/VHT160 comes back to VHT80 mode.
|
* exhausted the VHT80_80/VHT160 comes back to VHT80 mode.
|
||||||
*/
|
*/
|
||||||
#if defined(WLAN_DFS_PARTIAL_OFFLOAD) && !defined(QCA_MCL_DFS_SUPPORT)
|
#if defined(WLAN_DFS_PARTIAL_OFFLOAD) && !defined(QCA_MCL_DFS_SUPPORT)
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
void dfs_find_vht80_chan_for_precac(struct wlan_dfs *dfs,
|
|
||||||
uint32_t chan_mode,
|
|
||||||
uint8_t ch_freq_seg1,
|
|
||||||
uint32_t *cfreq1,
|
|
||||||
uint32_t *cfreq2,
|
|
||||||
uint32_t *phy_mode,
|
|
||||||
bool *dfs_set_cfreq2,
|
|
||||||
bool *set_agile);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* dfs_find_vht80_chan_for_precac() - Find VHT80 channel for precac.
|
* dfs_find_vht80_chan_for_precac_for_freq() - Find VHT80 channel for precac.
|
||||||
* @dfs: Pointer to wlan_dfs structure.
|
* @dfs: Pointer to wlan_dfs structure.
|
||||||
* @chan_mode: Channel mode.
|
* @chan_mode: Channel mode.
|
||||||
* @ch_freq_seg1: Segment1 channel freq in mhz.
|
* @ch_freq_seg1: Segment1 channel freq in mhz.
|
||||||
@@ -527,18 +445,6 @@ void dfs_find_vht80_chan_for_precac_for_freq(struct wlan_dfs *dfs,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
static inline void dfs_find_vht80_chan_for_precac(struct wlan_dfs *dfs,
|
|
||||||
uint32_t chan_mode,
|
|
||||||
uint8_t ch_freq_seg1,
|
|
||||||
uint32_t *cfreq1,
|
|
||||||
uint32_t *cfreq2,
|
|
||||||
uint32_t *phy_mode,
|
|
||||||
bool *dfs_set_cfreq2,
|
|
||||||
bool *set_agile)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
static inline
|
static inline
|
||||||
@@ -587,23 +493,6 @@ void dfs_process_ocac_complete(struct wlan_objmgr_pdev *pdev,
|
|||||||
uint32_t center_freq2,
|
uint32_t center_freq2,
|
||||||
enum phy_ch_width chwidth);
|
enum phy_ch_width chwidth);
|
||||||
|
|
||||||
/**
|
|
||||||
* dfs_get_ieeechan_for_agilecac() - Find an IEEE channel for agile CAC.
|
|
||||||
* @dfs: Pointer to wlan_dfs structure.
|
|
||||||
* @ch_ieee: Pointer to channel number for agile set request.
|
|
||||||
* @pri_ch_ieee: Current primary IEEE channel.
|
|
||||||
* @sec_ch_ieee: Current secondary IEEE channel (in HT80_80 mode).
|
|
||||||
*
|
|
||||||
* Find an IEEE channel for agileCAC which is not the current operating
|
|
||||||
* channels (indicated by pri_ch_ieee, sec_ch_ieee).
|
|
||||||
*/
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
void dfs_get_ieeechan_for_agilecac(struct wlan_dfs *dfs,
|
|
||||||
uint8_t *ch_ieee,
|
|
||||||
uint8_t pri_ch_ieee,
|
|
||||||
uint8_t sec_ch_ieee);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dfs_set_agilecac_chan_for_freq() - Find chan freq for agile CAC.
|
* dfs_set_agilecac_chan_for_freq() - Find chan freq for agile CAC.
|
||||||
* @dfs: Pointer to wlan_dfs structure.
|
* @dfs: Pointer to wlan_dfs structure.
|
||||||
@@ -673,15 +562,6 @@ dfs_process_ocac_complete(struct wlan_objmgr_pdev *pdev,
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
static inline void dfs_get_ieeechan_for_agilecac(struct wlan_dfs *dfs,
|
|
||||||
uint8_t *ch_ieee,
|
|
||||||
uint8_t pri_ch_ieee,
|
|
||||||
uint8_t sec_ch_ieee)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
static inline void
|
static inline void
|
||||||
dfs_set_agilecac_chan_for_freq(struct wlan_dfs *dfs,
|
dfs_set_agilecac_chan_for_freq(struct wlan_dfs *dfs,
|
||||||
@@ -815,20 +695,6 @@ static inline uint32_t dfs_get_intermediate_chan(struct wlan_dfs *dfs)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WLAN_DFS_PRECAC_AUTO_CHAN_SUPPORT
|
#ifdef WLAN_DFS_PRECAC_AUTO_CHAN_SUPPORT
|
||||||
/**
|
|
||||||
* dfs_get_precac_chan_state() - Get precac status of a given channel.
|
|
||||||
* @dfs: Pointer to wlan_dfs structure.
|
|
||||||
* @precac_chan: Channel number for which precac state need to be checked.
|
|
||||||
*
|
|
||||||
* Return:
|
|
||||||
* * PRECAC_REQUIRED: Precac has not done on precac_chan.
|
|
||||||
* * PRECAC_NOW : Precac is running on precac_chan.
|
|
||||||
* * PRECAC_DONE : precac_chan is in CAC done state in precac list.
|
|
||||||
* * PRECAC_NOL : precac_chan is in NOL state in precac list.
|
|
||||||
* * PRECAC_ERR : Invalid precac state.
|
|
||||||
*/
|
|
||||||
enum precac_chan_state
|
|
||||||
dfs_get_precac_chan_state(struct wlan_dfs *dfs, uint8_t precac_chan);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dfs_get_precac_chan_state_for_freq() - Get precac status of a given channel.
|
* dfs_get_precac_chan_state_for_freq() - Get precac status of a given channel.
|
||||||
@@ -843,16 +709,6 @@ dfs_get_precac_chan_state_for_freq(struct wlan_dfs *dfs,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
static inline enum precac_chan_state
|
|
||||||
dfs_get_precac_chan_state(struct wlan_dfs *dfs,
|
|
||||||
uint8_t precac_chan)
|
|
||||||
{
|
|
||||||
return PRECAC_REQUIRED;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
static inline enum precac_chan_state
|
static inline enum precac_chan_state
|
||||||
dfs_get_precac_chan_state_for_freq(struct wlan_dfs *dfs,
|
dfs_get_precac_chan_state_for_freq(struct wlan_dfs *dfs,
|
||||||
@@ -895,21 +751,6 @@ static inline void dfs_reinit_precac_lists(struct wlan_dfs *src_dfs,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
|
||||||
* dfs_is_precac_done_on_ht20_40_80_chan() - Is precac done on a
|
|
||||||
* VHT20/40/80 channel.
|
|
||||||
*@dfs: Pointer to wlan_dfs structure.
|
|
||||||
*@chan: Channel IEEE value.
|
|
||||||
*
|
|
||||||
* Return:
|
|
||||||
* * True: If CAC is done on channel.
|
|
||||||
* * False: If CAC is not done on channel.
|
|
||||||
*/
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
bool dfs_is_precac_done_on_ht20_40_80_chan(struct wlan_dfs *dfs,
|
|
||||||
uint8_t chan);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dfs_is_precac_done_on_ht20_40_80_160_165_chan_for_freq() - Is precac done on
|
* dfs_is_precac_done_on_ht20_40_80_160_165_chan_for_freq() - Is precac done on
|
||||||
* a VHT20/40/80/160/165 channel.
|
* a VHT20/40/80/160/165 channel.
|
||||||
@@ -973,22 +814,6 @@ void dfs_mark_precac_done_for_freq(struct wlan_dfs *dfs,
|
|||||||
enum phy_ch_width chan_width);
|
enum phy_ch_width chan_width);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
|
||||||
* dfs_mark_precac_nol() - Mark the precac channel as radar.
|
|
||||||
* @dfs: Pointer to wlan_dfs structure.
|
|
||||||
* @is_radar_found_on_secondary_seg: Radar found on secondary seg for Cascade.
|
|
||||||
* @detector_id: detector id which found RADAR in HW.
|
|
||||||
* @channels: Array of radar found subchannels.
|
|
||||||
* @num_channels: Number of radar found subchannels.
|
|
||||||
*/
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
void dfs_mark_precac_nol(struct wlan_dfs *dfs,
|
|
||||||
uint8_t is_radar_found_on_secondary_seg,
|
|
||||||
uint8_t detector_id,
|
|
||||||
uint8_t *channels,
|
|
||||||
uint8_t num_channels);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dfs_mark_precac_nol_for_freq() - Mark the precac channel as radar.
|
* dfs_mark_precac_nol_for_freq() - Mark the precac channel as radar.
|
||||||
* @dfs: Pointer to wlan_dfs structure.
|
* @dfs: Pointer to wlan_dfs structure.
|
||||||
@@ -1005,15 +830,6 @@ void dfs_mark_precac_nol_for_freq(struct wlan_dfs *dfs,
|
|||||||
uint8_t num_channels);
|
uint8_t num_channels);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
|
||||||
* dfs_unmark_precac_nol() - Unmark the precac channel as radar.
|
|
||||||
* @dfs: Pointer to wlan_dfs structure.
|
|
||||||
* @channel: channel marked as radar.
|
|
||||||
*/
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
void dfs_unmark_precac_nol(struct wlan_dfs *dfs, uint8_t channel);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dfs_unmark_precac_nol_for_freq() - Unmark the precac channel as radar.
|
* dfs_unmark_precac_nol_for_freq() - Unmark the precac channel as radar.
|
||||||
* @dfs: Pointer to wlan_dfs structure.
|
* @dfs: Pointer to wlan_dfs structure.
|
||||||
@@ -1044,16 +860,6 @@ static inline void dfs_mark_precac_done_for_freq(struct wlan_dfs *dfs,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
static inline void dfs_mark_precac_nol(struct wlan_dfs *dfs,
|
|
||||||
uint8_t is_radar_found_on_secondary_seg,
|
|
||||||
uint8_t detector_id,
|
|
||||||
uint8_t *channels,
|
|
||||||
uint8_t num_channels)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
static inline void
|
static inline void
|
||||||
dfs_mark_precac_nol_for_freq(struct wlan_dfs *dfs,
|
dfs_mark_precac_nol_for_freq(struct wlan_dfs *dfs,
|
||||||
@@ -1065,12 +871,6 @@ dfs_mark_precac_nol_for_freq(struct wlan_dfs *dfs,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
static inline void dfs_unmark_precac_nol(struct wlan_dfs *dfs, uint8_t channel)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
static inline void dfs_unmark_precac_nol_for_freq(struct wlan_dfs *dfs,
|
static inline void dfs_unmark_precac_nol_for_freq(struct wlan_dfs *dfs,
|
||||||
uint16_t chan_freq)
|
uint16_t chan_freq)
|
||||||
|
@@ -711,52 +711,6 @@ dfs_is_curchan_same_as_given_chan(struct dfs_channel *dfs_curchan,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
void dfs_set_current_channel(struct wlan_dfs *dfs,
|
|
||||||
uint16_t dfs_ch_freq,
|
|
||||||
uint64_t dfs_ch_flags,
|
|
||||||
uint16_t dfs_ch_flagext,
|
|
||||||
uint8_t dfs_ch_ieee,
|
|
||||||
uint8_t dfs_ch_vhtop_ch_freq_seg1,
|
|
||||||
uint8_t dfs_ch_vhtop_ch_freq_seg2)
|
|
||||||
{
|
|
||||||
if (!dfs) {
|
|
||||||
dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "dfs is NULL");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!dfs->dfs_curchan) {
|
|
||||||
dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "dfs_curchan is NULL");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Check if the input parameters are the same as that of dfs_curchan */
|
|
||||||
if (dfs_is_curchan_same_as_given_chan(dfs->dfs_curchan,
|
|
||||||
dfs_ch_freq,
|
|
||||||
dfs_ch_flags,
|
|
||||||
dfs_ch_flagext,
|
|
||||||
dfs_ch_vhtop_ch_freq_seg1,
|
|
||||||
dfs_ch_vhtop_ch_freq_seg2)) {
|
|
||||||
dfs_info(dfs, WLAN_DEBUG_DFS_ALWAYS,
|
|
||||||
"dfs_curchan already updated");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Update dfs previous channel with the old dfs_curchan, if it exists */
|
|
||||||
if (dfs->dfs_curchan->dfs_ch_freq)
|
|
||||||
qdf_mem_copy(dfs->dfs_prevchan,
|
|
||||||
dfs->dfs_curchan,
|
|
||||||
sizeof(struct dfs_channel));
|
|
||||||
|
|
||||||
dfs->dfs_curchan->dfs_ch_freq = dfs_ch_freq;
|
|
||||||
dfs->dfs_curchan->dfs_ch_flags = dfs_ch_flags;
|
|
||||||
dfs->dfs_curchan->dfs_ch_flagext = dfs_ch_flagext;
|
|
||||||
dfs->dfs_curchan->dfs_ch_ieee = dfs_ch_ieee;
|
|
||||||
dfs->dfs_curchan->dfs_ch_vhtop_ch_freq_seg1 = dfs_ch_vhtop_ch_freq_seg1;
|
|
||||||
dfs->dfs_curchan->dfs_ch_vhtop_ch_freq_seg2 = dfs_ch_vhtop_ch_freq_seg2;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
void dfs_set_current_channel_for_freq(struct wlan_dfs *dfs,
|
void dfs_set_current_channel_for_freq(struct wlan_dfs *dfs,
|
||||||
uint16_t dfs_chan_freq,
|
uint16_t dfs_chan_freq,
|
||||||
|
@@ -342,44 +342,6 @@ void dfs_set_nol(struct wlan_dfs *dfs,
|
|||||||
dfs_nol_update(dfs);
|
dfs_nol_update(dfs);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
void dfs_set_nol(struct wlan_dfs *dfs,
|
|
||||||
struct dfsreq_nolelem *dfs_nol,
|
|
||||||
int nchan)
|
|
||||||
{
|
|
||||||
#define TIME_IN_MS 1000
|
|
||||||
uint32_t nol_time_lft_ms;
|
|
||||||
struct dfs_channel chan;
|
|
||||||
int i;
|
|
||||||
uint8_t chan_num;
|
|
||||||
|
|
||||||
if (!dfs) {
|
|
||||||
dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "dfs is NULL");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < nchan; i++) {
|
|
||||||
nol_time_lft_ms = qdf_do_div(qdf_get_monotonic_boottime() -
|
|
||||||
dfs_nol[i].nol_start_us, 1000);
|
|
||||||
|
|
||||||
if (nol_time_lft_ms < dfs_nol[i].nol_timeout_ms) {
|
|
||||||
chan.dfs_ch_freq = dfs_nol[i].nol_freq;
|
|
||||||
chan.dfs_ch_flags = 0;
|
|
||||||
chan.dfs_ch_flagext = 0;
|
|
||||||
nol_time_lft_ms =
|
|
||||||
(dfs_nol[i].nol_timeout_ms - nol_time_lft_ms);
|
|
||||||
|
|
||||||
DFS_NOL_ADD_CHAN_LOCKED(dfs, chan.dfs_ch_freq,
|
|
||||||
(nol_time_lft_ms / TIME_IN_MS));
|
|
||||||
chan_num = utils_dfs_freq_to_chan(chan.dfs_ch_freq);
|
|
||||||
utils_dfs_reg_update_nol_ch(dfs->dfs_pdev_obj,
|
|
||||||
&chan_num, 1, DFS_NOL_SET);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#undef TIME_IN_MS
|
|
||||||
dfs_nol_update(dfs);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void dfs_nol_addchan(struct wlan_dfs *dfs,
|
void dfs_nol_addchan(struct wlan_dfs *dfs,
|
||||||
|
@@ -476,56 +476,6 @@ dfs_find_radar_affected_subchans_for_freq(struct wlan_dfs *dfs,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
uint8_t dfs_get_bonding_channels_without_seg_info(struct dfs_channel *chan,
|
|
||||||
uint8_t *channels)
|
|
||||||
{
|
|
||||||
uint8_t center_chan;
|
|
||||||
uint8_t nchannels = 0;
|
|
||||||
|
|
||||||
center_chan = chan->dfs_ch_vhtop_ch_freq_seg1;
|
|
||||||
|
|
||||||
if (WLAN_IS_CHAN_MODE_20(chan)) {
|
|
||||||
nchannels = 1;
|
|
||||||
channels[0] = center_chan;
|
|
||||||
} else if (WLAN_IS_CHAN_MODE_40(chan)) {
|
|
||||||
nchannels = 2;
|
|
||||||
channels[0] = center_chan - DFS_5GHZ_NEXT_CHAN_OFFSET;
|
|
||||||
channels[1] = center_chan + DFS_5GHZ_NEXT_CHAN_OFFSET;
|
|
||||||
} else if (WLAN_IS_CHAN_MODE_80(chan)) {
|
|
||||||
nchannels = 4;
|
|
||||||
channels[0] = center_chan - DFS_5GHZ_2ND_CHAN_OFFSET;
|
|
||||||
channels[1] = center_chan - DFS_5GHZ_NEXT_CHAN_OFFSET;
|
|
||||||
channels[2] = center_chan + DFS_5GHZ_NEXT_CHAN_OFFSET;
|
|
||||||
channels[3] = center_chan + DFS_5GHZ_2ND_CHAN_OFFSET;
|
|
||||||
} else if (WLAN_IS_CHAN_MODE_80_80(chan)) {
|
|
||||||
nchannels = 8;
|
|
||||||
channels[0] = center_chan - DFS_5GHZ_2ND_CHAN_OFFSET;
|
|
||||||
channels[1] = center_chan - DFS_5GHZ_NEXT_CHAN_OFFSET;
|
|
||||||
channels[2] = center_chan + DFS_5GHZ_NEXT_CHAN_OFFSET;
|
|
||||||
channels[3] = center_chan + DFS_5GHZ_2ND_CHAN_OFFSET;
|
|
||||||
center_chan = chan->dfs_ch_vhtop_ch_freq_seg2;
|
|
||||||
channels[4] = center_chan - DFS_5GHZ_2ND_CHAN_OFFSET;
|
|
||||||
channels[5] = center_chan - DFS_5GHZ_NEXT_CHAN_OFFSET;
|
|
||||||
channels[6] = center_chan + DFS_5GHZ_NEXT_CHAN_OFFSET;
|
|
||||||
channels[7] = center_chan + DFS_5GHZ_2ND_CHAN_OFFSET;
|
|
||||||
} else if (WLAN_IS_CHAN_MODE_160(chan)) {
|
|
||||||
nchannels = 8;
|
|
||||||
center_chan = chan->dfs_ch_vhtop_ch_freq_seg2;
|
|
||||||
channels[0] = center_chan - DFS_5GHZ_4TH_CHAN_OFFSET;
|
|
||||||
channels[1] = center_chan - DFS_5GHZ_3RD_CHAN_OFFSET;
|
|
||||||
channels[2] = center_chan - DFS_5GHZ_2ND_CHAN_OFFSET;
|
|
||||||
channels[3] = center_chan - DFS_5GHZ_NEXT_CHAN_OFFSET;
|
|
||||||
channels[4] = center_chan + DFS_5GHZ_NEXT_CHAN_OFFSET;
|
|
||||||
channels[5] = center_chan + DFS_5GHZ_2ND_CHAN_OFFSET;
|
|
||||||
channels[6] = center_chan + DFS_5GHZ_3RD_CHAN_OFFSET;
|
|
||||||
channels[7] = center_chan + DFS_5GHZ_4TH_CHAN_OFFSET;
|
|
||||||
}
|
|
||||||
|
|
||||||
return nchannels;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* dfs_get_bonding_channel_without_seg_info_for_freq() - Get bonding frequency
|
* dfs_get_bonding_channel_without_seg_info_for_freq() - Get bonding frequency
|
||||||
* list.
|
* list.
|
||||||
|
@@ -1159,7 +1159,7 @@ static uint16_t dfs_get_rand_from_lst_for_freq(struct wlan_dfs *dfs,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dfs_random_channel_sel_set_bitmap()- Set channel bit in bitmap based
|
* dfs_random_channel_sel_set_bitmap_for_freq()- Set channel bit in bitmap based
|
||||||
* on given channel number
|
* on given channel number
|
||||||
* @dfs: Pointer to DFS structure.
|
* @dfs: Pointer to DFS structure.
|
||||||
* @bitmap: bitmap
|
* @bitmap: bitmap
|
||||||
|
@@ -139,38 +139,6 @@ int dfs_mlme_ieee2mhz(struct wlan_objmgr_pdev *pdev,
|
|||||||
int ieee,
|
int ieee,
|
||||||
uint64_t flag);
|
uint64_t flag);
|
||||||
|
|
||||||
/**
|
|
||||||
* dfs_mlme_find_dot11_channel() - Get dot11 channel from ieee, cfreq2 and mode.
|
|
||||||
* @pdev: Pointer to DFS pdev object.
|
|
||||||
* @ieee: Channel number.
|
|
||||||
* @des_cfreq2: cfreq2
|
|
||||||
* @mode: Phymode
|
|
||||||
* @dfs_ch_freq: Frequency in Mhz.
|
|
||||||
* @dfs_ch_flags: Channel flags.
|
|
||||||
* @dfs_ch_flagext: Extended channel flags.
|
|
||||||
* @dfs_ch_ieee: IEEE channel number.
|
|
||||||
* @dfs_ch_vhtop_ch_freq_seg1: Channel Center frequency.
|
|
||||||
* @dfs_ch_vhtop_ch_freq_seg2: Channel Center frequency applicable for 80+80MHz
|
|
||||||
* mode of operation.
|
|
||||||
*
|
|
||||||
* Return:
|
|
||||||
* * QDF_STATUS_SUCCESS : Channel found.
|
|
||||||
* * QDF_STATUS_E_FAILURE: Channel not found.
|
|
||||||
*/
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
QDF_STATUS
|
|
||||||
dfs_mlme_find_dot11_channel(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t ieee,
|
|
||||||
uint8_t des_cfreq2,
|
|
||||||
int mode,
|
|
||||||
uint16_t *dfs_ch_freq,
|
|
||||||
uint64_t *dfs_ch_flags,
|
|
||||||
uint16_t *dfs_ch_flagext,
|
|
||||||
uint8_t *dfs_ch_ieee,
|
|
||||||
uint8_t *dfs_ch_vhtop_ch_freq_seg1,
|
|
||||||
uint8_t *dfs_ch_vhtop_ch_freq_seg2);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dfs_mlme_find_dot11_chan_for_freq() - Find a channel pointer given the mode,
|
* dfs_mlme_find_dot11_chan_for_freq() - Find a channel pointer given the mode,
|
||||||
* frequency and channel flags.
|
* frequency and channel flags.
|
||||||
@@ -210,29 +178,6 @@ dfs_mlme_find_dot11_chan_for_freq(struct wlan_objmgr_pdev *pdev,
|
|||||||
uint16_t *dfs_chan_mhz_freq_seg2);
|
uint16_t *dfs_chan_mhz_freq_seg2);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
|
||||||
* dfs_mlme_get_dfs_ch_channels() - Get channel from channel list.
|
|
||||||
* @pdev: Pointer to DFS pdev object.
|
|
||||||
* @dfs_ch_freq: Frequency in Mhz.
|
|
||||||
* @dfs_ch_flags: Channel flags.
|
|
||||||
* @dfs_ch_flagext: Extended channel flags.
|
|
||||||
* @dfs_ch_ieee: IEEE channel number.
|
|
||||||
* @dfs_ch_vhtop_ch_freq_seg1: Channel Center frequency.
|
|
||||||
* @dfs_ch_vhtop_ch_freq_seg2: Channel Center frequency applicable for 80+80MHz
|
|
||||||
* mode of operation.
|
|
||||||
* @index: Index into channel list.
|
|
||||||
*/
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
void dfs_mlme_get_dfs_ch_channels(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint16_t *dfs_ch_freq,
|
|
||||||
uint64_t *dfs_ch_flags,
|
|
||||||
uint16_t *dfs_ch_flagext,
|
|
||||||
uint8_t *dfs_ch_ieee,
|
|
||||||
uint8_t *dfs_ch_vhtop_ch_freq_seg1,
|
|
||||||
uint8_t *dfs_ch_vhtop_ch_freq_seg2,
|
|
||||||
int index);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dfs_mlme_get_dfs_channels_for_freq() - Get DFS channel from channel list.
|
* dfs_mlme_get_dfs_channels_for_freq() - Get DFS channel from channel list.
|
||||||
* @pdev: Pointer to DFS pdev object.
|
* @pdev: Pointer to DFS pdev object.
|
||||||
@@ -290,21 +235,6 @@ void dfs_mlme_clist_update(struct wlan_objmgr_pdev *pdev,
|
|||||||
void *nollist,
|
void *nollist,
|
||||||
int nentries);
|
int nentries);
|
||||||
|
|
||||||
/**
|
|
||||||
* dfs_mlme_get_cac_timeout() - Get cac_timeout.
|
|
||||||
* @pdev: Pointer to DFS pdev object.
|
|
||||||
* @dfs_ch_freq: Frequency in Mhz.
|
|
||||||
* @dfs_ch_vhtop_ch_freq_seg2: Channel Center frequency applicable for 80+80MHz
|
|
||||||
* mode of operation.
|
|
||||||
* @dfs_ch_flags: Channel flags.
|
|
||||||
*/
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
int dfs_mlme_get_cac_timeout(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint16_t dfs_ch_freq,
|
|
||||||
uint8_t dfs_ch_vhtop_ch_freq_seg2,
|
|
||||||
uint64_t dfs_ch_flags);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dfs_mlme_get_cac_timeout_for_freq() - Get cac_timeout.
|
* dfs_mlme_get_cac_timeout_for_freq() - Get cac_timeout.
|
||||||
* @pdev: Pointer to DFS pdev object.
|
* @pdev: Pointer to DFS pdev object.
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
@@ -120,28 +120,7 @@ struct vdev_adfs_complete_status {
|
|||||||
|
|
||||||
extern struct dfs_to_mlme global_dfs_to_mlme;
|
extern struct dfs_to_mlme global_dfs_to_mlme;
|
||||||
|
|
||||||
/**
|
|
||||||
* tgt_dfs_set_current_channel() - Fill dfs channel structure from
|
|
||||||
* dfs_channel structure.
|
|
||||||
* @pdev: Pointer to DFS pdev object.
|
|
||||||
* @dfs_ch_freq: Frequency in Mhz.
|
|
||||||
* @dfs_ch_flags: Channel flags.
|
|
||||||
* @dfs_ch_flagext: Extended channel flags.
|
|
||||||
* @dfs_ch_ieee: IEEE channel number.
|
|
||||||
* @dfs_ch_vhtop_ch_freq_seg1: Channel Center frequency1.
|
|
||||||
* @dfs_ch_vhtop_ch_freq_seg2: Channel Center frequency2.
|
|
||||||
*/
|
|
||||||
#ifdef DFS_COMPONENT_ENABLE
|
#ifdef DFS_COMPONENT_ENABLE
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
QDF_STATUS tgt_dfs_set_current_channel(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint16_t dfs_ch_freq,
|
|
||||||
uint64_t dfs_ch_flags,
|
|
||||||
uint16_t dfs_ch_flagext,
|
|
||||||
uint8_t dfs_ch_ieee,
|
|
||||||
uint8_t dfs_ch_vhtop_ch_freq_seg1,
|
|
||||||
uint8_t dfs_ch_vhtop_ch_freq_seg2);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* tgt_dfs_set_current_channel_for_freq() - Fill dfs channel structure from
|
* tgt_dfs_set_current_channel_for_freq() - Fill dfs channel structure from
|
||||||
* dfs_channel structure.
|
* dfs_channel structure.
|
||||||
@@ -222,17 +201,6 @@ QDF_STATUS tgt_dfs_get_radars(struct wlan_objmgr_pdev *pdev);
|
|||||||
QDF_STATUS tgt_dfs_process_radar_ind(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS tgt_dfs_process_radar_ind(struct wlan_objmgr_pdev *pdev,
|
||||||
struct radar_found_info *radar_found);
|
struct radar_found_info *radar_found);
|
||||||
#else
|
#else
|
||||||
static inline QDF_STATUS tgt_dfs_set_current_channel(
|
|
||||||
struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint16_t dfs_ch_freq,
|
|
||||||
uint64_t dfs_ch_flags,
|
|
||||||
uint16_t dfs_ch_flagext,
|
|
||||||
uint8_t dfs_ch_ieee,
|
|
||||||
uint8_t dfs_ch_vhtop_ch_freq_seg1,
|
|
||||||
uint8_t dfs_ch_vhtop_ch_freq_seg2)
|
|
||||||
{
|
|
||||||
return QDF_STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline QDF_STATUS tgt_dfs_radar_enable(
|
static inline QDF_STATUS tgt_dfs_radar_enable(
|
||||||
struct wlan_objmgr_pdev *pdev,
|
struct wlan_objmgr_pdev *pdev,
|
||||||
@@ -377,31 +345,6 @@ QDF_STATUS tgt_dfs_agile_precac_start(struct wlan_objmgr_pdev *pdev);
|
|||||||
QDF_STATUS tgt_dfs_ocac_complete(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS tgt_dfs_ocac_complete(struct wlan_objmgr_pdev *pdev,
|
||||||
struct vdev_adfs_complete_status *ocac_status);
|
struct vdev_adfs_complete_status *ocac_status);
|
||||||
|
|
||||||
/**
|
|
||||||
* utils_dfs_find_vht80_chan_for_precac() - Find VHT80 channel for precac.
|
|
||||||
* @pdev: Pointer to DFS pdev object.
|
|
||||||
* @chan_mode: Channel mode.
|
|
||||||
* @ch_freq_seg1: Segment1 channel freq.
|
|
||||||
* @cfreq1: cfreq1.
|
|
||||||
* @cfreq2: cfreq2.
|
|
||||||
* @phy_mode: Precac phymode.
|
|
||||||
* @dfs_set_cfreq2: Precac cfreq2
|
|
||||||
* @set_agile: Agile mode flag.
|
|
||||||
*
|
|
||||||
* wrapper function for dfs_find_vht80_chan_for_precacdfs_cancel_cac_timer().
|
|
||||||
* This function called from outside of dfs component.
|
|
||||||
*/
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
QDF_STATUS tgt_dfs_find_vht80_chan_for_precac(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint32_t chan_mode,
|
|
||||||
uint8_t ch_freq_seg1,
|
|
||||||
uint32_t *cfreq1,
|
|
||||||
uint32_t *cfreq2,
|
|
||||||
uint32_t *phy_mode,
|
|
||||||
bool *dfs_set_cfreq2,
|
|
||||||
bool *set_agile);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* tgt_dfs_find_vht80_precac_chan_freq() - Find VHT80 channel for precac
|
* tgt_dfs_find_vht80_precac_chan_freq() - Find VHT80 channel for precac
|
||||||
* @pdev: Pointer to DFS pdev object.
|
* @pdev: Pointer to DFS pdev object.
|
||||||
|
@@ -41,16 +41,11 @@
|
|||||||
* space
|
* space
|
||||||
* @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_get_dfs_ch_channels: Get the channel list.
|
|
||||||
* @mlme_dfs_ch_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_precac_chan_change_csa: Channel change triggered by PrCAC using
|
|
||||||
* Channel Switch Announcement.
|
|
||||||
* @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.
|
||||||
* @mlme_is_opmode_sta: Check if pdev opmode is STA.
|
* @mlme_is_opmode_sta: Check if pdev opmode is STA.
|
||||||
* @mlme_get_cac_timeout: Gets the CAC timeout.
|
|
||||||
* @mlme_rebuild_chan_list_with_non_dfs_channel: Rebuild channels with non-dfs
|
* @mlme_rebuild_chan_list_with_non_dfs_channel: Rebuild channels with non-dfs
|
||||||
* channels.
|
* channels.
|
||||||
* @mlme_restart_vaps_with_non_dfs_chan: Restart vaps with non-dfs channel.
|
* @mlme_restart_vaps_with_non_dfs_chan: Restart vaps with non-dfs channel.
|
||||||
@@ -117,18 +112,6 @@ struct dfs_to_mlme {
|
|||||||
int ieee,
|
int ieee,
|
||||||
uint64_t flag,
|
uint64_t flag,
|
||||||
int *freq);
|
int *freq);
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
QDF_STATUS (*mlme_find_dot11_channel)(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t ieee,
|
|
||||||
uint8_t des_cfreq2,
|
|
||||||
int mode,
|
|
||||||
uint16_t *dfs_ch_freq,
|
|
||||||
uint64_t *dfs_ch_flags,
|
|
||||||
uint16_t *dfs_ch_flagext,
|
|
||||||
uint8_t *dfs_ch_ieee,
|
|
||||||
uint8_t *dfs_ch_vhtop_ch_freq_seg1,
|
|
||||||
uint8_t *dfs_ch_vhtop_ch_freq_seg2);
|
|
||||||
#endif
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
QDF_STATUS (*mlme_find_dot11_chan_for_freq)(struct wlan_objmgr_pdev *,
|
QDF_STATUS (*mlme_find_dot11_chan_for_freq)(struct wlan_objmgr_pdev *,
|
||||||
uint16_t freq,
|
uint16_t freq,
|
||||||
@@ -143,16 +126,6 @@ struct dfs_to_mlme {
|
|||||||
uint16_t *dfs_cfreq1_mhz,
|
uint16_t *dfs_cfreq1_mhz,
|
||||||
uint16_t *dfs_cfreq2_mhz);
|
uint16_t *dfs_cfreq2_mhz);
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
QDF_STATUS (*mlme_get_dfs_ch_channels)(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint16_t *dfs_ch_freq,
|
|
||||||
uint64_t *dfs_ch_flags,
|
|
||||||
uint16_t *dfs_ch_flagext,
|
|
||||||
uint8_t *dfs_ch_ieee,
|
|
||||||
uint8_t *dfs_ch_vhtop_ch_freq_seg1,
|
|
||||||
uint8_t *dfs_ch_vhtop_ch_freq_seg2,
|
|
||||||
int index);
|
|
||||||
#endif
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
QDF_STATUS (*mlme_get_dfs_channels_for_freq)(
|
QDF_STATUS (*mlme_get_dfs_channels_for_freq)(
|
||||||
struct wlan_objmgr_pdev *pdev,
|
struct wlan_objmgr_pdev *pdev,
|
||||||
@@ -178,12 +151,6 @@ struct dfs_to_mlme {
|
|||||||
uint16_t des_cfreq2,
|
uint16_t des_cfreq2,
|
||||||
enum wlan_phymode des_mode);
|
enum wlan_phymode des_mode);
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
QDF_STATUS
|
|
||||||
(*mlme_precac_chan_change_csa)(struct wlan_objmgr_pdev *,
|
|
||||||
uint8_t des_chan,
|
|
||||||
enum wlan_phymode des_mode);
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef QCA_SUPPORT_DFS_CHAN_POSTNOL
|
#ifdef QCA_SUPPORT_DFS_CHAN_POSTNOL
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
@@ -198,13 +165,6 @@ struct dfs_to_mlme {
|
|||||||
void *nollist,
|
void *nollist,
|
||||||
int nentries);
|
int nentries);
|
||||||
bool (*mlme_is_opmode_sta)(struct wlan_objmgr_pdev *pdev);
|
bool (*mlme_is_opmode_sta)(struct wlan_objmgr_pdev *pdev);
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
QDF_STATUS (*mlme_get_cac_timeout)(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint16_t dfs_ch_freq,
|
|
||||||
uint8_t c_vhtop_ch_freq_seg2,
|
|
||||||
uint64_t dfs_ch_flags,
|
|
||||||
int *cac_timeout);
|
|
||||||
#endif
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
(*mlme_get_cac_timeout_for_freq)(struct wlan_objmgr_pdev *pdev,
|
(*mlme_get_cac_timeout_for_freq)(struct wlan_objmgr_pdev *pdev,
|
||||||
@@ -387,22 +347,6 @@ QDF_STATUS ucfg_dfs_set_precac_intermediate_chan(struct wlan_objmgr_pdev *pdev,
|
|||||||
QDF_STATUS ucfg_dfs_get_precac_intermediate_chan(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS ucfg_dfs_get_precac_intermediate_chan(struct wlan_objmgr_pdev *pdev,
|
||||||
int *buff);
|
int *buff);
|
||||||
|
|
||||||
/**
|
|
||||||
* ucfg_dfs_get_precac_chan_state() - Get precac status for the given channel.
|
|
||||||
* @pdev: Pointer to DFS pdev object.
|
|
||||||
* @precac_chan: Channel number for which precac state needs to be determined.
|
|
||||||
*
|
|
||||||
* Wrapper function for dfs_get_precac_chan_state().
|
|
||||||
* This function called from outside of dfs component.
|
|
||||||
*
|
|
||||||
* Return: Precac state of the given channel.
|
|
||||||
*/
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
enum precac_chan_state
|
|
||||||
ucfg_dfs_get_precac_chan_state(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t precac_chan);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ucfg_dfs_get_precac_chan_state_for_freq() - Get precac status for the
|
* ucfg_dfs_get_precac_chan_state_for_freq() - Get precac status for the
|
||||||
* given channel.
|
* given channel.
|
||||||
@@ -410,7 +354,7 @@ ucfg_dfs_get_precac_chan_state(struct wlan_objmgr_pdev *pdev,
|
|||||||
* @precac_chan: Channel frequency for which precac state needs to be
|
* @precac_chan: Channel frequency for which precac state needs to be
|
||||||
* determined.
|
* determined.
|
||||||
*
|
*
|
||||||
* Wrapper function for dfs_get_precac_chan_state().
|
* Wrapper function for dfs_get_precac_chan_state_for_freq().
|
||||||
* This function called from outside of dfs component.
|
* This function called from outside of dfs component.
|
||||||
*
|
*
|
||||||
* Return: Precac state of the given channel.
|
* Return: Precac state of the given channel.
|
||||||
|
@@ -84,21 +84,6 @@
|
|||||||
|
|
||||||
extern struct dfs_to_mlme global_dfs_to_mlme;
|
extern struct dfs_to_mlme global_dfs_to_mlme;
|
||||||
|
|
||||||
/**
|
|
||||||
* utils_dfs_cac_valid_reset() - Cancels the dfs_cac_valid_timer timer.
|
|
||||||
* @pdev: Pointer to DFS pdev object.
|
|
||||||
* @prevchan_ieee: Prevchan number.
|
|
||||||
* @prevchan_flags: Prevchan flags.
|
|
||||||
*
|
|
||||||
* Wrapper function for dfs_cac_valid_reset(). This function called from
|
|
||||||
* outside of DFS component.
|
|
||||||
*/
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
QDF_STATUS utils_dfs_cac_valid_reset(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t prevchan_ieee,
|
|
||||||
uint32_t prevchan_flags);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* utils_dfs_cac_valid_reset_for_freq() - Cancels the dfs_cac_valid_timer timer.
|
* utils_dfs_cac_valid_reset_for_freq() - Cancels the dfs_cac_valid_timer timer.
|
||||||
* @pdev: Pointer to DFS pdev object.
|
* @pdev: Pointer to DFS pdev object.
|
||||||
@@ -176,30 +161,12 @@ QDF_STATUS utils_dfs_start_precac_timer(struct wlan_objmgr_pdev *pdev);
|
|||||||
|
|
||||||
#ifdef WLAN_DFS_PRECAC_AUTO_CHAN_SUPPORT
|
#ifdef WLAN_DFS_PRECAC_AUTO_CHAN_SUPPORT
|
||||||
/**
|
/**
|
||||||
* utils_dfs_precac_decide_pref_chan() - Choose preferred channel
|
* utils_dfs_precac_decide_pref_chan_for_freq() - Choose preferred channel
|
||||||
* @pdev: Pointer to DFS pdev object.
|
|
||||||
* @ch_ieee: Pointer to channel number.
|
|
||||||
* @mode: Configured PHY mode.
|
|
||||||
*
|
|
||||||
* Wrapper function for dfs_decide_precac_preferred_chan(). This
|
|
||||||
* function called from outside of dfs component.
|
|
||||||
*
|
|
||||||
* Return: True if intermediate channel needs to configure. False otherwise.
|
|
||||||
*/
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
bool
|
|
||||||
utils_dfs_precac_decide_pref_chan(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t *ch_ieee,
|
|
||||||
enum wlan_phymode mode);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* utils_dfs_precac_decide_pref_chan() - Choose preferred channel
|
|
||||||
* @pdev: Pointer to DFS pdev object.
|
* @pdev: Pointer to DFS pdev object.
|
||||||
* @ch_freq: Pointer to channel frequency.
|
* @ch_freq: Pointer to channel frequency.
|
||||||
* @mode: Configured PHY mode.
|
* @mode: Configured PHY mode.
|
||||||
*
|
*
|
||||||
* Wrapper function for dfs_decide_precac_preferred_chan(). This
|
* Wrapper function for dfs_decide_precac_preferred_chan_for_freq(). This
|
||||||
* function called from outside of dfs component.
|
* function called from outside of dfs component.
|
||||||
*
|
*
|
||||||
* Return: True if intermediate channel needs to configure. False otherwise.
|
* Return: True if intermediate channel needs to configure. False otherwise.
|
||||||
@@ -581,23 +548,6 @@ static inline bool utils_is_dfs_chan_for_freq(struct wlan_objmgr_pdev *pdev,
|
|||||||
*/
|
*/
|
||||||
bool utils_is_dfs_cfreq2_ch(struct wlan_objmgr_pdev *pdev);
|
bool utils_is_dfs_cfreq2_ch(struct wlan_objmgr_pdev *pdev);
|
||||||
|
|
||||||
/**
|
|
||||||
* utils_dfs_reg_update_nol_ch() - set nol channel
|
|
||||||
*
|
|
||||||
* @pdev: pdev ptr
|
|
||||||
* @ch_list: channel list to be returned
|
|
||||||
* @num_ch: number of channels
|
|
||||||
* @nol_ch: nol flag
|
|
||||||
*
|
|
||||||
* Return: void
|
|
||||||
*/
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
void utils_dfs_reg_update_nol_ch(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t *ch_list,
|
|
||||||
uint8_t num_ch,
|
|
||||||
bool nol_ch);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* utils_dfs_reg_update_nol_chan_for_freq() - set nol channel
|
* utils_dfs_reg_update_nol_chan_for_freq() - set nol channel
|
||||||
*
|
*
|
||||||
@@ -800,22 +750,6 @@ void utils_dfs_get_chan_list(struct wlan_objmgr_pdev *pdev,
|
|||||||
*/
|
*/
|
||||||
void utils_dfs_get_nol_history_chan_list(struct wlan_objmgr_pdev *pdev,
|
void utils_dfs_get_nol_history_chan_list(struct wlan_objmgr_pdev *pdev,
|
||||||
void *clist, uint32_t *num_chan);
|
void *clist, uint32_t *num_chan);
|
||||||
/**
|
|
||||||
* utils_dfs_reg_update_nol_history_ch() - set nol history channel
|
|
||||||
*
|
|
||||||
* @pdev: pdev ptr
|
|
||||||
* @ch_list: channel list to be returned
|
|
||||||
* @num_ch: number of channels
|
|
||||||
* @nol_history_ch: nol history flag
|
|
||||||
*
|
|
||||||
* Return: void
|
|
||||||
*/
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
void utils_dfs_reg_update_nol_history_ch(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t *ch_list,
|
|
||||||
uint8_t num_ch,
|
|
||||||
bool nol_history_ch);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* utils_dfs_reg_update_nol_history_chan_for_freq() - set nol history channel
|
* utils_dfs_reg_update_nol_history_chan_for_freq() - set nol history channel
|
||||||
|
@@ -213,34 +213,6 @@ int dfs_mlme_ieee2mhz(struct wlan_objmgr_pdev *pdev, int ieee, uint64_t flag)
|
|||||||
return freq;
|
return freq;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
QDF_STATUS
|
|
||||||
dfs_mlme_find_dot11_channel(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t ieee,
|
|
||||||
uint8_t des_cfreq2,
|
|
||||||
int mode,
|
|
||||||
uint16_t *dfs_ch_freq,
|
|
||||||
uint64_t *dfs_ch_flags,
|
|
||||||
uint16_t *dfs_ch_flagext,
|
|
||||||
uint8_t *dfs_ch_ieee,
|
|
||||||
uint8_t *dfs_ch_vhtop_ch_freq_seg1,
|
|
||||||
uint8_t *dfs_ch_vhtop_ch_freq_seg2)
|
|
||||||
{
|
|
||||||
if (global_dfs_to_mlme.mlme_find_dot11_channel)
|
|
||||||
return global_dfs_to_mlme.mlme_find_dot11_channel(pdev,
|
|
||||||
ieee,
|
|
||||||
des_cfreq2,
|
|
||||||
mode,
|
|
||||||
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_E_FAILURE;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
dfs_mlme_find_dot11_chan_for_freq(struct wlan_objmgr_pdev *pdev,
|
dfs_mlme_find_dot11_chan_for_freq(struct wlan_objmgr_pdev *pdev,
|
||||||
@@ -273,27 +245,6 @@ dfs_mlme_find_dot11_chan_for_freq(struct wlan_objmgr_pdev *pdev,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
void dfs_mlme_get_dfs_ch_channels(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint16_t *dfs_ch_freq,
|
|
||||||
uint64_t *dfs_ch_flags,
|
|
||||||
uint16_t *dfs_ch_flagext,
|
|
||||||
uint8_t *dfs_ch_ieee,
|
|
||||||
uint8_t *dfs_ch_vhtop_ch_freq_seg1,
|
|
||||||
uint8_t *dfs_ch_vhtop_ch_freq_seg2,
|
|
||||||
int index)
|
|
||||||
{
|
|
||||||
if (global_dfs_to_mlme.mlme_get_dfs_ch_channels)
|
|
||||||
global_dfs_to_mlme.mlme_get_dfs_ch_channels(pdev,
|
|
||||||
dfs_ch_freq,
|
|
||||||
dfs_ch_flags,
|
|
||||||
dfs_ch_flagext,
|
|
||||||
dfs_ch_ieee,
|
|
||||||
dfs_ch_vhtop_ch_freq_seg1,
|
|
||||||
dfs_ch_vhtop_ch_freq_seg2,
|
|
||||||
index);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
uint32_t dfs_mlme_dfs_ch_flags_ext(struct wlan_objmgr_pdev *pdev)
|
uint32_t dfs_mlme_dfs_ch_flags_ext(struct wlan_objmgr_pdev *pdev)
|
||||||
{
|
{
|
||||||
@@ -330,25 +281,6 @@ void dfs_mlme_clist_update(struct wlan_objmgr_pdev *pdev,
|
|||||||
nentries);
|
nentries);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
int dfs_mlme_get_cac_timeout(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint16_t dfs_ch_freq,
|
|
||||||
uint8_t dfs_ch_vhtop_ch_freq_seg2,
|
|
||||||
uint64_t dfs_ch_flags)
|
|
||||||
{
|
|
||||||
int cac_timeout = 0;
|
|
||||||
|
|
||||||
if (global_dfs_to_mlme.mlme_get_cac_timeout)
|
|
||||||
global_dfs_to_mlme.mlme_get_cac_timeout(pdev,
|
|
||||||
dfs_ch_freq,
|
|
||||||
dfs_ch_vhtop_ch_freq_seg2,
|
|
||||||
dfs_ch_flags,
|
|
||||||
&cac_timeout);
|
|
||||||
|
|
||||||
return cac_timeout;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
int dfs_mlme_get_cac_timeout_for_freq(struct wlan_objmgr_pdev *pdev,
|
int dfs_mlme_get_cac_timeout_for_freq(struct wlan_objmgr_pdev *pdev,
|
||||||
uint16_t dfs_chan_freq,
|
uint16_t dfs_chan_freq,
|
||||||
|
@@ -81,39 +81,6 @@ bool tgt_dfs_is_pdev_5ghz(struct wlan_objmgr_pdev *pdev)
|
|||||||
return is_5ghz;
|
return is_5ghz;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
QDF_STATUS tgt_dfs_set_current_channel(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint16_t dfs_ch_freq,
|
|
||||||
uint64_t dfs_ch_flags,
|
|
||||||
uint16_t dfs_ch_flagext,
|
|
||||||
uint8_t dfs_ch_ieee,
|
|
||||||
uint8_t dfs_ch_vhtop_ch_freq_seg1,
|
|
||||||
uint8_t dfs_ch_vhtop_ch_freq_seg2)
|
|
||||||
{
|
|
||||||
struct wlan_dfs *dfs;
|
|
||||||
|
|
||||||
if (!tgt_dfs_is_pdev_5ghz(pdev))
|
|
||||||
return QDF_STATUS_SUCCESS;
|
|
||||||
|
|
||||||
dfs = wlan_pdev_get_dfs_obj(pdev);
|
|
||||||
if (!dfs) {
|
|
||||||
dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "dfs is NULL");
|
|
||||||
return QDF_STATUS_E_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
dfs_set_current_channel(dfs,
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
qdf_export_symbol(tgt_dfs_set_current_channel);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
tgt_dfs_set_current_channel_for_freq(struct wlan_objmgr_pdev *pdev,
|
tgt_dfs_set_current_channel_for_freq(struct wlan_objmgr_pdev *pdev,
|
||||||
@@ -483,51 +450,6 @@ QDF_STATUS tgt_dfs_set_agile_precac_state(struct wlan_objmgr_pdev *pdev,
|
|||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
QDF_STATUS tgt_dfs_set_agile_precac_state(struct wlan_objmgr_pdev *pdev,
|
|
||||||
int agile_precac_state)
|
|
||||||
{
|
|
||||||
struct wlan_dfs *dfs;
|
|
||||||
struct dfs_soc_priv_obj *dfs_soc;
|
|
||||||
bool is_precac_running_on_given_pdev = false;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
if (!tgt_dfs_is_pdev_5ghz(pdev))
|
|
||||||
return QDF_STATUS_SUCCESS;
|
|
||||||
|
|
||||||
dfs = wlan_pdev_get_dfs_obj(pdev);
|
|
||||||
if (!dfs) {
|
|
||||||
dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "dfs is NULL");
|
|
||||||
return QDF_STATUS_E_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
dfs_soc = dfs->dfs_soc_obj;
|
|
||||||
for (i = 0; i < dfs_soc->num_dfs_privs; i++) {
|
|
||||||
if (dfs_soc->dfs_priv[i].dfs == dfs) {
|
|
||||||
/* Set the pdev state to given value. */
|
|
||||||
dfs_soc->dfs_priv[i].agile_precac_active =
|
|
||||||
agile_precac_state;
|
|
||||||
/* If the pdev state is changed to inactive,
|
|
||||||
* reset the agile channel.
|
|
||||||
*/
|
|
||||||
if (!agile_precac_state)
|
|
||||||
dfs->dfs_agile_precac_freq = 0;
|
|
||||||
if (dfs_soc->cur_agile_dfs_index == i)
|
|
||||||
is_precac_running_on_given_pdev = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* If preCAC is running on this pdev and the agile_precac_state
|
|
||||||
* is set to false, set the global state in dfs_soc_obj to false.
|
|
||||||
* If this global state is not set to false, then preCAC will not be
|
|
||||||
* started the next time this pdev becomes active.
|
|
||||||
*/
|
|
||||||
if (is_precac_running_on_given_pdev && !agile_precac_state)
|
|
||||||
dfs_soc->precac_state_started = PRECAC_NOT_STARTED;
|
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
@@ -573,38 +495,6 @@ QDF_STATUS tgt_dfs_ocac_complete(struct wlan_objmgr_pdev *pdev,
|
|||||||
#endif
|
#endif
|
||||||
qdf_export_symbol(tgt_dfs_ocac_complete);
|
qdf_export_symbol(tgt_dfs_ocac_complete);
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
QDF_STATUS tgt_dfs_find_vht80_chan_for_precac(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint32_t chan_mode,
|
|
||||||
uint8_t ch_freq_seg1,
|
|
||||||
uint32_t *cfreq1,
|
|
||||||
uint32_t *cfreq2,
|
|
||||||
uint32_t *phy_mode,
|
|
||||||
bool *dfs_set_cfreq2,
|
|
||||||
bool *set_agile)
|
|
||||||
{
|
|
||||||
struct wlan_dfs *dfs;
|
|
||||||
|
|
||||||
dfs = wlan_pdev_get_dfs_obj(pdev);
|
|
||||||
if (!dfs) {
|
|
||||||
dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "dfs is NULL");
|
|
||||||
return QDF_STATUS_E_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
dfs_find_vht80_chan_for_precac(dfs,
|
|
||||||
chan_mode,
|
|
||||||
ch_freq_seg1,
|
|
||||||
cfreq1,
|
|
||||||
cfreq2,
|
|
||||||
phy_mode,
|
|
||||||
dfs_set_cfreq2,
|
|
||||||
set_agile);
|
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
qdf_export_symbol(tgt_dfs_find_vht80_chan_for_precac);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
tgt_dfs_find_vht80_precac_chan_freq(struct wlan_objmgr_pdev *pdev,
|
tgt_dfs_find_vht80_precac_chan_freq(struct wlan_objmgr_pdev *pdev,
|
||||||
|
@@ -250,30 +250,6 @@ QDF_STATUS ucfg_dfs_get_precac_intermediate_chan(struct wlan_objmgr_pdev *pdev,
|
|||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
enum precac_chan_state
|
|
||||||
ucfg_dfs_get_precac_chan_state(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t precac_chan)
|
|
||||||
{
|
|
||||||
struct wlan_dfs *dfs;
|
|
||||||
enum precac_chan_state retval = PRECAC_ERR;
|
|
||||||
|
|
||||||
dfs = wlan_pdev_get_dfs_obj(pdev);
|
|
||||||
if (!dfs) {
|
|
||||||
dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "null dfs");
|
|
||||||
return PRECAC_ERR;
|
|
||||||
}
|
|
||||||
|
|
||||||
retval = dfs_get_precac_chan_state(dfs, precac_chan);
|
|
||||||
if (retval == PRECAC_ERR) {
|
|
||||||
dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS,
|
|
||||||
"Could not find precac channel state");
|
|
||||||
}
|
|
||||||
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
enum precac_chan_state
|
enum precac_chan_state
|
||||||
ucfg_dfs_get_precac_chan_state_for_freq(struct wlan_objmgr_pdev *pdev,
|
ucfg_dfs_get_precac_chan_state_for_freq(struct wlan_objmgr_pdev *pdev,
|
||||||
|
@@ -153,44 +153,9 @@ QDF_STATUS utils_dfs_start_precac_timer(struct wlan_objmgr_pdev *pdev)
|
|||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
QDF_STATUS utils_dfs_start_precac_timer(struct wlan_objmgr_pdev *pdev)
|
|
||||||
{
|
|
||||||
struct wlan_dfs *dfs;
|
|
||||||
|
|
||||||
dfs = wlan_pdev_get_dfs_obj(pdev);
|
|
||||||
if (!dfs) {
|
|
||||||
dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "NULL dfs");
|
|
||||||
return QDF_STATUS_E_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!dfs->dfs_precac_secondary_freq)
|
|
||||||
return QDF_STATUS_E_FAILURE;
|
|
||||||
dfs_start_precac_timer(dfs,
|
|
||||||
dfs->dfs_precac_secondary_freq);
|
|
||||||
return QDF_STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WLAN_DFS_PRECAC_AUTO_CHAN_SUPPORT
|
#ifdef WLAN_DFS_PRECAC_AUTO_CHAN_SUPPORT
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
bool
|
|
||||||
utils_dfs_precac_decide_pref_chan(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t *ch_ieee,
|
|
||||||
enum wlan_phymode mode)
|
|
||||||
{
|
|
||||||
struct wlan_dfs *dfs;
|
|
||||||
|
|
||||||
dfs = wlan_pdev_get_dfs_obj(pdev);
|
|
||||||
if (!dfs) {
|
|
||||||
dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "NULL dfs");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return dfs_decide_precac_preferred_chan(dfs, ch_ieee, mode);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
bool
|
bool
|
||||||
utils_dfs_precac_decide_pref_chan_for_freq(struct wlan_objmgr_pdev *pdev,
|
utils_dfs_precac_decide_pref_chan_for_freq(struct wlan_objmgr_pdev *pdev,
|
||||||
@@ -1118,18 +1083,6 @@ void utils_dfs_clear_nol_channels(struct wlan_objmgr_pdev *pdev)
|
|||||||
}
|
}
|
||||||
qdf_export_symbol(utils_dfs_clear_nol_channels);
|
qdf_export_symbol(utils_dfs_clear_nol_channels);
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
void utils_dfs_reg_update_nol_ch(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t *ch_list,
|
|
||||||
uint8_t num_ch,
|
|
||||||
bool nol_ch)
|
|
||||||
{
|
|
||||||
/* TODO : Need locking?*/
|
|
||||||
wlan_reg_update_nol_ch(pdev, ch_list, num_ch, nol_ch);
|
|
||||||
}
|
|
||||||
qdf_export_symbol(utils_dfs_reg_update_nol_ch);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
void utils_dfs_reg_update_nol_chan_for_freq(struct wlan_objmgr_pdev *pdev,
|
void utils_dfs_reg_update_nol_chan_for_freq(struct wlan_objmgr_pdev *pdev,
|
||||||
uint16_t *freq_list,
|
uint16_t *freq_list,
|
||||||
@@ -1142,16 +1095,6 @@ void utils_dfs_reg_update_nol_chan_for_freq(struct wlan_objmgr_pdev *pdev,
|
|||||||
qdf_export_symbol(utils_dfs_reg_update_nol_chan_for_freq);
|
qdf_export_symbol(utils_dfs_reg_update_nol_chan_for_freq);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
void utils_dfs_reg_update_nol_history_ch(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t *ch_list,
|
|
||||||
uint8_t num_ch,
|
|
||||||
bool nol_history_ch)
|
|
||||||
{
|
|
||||||
wlan_reg_update_nol_history_ch(pdev, ch_list, num_ch, nol_history_ch);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
void
|
void
|
||||||
utils_dfs_reg_update_nol_history_chan_for_freq(struct wlan_objmgr_pdev *pdev,
|
utils_dfs_reg_update_nol_history_chan_for_freq(struct wlan_objmgr_pdev *pdev,
|
||||||
|
@@ -1520,7 +1520,6 @@ struct wlan_lmac_if_wifi_pos_rx_ops {
|
|||||||
* @dfs_is_radar_enabled: Check if the radar is enabled.
|
* @dfs_is_radar_enabled: Check if the radar is enabled.
|
||||||
* @dfs_control: Used to process ioctls related to DFS.
|
* @dfs_control: Used to process ioctls related to DFS.
|
||||||
* @dfs_is_precac_timer_running: Check whether precac timer is running.
|
* @dfs_is_precac_timer_running: Check whether precac timer is running.
|
||||||
* @dfs_find_vht80_chan_for_precac: Find VHT80 channel for precac.
|
|
||||||
* @dfs_cancel_precac_timer: Cancel the precac timer.
|
* @dfs_cancel_precac_timer: Cancel the precac timer.
|
||||||
* @dfs_override_precac_timeout: Override the default precac timeout.
|
* @dfs_override_precac_timeout: Override the default precac timeout.
|
||||||
* @dfs_set_precac_enable: Set precac enable flag.
|
* @dfs_set_precac_enable: Set precac enable flag.
|
||||||
@@ -1530,16 +1529,16 @@ struct wlan_lmac_if_wifi_pos_rx_ops {
|
|||||||
* @dfs_get_precac_intermediate_chan: Get intermediate channel for precac.
|
* @dfs_get_precac_intermediate_chan: Get intermediate channel for precac.
|
||||||
* @dfs_precac_preferred_chan: Configure preferred channel during
|
* @dfs_precac_preferred_chan: Configure preferred channel during
|
||||||
* precac.
|
* precac.
|
||||||
* dfs_get_precac_chan_state: Get precac status for given channel.
|
* dfs_get_precac_chan_state_for_freq:Get precac status for given channel.
|
||||||
* dfs_start_precac_timer: Start precac timer.
|
* dfs_start_precac_timer: Start precac timer.
|
||||||
* @dfs_get_override_precac_timeout: Get precac timeout.
|
* @dfs_get_override_precac_timeout: Get precac timeout.
|
||||||
* @dfs_set_current_channel: Set DFS current channel.
|
|
||||||
* @dfs_process_radar_ind: Process radar found indication.
|
* @dfs_process_radar_ind: Process radar found indication.
|
||||||
* @dfs_dfs_cac_complete_ind: Process cac complete indication.
|
* @dfs_dfs_cac_complete_ind: Process cac complete indication.
|
||||||
* @dfs_agile_precac_start: Initiate Agile PreCAC run.
|
* @dfs_agile_precac_start: Initiate Agile PreCAC run.
|
||||||
* @dfs_set_agile_precac_state: Set agile precac state.
|
* @dfs_set_agile_precac_state: Set agile precac state.
|
||||||
* @dfs_reset_adfs_config: Reset agile dfs variables.
|
* @dfs_reset_adfs_config: Reset agile dfs variables.
|
||||||
* @dfs_dfs_ocac_complete_ind: Process offchan cac complete indication.
|
* @dfs_dfs_ocac_complete_ind: Process offchan cac complete indication.
|
||||||
|
* dfs_start_precac_timer: Start precac timer.
|
||||||
* @dfs_stop: Clear dfs timers.
|
* @dfs_stop: Clear dfs timers.
|
||||||
* @dfs_reinit_timers: Reinitialize DFS timers.
|
* @dfs_reinit_timers: Reinitialize DFS timers.
|
||||||
* @dfs_enable_stadfs: Enable/Disable STADFS capability.
|
* @dfs_enable_stadfs: Enable/Disable STADFS capability.
|
||||||
@@ -1603,17 +1602,6 @@ struct wlan_lmac_if_dfs_rx_ops {
|
|||||||
QDF_STATUS (*dfs_is_precac_timer_running)(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS (*dfs_is_precac_timer_running)(struct wlan_objmgr_pdev *pdev,
|
||||||
bool *is_precac_timer_running
|
bool *is_precac_timer_running
|
||||||
);
|
);
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
QDF_STATUS
|
|
||||||
(*dfs_find_vht80_chan_for_precac)(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint32_t chan_mode,
|
|
||||||
uint8_t ch_freq_seg1,
|
|
||||||
uint32_t *cfreq1,
|
|
||||||
uint32_t *cfreq2,
|
|
||||||
uint32_t *phy_mode,
|
|
||||||
bool *dfs_set_cfreq2,
|
|
||||||
bool *set_agile);
|
|
||||||
#endif
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
(*dfs_find_vht80_chan_for_precac_for_freq)(struct wlan_objmgr_pdev
|
(*dfs_find_vht80_chan_for_precac_for_freq)(struct wlan_objmgr_pdev
|
||||||
@@ -1650,24 +1638,12 @@ struct wlan_lmac_if_dfs_rx_ops {
|
|||||||
uint32_t value);
|
uint32_t value);
|
||||||
QDF_STATUS (*dfs_get_precac_intermediate_chan)(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS (*dfs_get_precac_intermediate_chan)(struct wlan_objmgr_pdev *pdev,
|
||||||
int *buff);
|
int *buff);
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
bool (*dfs_decide_precac_preferred_chan)(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t *pref_chan,
|
|
||||||
enum wlan_phymode mode);
|
|
||||||
#endif
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
bool (*dfs_decide_precac_preferred_chan_for_freq)(struct
|
bool (*dfs_decide_precac_preferred_chan_for_freq)(struct
|
||||||
wlan_objmgr_pdev *pdev,
|
wlan_objmgr_pdev *pdev,
|
||||||
uint16_t *pref_chan_freq,
|
uint16_t *pref_chan_freq,
|
||||||
enum wlan_phymode mode);
|
enum wlan_phymode mode);
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
enum precac_chan_state (*dfs_get_precac_chan_state)(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t precac_chan);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
|
||||||
enum precac_chan_state (*dfs_get_precac_chan_state_for_freq)(struct
|
enum precac_chan_state (*dfs_get_precac_chan_state_for_freq)(struct
|
||||||
wlan_objmgr_pdev *pdev,
|
wlan_objmgr_pdev *pdev,
|
||||||
uint16_t pcac_freq);
|
uint16_t pcac_freq);
|
||||||
@@ -1676,15 +1652,6 @@ struct wlan_lmac_if_dfs_rx_ops {
|
|||||||
QDF_STATUS (*dfs_get_override_precac_timeout)(
|
QDF_STATUS (*dfs_get_override_precac_timeout)(
|
||||||
struct wlan_objmgr_pdev *pdev,
|
struct wlan_objmgr_pdev *pdev,
|
||||||
int *precac_timeout);
|
int *precac_timeout);
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
QDF_STATUS (*dfs_set_current_channel)(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint16_t ic_freq,
|
|
||||||
uint64_t ic_flags,
|
|
||||||
uint16_t ic_flagext,
|
|
||||||
uint8_t ic_ieee,
|
|
||||||
uint8_t ic_vhtop_ch_freq_seg1,
|
|
||||||
uint8_t ic_vhtop_ch_freq_seg2);
|
|
||||||
#endif
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
(*dfs_set_current_channel_for_freq)(struct wlan_objmgr_pdev *pdev,
|
(*dfs_set_current_channel_for_freq)(struct wlan_objmgr_pdev *pdev,
|
||||||
|
@@ -420,28 +420,6 @@ static void wlan_lmac_if_umac_rx_ops_register_p2p(
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
|
||||||
* register_precac_auto_chan_rx_ops_ieee() - Register auto chan switch rx ops
|
|
||||||
* for IEEE channel based APIs.
|
|
||||||
* rx_ops: Pointer to wlan_lmac_if_dfs_rx_ops
|
|
||||||
*/
|
|
||||||
#ifdef DFS_COMPONENT_ENABLE
|
|
||||||
#if defined(WLAN_DFS_PRECAC_AUTO_CHAN_SUPPORT) && defined(CONFIG_CHAN_NUM_API)
|
|
||||||
static inline void
|
|
||||||
register_precac_auto_chan_rx_ops_ieee(struct wlan_lmac_if_dfs_rx_ops *rx_ops)
|
|
||||||
{
|
|
||||||
if (!rx_ops)
|
|
||||||
return;
|
|
||||||
rx_ops->dfs_get_precac_chan_state = ucfg_dfs_get_precac_chan_state;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
static inline void
|
|
||||||
register_precac_auto_chan_rx_ops_ieee(struct wlan_lmac_if_dfs_rx_ops *rx_ops)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* register_precac_auto_chan_rx_ops_freq() - Register auto chan switch rx ops
|
* register_precac_auto_chan_rx_ops_freq() - Register auto chan switch rx ops
|
||||||
* for frequency based channel APIs.
|
* for frequency based channel APIs.
|
||||||
@@ -647,7 +625,6 @@ wlan_lmac_if_umac_dfs_rx_ops_register(struct wlan_lmac_if_rx_ops *rx_ops)
|
|||||||
dfs_rx_ops->dfs_complete_deferred_tasks =
|
dfs_rx_ops->dfs_complete_deferred_tasks =
|
||||||
tgt_dfs_complete_deferred_tasks;
|
tgt_dfs_complete_deferred_tasks;
|
||||||
register_precac_auto_chan_rx_ops(dfs_rx_ops);
|
register_precac_auto_chan_rx_ops(dfs_rx_ops);
|
||||||
register_precac_auto_chan_rx_ops_ieee(dfs_rx_ops);
|
|
||||||
register_precac_auto_chan_rx_ops_freq(dfs_rx_ops);
|
register_precac_auto_chan_rx_ops_freq(dfs_rx_ops);
|
||||||
register_dfs_rx_ops_for_freq(dfs_rx_ops);
|
register_dfs_rx_ops_for_freq(dfs_rx_ops);
|
||||||
register_rcac_dfs_rx_ops(dfs_rx_ops);
|
register_rcac_dfs_rx_ops(dfs_rx_ops);
|
||||||
|
@@ -772,8 +772,9 @@ reg_modify_chan_list_for_srd_channels(struct wlan_objmgr_pdev *pdev,
|
|||||||
if (chan_list[chan_enum].chan_flags & REGULATORY_CHAN_DISABLED)
|
if (chan_list[chan_enum].chan_flags & REGULATORY_CHAN_DISABLED)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (reg_is_etsi13_srd_chan(pdev,
|
if (reg_is_etsi13_srd_chan_for_freq(
|
||||||
chan_list[chan_enum].chan_num)) {
|
pdev,
|
||||||
|
chan_list[chan_enum].center_freq)) {
|
||||||
chan_list[chan_enum].state =
|
chan_list[chan_enum].state =
|
||||||
CHANNEL_STATE_DFS;
|
CHANNEL_STATE_DFS;
|
||||||
chan_list[chan_enum].chan_flags |=
|
chan_list[chan_enum].chan_flags |=
|
||||||
|
@@ -121,21 +121,4 @@ QDF_STATUS
|
|||||||
reg_get_secondary_current_chan_list(struct wlan_objmgr_pdev *pdev,
|
reg_get_secondary_current_chan_list(struct wlan_objmgr_pdev *pdev,
|
||||||
struct regulatory_channel *chan_list);
|
struct regulatory_channel *chan_list);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
|
||||||
* reg_update_nol_history_ch() - Set nol-history flag for the channels in the
|
|
||||||
* list.
|
|
||||||
*
|
|
||||||
* @pdev: Pdev ptr.
|
|
||||||
* @ch_list: Input channel list.
|
|
||||||
* @num_ch: Number of channels.
|
|
||||||
* @nol_history_ch: NOL-History flag.
|
|
||||||
*
|
|
||||||
* Return: void
|
|
||||||
*/
|
|
||||||
void reg_update_nol_history_ch(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t *chan_list,
|
|
||||||
uint8_t num_chan,
|
|
||||||
bool nol_history_chan);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -41,40 +41,6 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
const struct chan_map *channel_map;
|
const struct chan_map *channel_map;
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
static const struct bonded_channel bonded_chan_40mhz_list[] = {
|
|
||||||
{36, 40},
|
|
||||||
{44, 48},
|
|
||||||
{52, 56},
|
|
||||||
{60, 64},
|
|
||||||
{100, 104},
|
|
||||||
{108, 112},
|
|
||||||
{116, 120},
|
|
||||||
{124, 128},
|
|
||||||
{132, 136},
|
|
||||||
{140, 144},
|
|
||||||
{149, 153},
|
|
||||||
{157, 161},
|
|
||||||
{165, 169},
|
|
||||||
{173, 177}
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct bonded_channel bonded_chan_80mhz_list[] = {
|
|
||||||
{36, 48},
|
|
||||||
{52, 64},
|
|
||||||
{100, 112},
|
|
||||||
{116, 128},
|
|
||||||
{132, 144},
|
|
||||||
{149, 161},
|
|
||||||
{165, 177}
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct bonded_channel bonded_chan_160mhz_list[] = {
|
|
||||||
{36, 64},
|
|
||||||
{100, 128},
|
|
||||||
{149, 177}
|
|
||||||
};
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
/* bonded_chan_40mhz_list_freq - List of 40MHz bonnded channel frequencies */
|
/* bonded_chan_40mhz_list_freq - List of 40MHz bonnded channel frequencies */
|
||||||
@@ -1160,241 +1126,6 @@ struct wlan_lmac_if_reg_tx_ops *reg_get_psoc_tx_ops(
|
|||||||
return &tx_ops->reg_ops;
|
return &tx_ops->reg_ops;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
enum channel_enum reg_get_chan_enum(uint8_t chan_num)
|
|
||||||
{
|
|
||||||
uint32_t count;
|
|
||||||
|
|
||||||
for (count = 0; count < NUM_CHANNELS; count++)
|
|
||||||
if (channel_map[count].chan_num == chan_num)
|
|
||||||
return count;
|
|
||||||
|
|
||||||
reg_err_rl("invalid channel number %d", chan_num);
|
|
||||||
|
|
||||||
return INVALID_CHANNEL;
|
|
||||||
}
|
|
||||||
|
|
||||||
enum channel_state reg_get_channel_state(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t ch)
|
|
||||||
{
|
|
||||||
enum channel_enum ch_idx;
|
|
||||||
struct wlan_regulatory_pdev_priv_obj *pdev_priv_obj;
|
|
||||||
|
|
||||||
ch_idx = reg_get_chan_enum(ch);
|
|
||||||
|
|
||||||
if (ch_idx == INVALID_CHANNEL)
|
|
||||||
return CHANNEL_STATE_INVALID;
|
|
||||||
|
|
||||||
pdev_priv_obj = reg_get_pdev_obj(pdev);
|
|
||||||
|
|
||||||
if (!IS_VALID_PDEV_REG_OBJ(pdev_priv_obj)) {
|
|
||||||
reg_err("pdev reg obj is NULL");
|
|
||||||
return CHANNEL_STATE_INVALID;
|
|
||||||
}
|
|
||||||
|
|
||||||
return pdev_priv_obj->cur_chan_list[ch_idx].state;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* reg_get_5g_bonded_chan_array() - get ptr to bonded channel
|
|
||||||
* @pdev: Pointer to pdev structure
|
|
||||||
* @oper_ch: operating channel number
|
|
||||||
* @bonded_chan_ar: bonded channel array
|
|
||||||
* @array_size; Array size
|
|
||||||
* @bonded_chan_ptr_ptr: bonded channel ptr ptr
|
|
||||||
*
|
|
||||||
* Return: bonded channel state
|
|
||||||
*/
|
|
||||||
static enum channel_state reg_get_5g_bonded_chan_array(
|
|
||||||
struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t oper_chan,
|
|
||||||
const struct bonded_channel bonded_chan_ar[],
|
|
||||||
uint16_t array_size,
|
|
||||||
const struct bonded_channel **bonded_chan_ptr_ptr)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
uint8_t chan_num;
|
|
||||||
const struct bonded_channel *bonded_chan_ptr = NULL;
|
|
||||||
enum channel_state chan_state = CHANNEL_STATE_INVALID;
|
|
||||||
enum channel_state temp_chan_state;
|
|
||||||
|
|
||||||
for (i = 0; i < array_size; i++) {
|
|
||||||
if ((oper_chan >= bonded_chan_ar[i].start_ch) &&
|
|
||||||
(oper_chan <= bonded_chan_ar[i].end_ch)) {
|
|
||||||
bonded_chan_ptr = &bonded_chan_ar[i];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!bonded_chan_ptr)
|
|
||||||
return chan_state;
|
|
||||||
|
|
||||||
*bonded_chan_ptr_ptr = bonded_chan_ptr;
|
|
||||||
chan_num = bonded_chan_ptr->start_ch;
|
|
||||||
while (chan_num <= bonded_chan_ptr->end_ch) {
|
|
||||||
temp_chan_state = reg_get_channel_state(pdev, chan_num);
|
|
||||||
if (temp_chan_state < chan_state)
|
|
||||||
chan_state = temp_chan_state;
|
|
||||||
chan_num = chan_num + 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
return chan_state;
|
|
||||||
}
|
|
||||||
|
|
||||||
enum channel_state reg_get_5g_bonded_channel(
|
|
||||||
struct wlan_objmgr_pdev *pdev, uint8_t chan_num,
|
|
||||||
enum phy_ch_width ch_width,
|
|
||||||
const struct bonded_channel **bonded_chan_ptr_ptr)
|
|
||||||
{
|
|
||||||
if (ch_width == CH_WIDTH_80P80MHZ)
|
|
||||||
return reg_get_5g_bonded_chan_array(pdev, chan_num,
|
|
||||||
bonded_chan_80mhz_list,
|
|
||||||
QDF_ARRAY_SIZE(bonded_chan_80mhz_list),
|
|
||||||
bonded_chan_ptr_ptr);
|
|
||||||
else if (ch_width == CH_WIDTH_160MHZ)
|
|
||||||
return reg_get_5g_bonded_chan_array(pdev, chan_num,
|
|
||||||
bonded_chan_160mhz_list,
|
|
||||||
QDF_ARRAY_SIZE(bonded_chan_160mhz_list),
|
|
||||||
bonded_chan_ptr_ptr);
|
|
||||||
else if (ch_width == CH_WIDTH_80MHZ)
|
|
||||||
return reg_get_5g_bonded_chan_array(pdev, chan_num,
|
|
||||||
bonded_chan_80mhz_list,
|
|
||||||
QDF_ARRAY_SIZE(bonded_chan_80mhz_list),
|
|
||||||
bonded_chan_ptr_ptr);
|
|
||||||
else if (ch_width == CH_WIDTH_40MHZ)
|
|
||||||
return reg_get_5g_bonded_chan_array(pdev, chan_num,
|
|
||||||
bonded_chan_40mhz_list,
|
|
||||||
QDF_ARRAY_SIZE(bonded_chan_40mhz_list),
|
|
||||||
bonded_chan_ptr_ptr);
|
|
||||||
else
|
|
||||||
return reg_get_channel_state(pdev, chan_num);
|
|
||||||
}
|
|
||||||
|
|
||||||
enum channel_state reg_get_5g_bonded_channel_state(
|
|
||||||
struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t ch, enum phy_ch_width bw)
|
|
||||||
{
|
|
||||||
enum channel_enum ch_indx;
|
|
||||||
enum channel_state chan_state;
|
|
||||||
struct regulatory_channel *reg_channels;
|
|
||||||
struct wlan_regulatory_pdev_priv_obj *pdev_priv_obj;
|
|
||||||
bool bw_enabled = false;
|
|
||||||
const struct bonded_channel *bonded_chan_ptr = NULL;
|
|
||||||
|
|
||||||
if (bw > CH_WIDTH_80P80MHZ) {
|
|
||||||
reg_err("bw passed is not good");
|
|
||||||
return CHANNEL_STATE_INVALID;
|
|
||||||
}
|
|
||||||
|
|
||||||
chan_state = reg_get_5g_bonded_channel(pdev, ch, bw, &bonded_chan_ptr);
|
|
||||||
|
|
||||||
if ((chan_state == CHANNEL_STATE_INVALID) ||
|
|
||||||
(chan_state == CHANNEL_STATE_DISABLE))
|
|
||||||
return chan_state;
|
|
||||||
|
|
||||||
pdev_priv_obj = reg_get_pdev_obj(pdev);
|
|
||||||
|
|
||||||
if (!IS_VALID_PDEV_REG_OBJ(pdev_priv_obj)) {
|
|
||||||
reg_err("pdev reg obj is NULL");
|
|
||||||
return CHANNEL_STATE_INVALID;
|
|
||||||
}
|
|
||||||
reg_channels = pdev_priv_obj->cur_chan_list;
|
|
||||||
|
|
||||||
ch_indx = reg_get_chan_enum(ch);
|
|
||||||
if (ch_indx == INVALID_CHANNEL)
|
|
||||||
return CHANNEL_STATE_INVALID;
|
|
||||||
if (bw == CH_WIDTH_5MHZ)
|
|
||||||
bw_enabled = true;
|
|
||||||
else if (bw == CH_WIDTH_10MHZ)
|
|
||||||
bw_enabled = (reg_channels[ch_indx].min_bw <= 10) &&
|
|
||||||
(reg_channels[ch_indx].max_bw >= 10);
|
|
||||||
else if (bw == CH_WIDTH_20MHZ)
|
|
||||||
bw_enabled = (reg_channels[ch_indx].min_bw <= 20) &&
|
|
||||||
(reg_channels[ch_indx].max_bw >= 20);
|
|
||||||
else if (bw == CH_WIDTH_40MHZ)
|
|
||||||
bw_enabled = (reg_channels[ch_indx].min_bw <= 40) &&
|
|
||||||
(reg_channels[ch_indx].max_bw >= 40);
|
|
||||||
else if (bw == CH_WIDTH_80MHZ)
|
|
||||||
bw_enabled = (reg_channels[ch_indx].min_bw <= 80) &&
|
|
||||||
(reg_channels[ch_indx].max_bw >= 80);
|
|
||||||
else if (bw == CH_WIDTH_160MHZ)
|
|
||||||
bw_enabled = (reg_channels[ch_indx].min_bw <= 160) &&
|
|
||||||
(reg_channels[ch_indx].max_bw >= 160);
|
|
||||||
else if (bw == CH_WIDTH_80P80MHZ)
|
|
||||||
bw_enabled = (reg_channels[ch_indx].min_bw <= 80) &&
|
|
||||||
(reg_channels[ch_indx].max_bw >= 80);
|
|
||||||
|
|
||||||
if (bw_enabled)
|
|
||||||
return chan_state;
|
|
||||||
else
|
|
||||||
return CHANNEL_STATE_DISABLE;
|
|
||||||
}
|
|
||||||
|
|
||||||
enum channel_state reg_get_2g_bonded_channel_state(
|
|
||||||
struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t oper_ch, uint8_t sec_ch,
|
|
||||||
enum phy_ch_width bw)
|
|
||||||
{
|
|
||||||
enum channel_enum chan_idx;
|
|
||||||
enum channel_state chan_state;
|
|
||||||
struct regulatory_channel *reg_channels;
|
|
||||||
struct wlan_regulatory_pdev_priv_obj *pdev_priv_obj;
|
|
||||||
bool bw_enabled = false;
|
|
||||||
enum channel_state chan_state2 = CHANNEL_STATE_INVALID;
|
|
||||||
|
|
||||||
if (bw > CH_WIDTH_40MHZ)
|
|
||||||
return CHANNEL_STATE_INVALID;
|
|
||||||
|
|
||||||
if (bw == CH_WIDTH_40MHZ) {
|
|
||||||
if ((sec_ch + 4 != oper_ch) &&
|
|
||||||
(oper_ch + 4 != sec_ch))
|
|
||||||
return CHANNEL_STATE_INVALID;
|
|
||||||
chan_state2 = reg_get_channel_state(pdev, sec_ch);
|
|
||||||
if (chan_state2 == CHANNEL_STATE_INVALID)
|
|
||||||
return chan_state2;
|
|
||||||
}
|
|
||||||
|
|
||||||
pdev_priv_obj = reg_get_pdev_obj(pdev);
|
|
||||||
|
|
||||||
if (!IS_VALID_PDEV_REG_OBJ(pdev_priv_obj)) {
|
|
||||||
reg_err("reg pdev priv obj is NULL");
|
|
||||||
return CHANNEL_STATE_INVALID;
|
|
||||||
}
|
|
||||||
|
|
||||||
reg_channels = pdev_priv_obj->cur_chan_list;
|
|
||||||
|
|
||||||
chan_state = reg_get_channel_state(pdev, oper_ch);
|
|
||||||
if (chan_state2 < chan_state)
|
|
||||||
chan_state = chan_state2;
|
|
||||||
|
|
||||||
if ((chan_state == CHANNEL_STATE_INVALID) ||
|
|
||||||
(chan_state == CHANNEL_STATE_DISABLE))
|
|
||||||
return chan_state;
|
|
||||||
|
|
||||||
chan_idx = reg_get_chan_enum(oper_ch);
|
|
||||||
if (chan_idx == INVALID_CHANNEL)
|
|
||||||
return CHANNEL_STATE_INVALID;
|
|
||||||
if (bw == CH_WIDTH_5MHZ)
|
|
||||||
bw_enabled = true;
|
|
||||||
else if (bw == CH_WIDTH_10MHZ)
|
|
||||||
bw_enabled = (reg_channels[chan_idx].min_bw <= 10) &&
|
|
||||||
(reg_channels[chan_idx].max_bw >= 10);
|
|
||||||
else if (bw == CH_WIDTH_20MHZ)
|
|
||||||
bw_enabled = (reg_channels[chan_idx].min_bw <= 20) &&
|
|
||||||
(reg_channels[chan_idx].max_bw >= 20);
|
|
||||||
else if (bw == CH_WIDTH_40MHZ)
|
|
||||||
bw_enabled = (reg_channels[chan_idx].min_bw <= 40) &&
|
|
||||||
(reg_channels[chan_idx].max_bw >= 40);
|
|
||||||
|
|
||||||
if (bw_enabled)
|
|
||||||
return chan_state;
|
|
||||||
else
|
|
||||||
return CHANNEL_STATE_DISABLE;
|
|
||||||
|
|
||||||
return CHANNEL_STATE_ENABLE;
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* reg_combine_channel_states() - Get minimum of channel state1 and state2
|
* reg_combine_channel_states() - Get minimum of channel state1 and state2
|
||||||
* @chan_state1: Channel state1
|
* @chan_state1: Channel state1
|
||||||
@@ -1412,171 +1143,6 @@ enum channel_state reg_combine_channel_states(enum channel_state chan_state1,
|
|||||||
return min(chan_state1, chan_state2);
|
return min(chan_state1, chan_state2);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
/**
|
|
||||||
* reg_set_5g_channel_params () - Sets channel parameteres for given bandwidth
|
|
||||||
* @ch: channel number.
|
|
||||||
* @ch_params: pointer to the channel parameters.
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*/
|
|
||||||
static void reg_set_5g_channel_params(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t ch,
|
|
||||||
struct ch_params *ch_params)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* Set channel parameters like center frequency for a bonded channel
|
|
||||||
* state. Also return the maximum bandwidth supported by the channel.
|
|
||||||
*/
|
|
||||||
|
|
||||||
enum channel_state chan_state = CHANNEL_STATE_ENABLE;
|
|
||||||
enum channel_state chan_state2 = CHANNEL_STATE_ENABLE;
|
|
||||||
const struct bonded_channel *bonded_chan_ptr = NULL;
|
|
||||||
const struct bonded_channel *bonded_chan_ptr2 = NULL;
|
|
||||||
|
|
||||||
if (!ch_params) {
|
|
||||||
reg_err("ch_params is NULL");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ch_params->ch_width >= CH_WIDTH_MAX) {
|
|
||||||
if (ch_params->center_freq_seg1 != 0)
|
|
||||||
ch_params->ch_width = CH_WIDTH_80P80MHZ;
|
|
||||||
else
|
|
||||||
ch_params->ch_width = CH_WIDTH_160MHZ;
|
|
||||||
}
|
|
||||||
|
|
||||||
while (ch_params->ch_width != CH_WIDTH_INVALID) {
|
|
||||||
bonded_chan_ptr = NULL;
|
|
||||||
bonded_chan_ptr2 = NULL;
|
|
||||||
chan_state = reg_get_5g_bonded_channel(
|
|
||||||
pdev, ch, ch_params->ch_width,
|
|
||||||
&bonded_chan_ptr);
|
|
||||||
|
|
||||||
chan_state = reg_get_5g_bonded_channel_state(
|
|
||||||
pdev, ch, ch_params->ch_width);
|
|
||||||
|
|
||||||
if (ch_params->ch_width == CH_WIDTH_80P80MHZ) {
|
|
||||||
chan_state2 = reg_get_5g_bonded_channel_state(
|
|
||||||
pdev, ch_params->center_freq_seg1 - 2,
|
|
||||||
CH_WIDTH_80MHZ);
|
|
||||||
|
|
||||||
chan_state = reg_combine_channel_states(
|
|
||||||
chan_state, chan_state2);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((chan_state != CHANNEL_STATE_ENABLE) &&
|
|
||||||
(chan_state != CHANNEL_STATE_DFS))
|
|
||||||
goto update_bw;
|
|
||||||
|
|
||||||
if (ch_params->ch_width <= CH_WIDTH_20MHZ) {
|
|
||||||
ch_params->sec_ch_offset = NO_SEC_CH;
|
|
||||||
ch_params->center_freq_seg0 = ch;
|
|
||||||
break;
|
|
||||||
} else if (ch_params->ch_width >= CH_WIDTH_40MHZ) {
|
|
||||||
reg_get_5g_bonded_chan_array(
|
|
||||||
pdev, ch, bonded_chan_40mhz_list,
|
|
||||||
QDF_ARRAY_SIZE(bonded_chan_40mhz_list),
|
|
||||||
&bonded_chan_ptr2);
|
|
||||||
if (!bonded_chan_ptr || !bonded_chan_ptr2)
|
|
||||||
goto update_bw;
|
|
||||||
if (ch == bonded_chan_ptr2->start_ch)
|
|
||||||
ch_params->sec_ch_offset = LOW_PRIMARY_CH;
|
|
||||||
else
|
|
||||||
ch_params->sec_ch_offset = HIGH_PRIMARY_CH;
|
|
||||||
|
|
||||||
ch_params->center_freq_seg0 =
|
|
||||||
(bonded_chan_ptr->start_ch +
|
|
||||||
bonded_chan_ptr->end_ch) / 2;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
update_bw:
|
|
||||||
ch_params->ch_width =
|
|
||||||
get_next_lower_bandwidth(ch_params->ch_width);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ch_params->ch_width == CH_WIDTH_160MHZ) {
|
|
||||||
ch_params->center_freq_seg1 = ch_params->center_freq_seg0;
|
|
||||||
chan_state = reg_get_5g_bonded_channel(
|
|
||||||
pdev, ch, CH_WIDTH_80MHZ, &bonded_chan_ptr);
|
|
||||||
if (bonded_chan_ptr)
|
|
||||||
ch_params->center_freq_seg0 =
|
|
||||||
(bonded_chan_ptr->start_ch +
|
|
||||||
bonded_chan_ptr->end_ch) / 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Overwrite center_freq_seg1 to 0 for non 160 and 80+80 width */
|
|
||||||
if (!(ch_params->ch_width == CH_WIDTH_160MHZ ||
|
|
||||||
ch_params->ch_width == CH_WIDTH_80P80MHZ))
|
|
||||||
ch_params->center_freq_seg1 = 0;
|
|
||||||
|
|
||||||
reg_nofl_debug("ch %d ch_wd %d freq0 %d freq1 %d", ch,
|
|
||||||
ch_params->ch_width, ch_params->center_freq_seg0,
|
|
||||||
ch_params->center_freq_seg1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* reg_set_2g_channel_params() - set the 2.4G bonded channel parameters
|
|
||||||
* @oper_ch: operating channel
|
|
||||||
* @ch_params: channel parameters
|
|
||||||
* @sec_ch_2g: 2.4G secondary channel
|
|
||||||
*
|
|
||||||
* Return: void
|
|
||||||
*/
|
|
||||||
static void reg_set_2g_channel_params(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint16_t oper_ch,
|
|
||||||
struct ch_params *ch_params,
|
|
||||||
uint16_t sec_ch_2g)
|
|
||||||
{
|
|
||||||
enum channel_state chan_state = CHANNEL_STATE_ENABLE;
|
|
||||||
|
|
||||||
if (ch_params->ch_width >= CH_WIDTH_MAX)
|
|
||||||
ch_params->ch_width = CH_WIDTH_40MHZ;
|
|
||||||
if ((reg_get_bw_value(ch_params->ch_width) > 20) && !sec_ch_2g) {
|
|
||||||
if (oper_ch >= 1 && oper_ch <= 5)
|
|
||||||
sec_ch_2g = oper_ch + 4;
|
|
||||||
else if (oper_ch >= 6 && oper_ch <= 13)
|
|
||||||
sec_ch_2g = oper_ch - 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
while (ch_params->ch_width != CH_WIDTH_INVALID) {
|
|
||||||
chan_state = reg_get_2g_bonded_channel_state(
|
|
||||||
pdev, oper_ch, sec_ch_2g, ch_params->ch_width);
|
|
||||||
if (chan_state == CHANNEL_STATE_ENABLE) {
|
|
||||||
if (ch_params->ch_width == CH_WIDTH_40MHZ) {
|
|
||||||
if (oper_ch < sec_ch_2g)
|
|
||||||
ch_params->sec_ch_offset =
|
|
||||||
LOW_PRIMARY_CH;
|
|
||||||
else
|
|
||||||
ch_params->sec_ch_offset =
|
|
||||||
HIGH_PRIMARY_CH;
|
|
||||||
ch_params->center_freq_seg0 =
|
|
||||||
(oper_ch + sec_ch_2g) / 2;
|
|
||||||
} else {
|
|
||||||
ch_params->sec_ch_offset = NO_SEC_CH;
|
|
||||||
ch_params->center_freq_seg0 = oper_ch;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
ch_params->ch_width =
|
|
||||||
get_next_lower_bandwidth(ch_params->ch_width);
|
|
||||||
}
|
|
||||||
/* Overwrite center_freq_seg1 to 0 for 2.4 Ghz */
|
|
||||||
ch_params->center_freq_seg1 = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void reg_set_channel_params(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t ch, uint8_t sec_ch_2g,
|
|
||||||
struct ch_params *ch_params)
|
|
||||||
{
|
|
||||||
if (REG_IS_5GHZ_CH(ch))
|
|
||||||
reg_set_5g_channel_params(pdev, ch, ch_params);
|
|
||||||
else if (REG_IS_24GHZ_CH(ch))
|
|
||||||
reg_set_2g_channel_params(pdev, ch, ch_params, sec_ch_2g);
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
QDF_STATUS reg_read_default_country(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS reg_read_default_country(struct wlan_objmgr_psoc *psoc,
|
||||||
uint8_t *country_code)
|
uint8_t *country_code)
|
||||||
{
|
{
|
||||||
@@ -1673,77 +1239,6 @@ void reg_set_dfs_region(struct wlan_objmgr_pdev *pdev,
|
|||||||
reg_init_channel_map(dfs_reg);
|
reg_init_channel_map(dfs_reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
uint32_t reg_get_channel_reg_power(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t chan_num)
|
|
||||||
{
|
|
||||||
enum channel_enum chan_enum;
|
|
||||||
struct wlan_regulatory_pdev_priv_obj *pdev_priv_obj;
|
|
||||||
struct regulatory_channel *reg_channels;
|
|
||||||
|
|
||||||
chan_enum = reg_get_chan_enum(chan_num);
|
|
||||||
|
|
||||||
if (chan_enum == INVALID_CHANNEL) {
|
|
||||||
reg_err("channel is invalid");
|
|
||||||
return QDF_STATUS_E_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
pdev_priv_obj = reg_get_pdev_obj(pdev);
|
|
||||||
|
|
||||||
if (!IS_VALID_PDEV_REG_OBJ(pdev_priv_obj)) {
|
|
||||||
reg_err("reg pdev priv obj is NULL");
|
|
||||||
return QDF_STATUS_E_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
reg_channels = pdev_priv_obj->cur_chan_list;
|
|
||||||
|
|
||||||
return reg_channels[chan_enum].tx_power;
|
|
||||||
}
|
|
||||||
|
|
||||||
qdf_freq_t reg_get_channel_freq(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t chan_num)
|
|
||||||
{
|
|
||||||
enum channel_enum chan_enum;
|
|
||||||
struct wlan_regulatory_pdev_priv_obj *pdev_priv_obj;
|
|
||||||
struct regulatory_channel *reg_channels;
|
|
||||||
|
|
||||||
chan_enum = reg_get_chan_enum(chan_num);
|
|
||||||
|
|
||||||
if (chan_enum == INVALID_CHANNEL)
|
|
||||||
return CHANNEL_STATE_INVALID;
|
|
||||||
|
|
||||||
pdev_priv_obj = reg_get_pdev_obj(pdev);
|
|
||||||
|
|
||||||
if (!IS_VALID_PDEV_REG_OBJ(pdev_priv_obj)) {
|
|
||||||
reg_err("reg pdev priv obj is NULL");
|
|
||||||
return QDF_STATUS_E_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
reg_channels = pdev_priv_obj->cur_chan_list;
|
|
||||||
|
|
||||||
return reg_channels[chan_enum].center_freq;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool reg_is_dfs_ch(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t chan)
|
|
||||||
{
|
|
||||||
enum channel_state ch_state;
|
|
||||||
|
|
||||||
ch_state = reg_get_channel_state(pdev, chan);
|
|
||||||
|
|
||||||
return ch_state == CHANNEL_STATE_DFS;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool reg_is_disable_ch(struct wlan_objmgr_pdev *pdev, uint8_t chan)
|
|
||||||
{
|
|
||||||
enum channel_state ch_state;
|
|
||||||
|
|
||||||
ch_state = reg_get_channel_state(pdev, chan);
|
|
||||||
|
|
||||||
return ch_state == CHANNEL_STATE_DISABLE;
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
uint8_t reg_freq_to_chan(struct wlan_objmgr_pdev *pdev,
|
uint8_t reg_freq_to_chan(struct wlan_objmgr_pdev *pdev,
|
||||||
qdf_freq_t freq)
|
qdf_freq_t freq)
|
||||||
{
|
{
|
||||||
@@ -1875,52 +1370,6 @@ uint16_t reg_legacy_chan_to_freq(struct wlan_objmgr_pdev *pdev,
|
|||||||
max_chan_range);
|
max_chan_range);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
bool reg_chan_is_49ghz(struct wlan_objmgr_pdev *pdev, uint8_t chan_num)
|
|
||||||
{
|
|
||||||
qdf_freq_t freq = 0;
|
|
||||||
|
|
||||||
freq = reg_legacy_chan_to_freq(pdev, chan_num);
|
|
||||||
|
|
||||||
return REG_IS_49GHZ_FREQ(freq) ? true : false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void reg_update_nol_ch(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t *chan_list,
|
|
||||||
uint8_t num_chan,
|
|
||||||
bool nol_chan)
|
|
||||||
{
|
|
||||||
enum channel_enum chan_enum;
|
|
||||||
struct regulatory_channel *mas_chan_list;
|
|
||||||
struct wlan_regulatory_pdev_priv_obj *pdev_priv_obj;
|
|
||||||
uint16_t i;
|
|
||||||
|
|
||||||
if (!num_chan || !chan_list) {
|
|
||||||
reg_err("chan_list or num_ch is NULL");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
pdev_priv_obj = reg_get_pdev_obj(pdev);
|
|
||||||
if (!pdev_priv_obj) {
|
|
||||||
reg_err("reg psoc private obj is NULL");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
mas_chan_list = pdev_priv_obj->mas_chan_list;
|
|
||||||
for (i = 0; i < num_chan; i++) {
|
|
||||||
chan_enum = reg_get_chan_enum(chan_list[i]);
|
|
||||||
if (chan_enum == INVALID_CHANNEL) {
|
|
||||||
reg_err("Invalid ch in nol list, chan %d",
|
|
||||||
chan_list[i]);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
mas_chan_list[chan_enum].nol_chan = nol_chan;
|
|
||||||
}
|
|
||||||
|
|
||||||
reg_compute_pdev_current_chan_list(pdev_priv_obj);
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
QDF_STATUS reg_program_default_cc(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS reg_program_default_cc(struct wlan_objmgr_pdev *pdev,
|
||||||
uint16_t regdmn)
|
uint16_t regdmn)
|
||||||
{
|
{
|
||||||
@@ -2385,47 +1834,6 @@ bool reg_chan_in_range(struct regulatory_channel *chan_list,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
void reg_update_nol_history_ch(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t *chan_list, uint8_t num_chan,
|
|
||||||
bool nol_history_chan)
|
|
||||||
{
|
|
||||||
enum channel_enum chan_enum;
|
|
||||||
struct regulatory_channel *mas_chan_list;
|
|
||||||
struct regulatory_channel *cur_chan_list;
|
|
||||||
struct wlan_regulatory_pdev_priv_obj *pdev_priv_obj;
|
|
||||||
uint16_t i;
|
|
||||||
|
|
||||||
if (!num_chan || !chan_list) {
|
|
||||||
reg_err("chan_list or num_ch is NULL");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
pdev_priv_obj = wlan_objmgr_pdev_get_comp_private_obj(
|
|
||||||
pdev, WLAN_UMAC_COMP_REGULATORY);
|
|
||||||
|
|
||||||
if (!pdev_priv_obj) {
|
|
||||||
reg_err("reg psoc private obj is NULL");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
mas_chan_list = pdev_priv_obj->mas_chan_list;
|
|
||||||
cur_chan_list = pdev_priv_obj->cur_chan_list;
|
|
||||||
|
|
||||||
for (i = 0; i < num_chan; i++) {
|
|
||||||
chan_enum = reg_get_chan_enum(chan_list[i]);
|
|
||||||
if (chan_enum == INVALID_CHANNEL) {
|
|
||||||
reg_err("Invalid ch in nol list, chan %d",
|
|
||||||
chan_list[i]);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
mas_chan_list[chan_enum].nol_history = nol_history_chan;
|
|
||||||
cur_chan_list[chan_enum].nol_history = nol_history_chan;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
bool reg_is_24ghz_ch_freq(uint32_t freq)
|
bool reg_is_24ghz_ch_freq(uint32_t freq)
|
||||||
{
|
{
|
||||||
return REG_IS_24GHZ_CH_FREQ(freq);
|
return REG_IS_24GHZ_CH_FREQ(freq);
|
||||||
@@ -2906,32 +2314,10 @@ qdf_freq_t reg_ch_to_freq(uint32_t ch_enum)
|
|||||||
return REG_CH_TO_FREQ(ch_enum);
|
return REG_CH_TO_FREQ(ch_enum);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
bool reg_is_channel_valid_5g_sbs(uint8_t curchan, uint8_t newchan)
|
|
||||||
{
|
|
||||||
return REG_IS_CHANNEL_VALID_5G_SBS(curchan, newchan);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t reg_min_24ghz_ch_num(void)
|
|
||||||
{
|
|
||||||
return REG_MIN_24GHZ_CH_NUM;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t reg_max_24ghz_ch_num(void)
|
|
||||||
{
|
|
||||||
return REG_MAX_24GHZ_CH_NUM;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t reg_min_5ghz_ch_num(void)
|
|
||||||
{
|
|
||||||
return REG_MIN_5GHZ_CH_NUM;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t reg_max_5ghz_ch_num(void)
|
uint8_t reg_max_5ghz_ch_num(void)
|
||||||
{
|
{
|
||||||
return REG_MAX_5GHZ_CH_NUM;
|
return REG_MAX_5GHZ_CH_NUM;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
qdf_freq_t reg_min_24ghz_chan_freq(void)
|
qdf_freq_t reg_min_24ghz_chan_freq(void)
|
||||||
|
@@ -34,17 +34,8 @@
|
|||||||
#define NUM_20_MHZ_CHAN_IN_80_MHZ_CHAN 4
|
#define NUM_20_MHZ_CHAN_IN_80_MHZ_CHAN 4
|
||||||
#define NUM_20_MHZ_CHAN_IN_160_MHZ_CHAN 8
|
#define NUM_20_MHZ_CHAN_IN_160_MHZ_CHAN 8
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
#define REG_MIN_24GHZ_CH_NUM channel_map[MIN_24GHZ_CHANNEL].chan_num
|
|
||||||
#define REG_MAX_24GHZ_CH_NUM channel_map[MAX_24GHZ_CHANNEL].chan_num
|
|
||||||
#define REG_MIN_5GHZ_CH_NUM channel_map[MIN_5GHZ_CHANNEL].chan_num
|
|
||||||
#define REG_MAX_5GHZ_CH_NUM channel_map[MAX_5GHZ_CHANNEL].chan_num
|
#define REG_MAX_5GHZ_CH_NUM channel_map[MAX_5GHZ_CHANNEL].chan_num
|
||||||
|
|
||||||
#define REG_IS_24GHZ_CH(chan_num) \
|
|
||||||
(((chan_num) >= REG_MIN_24GHZ_CH_NUM) && \
|
|
||||||
((chan_num) <= REG_MAX_24GHZ_CH_NUM))
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
#define REG_MIN_24GHZ_CH_FREQ channel_map[MIN_24GHZ_CHANNEL].center_freq
|
#define REG_MIN_24GHZ_CH_FREQ channel_map[MIN_24GHZ_CHANNEL].center_freq
|
||||||
#define REG_MAX_24GHZ_CH_FREQ channel_map[MAX_24GHZ_CHANNEL].center_freq
|
#define REG_MAX_24GHZ_CH_FREQ channel_map[MAX_24GHZ_CHANNEL].center_freq
|
||||||
|
|
||||||
@@ -69,11 +60,6 @@
|
|||||||
(((freq) >= REG_MIN_49GHZ_CH_FREQ) && \
|
(((freq) >= REG_MIN_49GHZ_CH_FREQ) && \
|
||||||
((freq) <= REG_MAX_49GHZ_CH_FREQ))
|
((freq) <= REG_MAX_49GHZ_CH_FREQ))
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
#define REG_IS_5GHZ_CH(chan_num) \
|
|
||||||
(((chan_num) >= REG_MIN_5GHZ_CH_NUM) && \
|
|
||||||
((chan_num) <= REG_MAX_5GHZ_CH_NUM))
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
#define REG_IS_5GHZ_FREQ(freq) \
|
#define REG_IS_5GHZ_FREQ(freq) \
|
||||||
(((freq) >= channel_map[MIN_5GHZ_CHANNEL].center_freq) && \
|
(((freq) >= channel_map[MIN_5GHZ_CHANNEL].center_freq) && \
|
||||||
@@ -152,88 +138,6 @@ extern const struct chan_map channel_map_global[];
|
|||||||
*/
|
*/
|
||||||
enum phy_ch_width get_next_lower_bandwidth(enum phy_ch_width ch_width);
|
enum phy_ch_width get_next_lower_bandwidth(enum phy_ch_width ch_width);
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
/**
|
|
||||||
* reg_get_chan_enum() - Get channel enum for given channel number
|
|
||||||
* @chan_num: Channel number
|
|
||||||
*
|
|
||||||
* Return: Channel enum
|
|
||||||
*/
|
|
||||||
enum channel_enum reg_get_chan_enum(uint8_t chan_num);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* reg_get_channel_state() - Get channel state from regulatory
|
|
||||||
* @pdev: Pointer to pdev
|
|
||||||
* @ch: channel number.
|
|
||||||
*
|
|
||||||
* Return: channel state
|
|
||||||
*/
|
|
||||||
enum channel_state reg_get_channel_state(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t ch);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* reg_get_5g_bonded_channel() - get the 5G bonded channel state
|
|
||||||
* @pdev: Pointer to pdev structure
|
|
||||||
* @chan_num: channel number
|
|
||||||
* @ch_width: channel width
|
|
||||||
* @bonded_chan_ptr_ptr: bonded channel ptr ptr
|
|
||||||
*
|
|
||||||
* Return: channel state
|
|
||||||
*/
|
|
||||||
enum channel_state reg_get_5g_bonded_channel(
|
|
||||||
struct wlan_objmgr_pdev *pdev, uint8_t chan_num,
|
|
||||||
enum phy_ch_width ch_width,
|
|
||||||
const struct bonded_channel **bonded_chan_ptr_ptr);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* reg_get_5g_bonded_channel_state() - Get channel state for 5G bonded channel
|
|
||||||
* @pdev: Pointer to pdev
|
|
||||||
* @ch: channel number.
|
|
||||||
* @bw: channel band width
|
|
||||||
*
|
|
||||||
* Return: channel state
|
|
||||||
*/
|
|
||||||
enum channel_state reg_get_5g_bonded_channel_state(
|
|
||||||
struct wlan_objmgr_pdev *pdev, uint8_t ch,
|
|
||||||
enum phy_ch_width bw);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* reg_get_2g_bonded_channel_state() - Get channel state for 2G bonded channel
|
|
||||||
* @ch: channel number.
|
|
||||||
* @pdev: Pointer to pdev
|
|
||||||
* @oper_ch: Primary channel number
|
|
||||||
* @sec_ch: Secondary channel number
|
|
||||||
* @bw: channel band width
|
|
||||||
*
|
|
||||||
* Return: channel state
|
|
||||||
*/
|
|
||||||
enum channel_state reg_get_2g_bonded_channel_state(
|
|
||||||
struct wlan_objmgr_pdev *pdev, uint8_t oper_ch, uint8_t sec_ch,
|
|
||||||
enum phy_ch_width bw);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* reg_set_channel_params () - Sets channel parameteres for given bandwidth
|
|
||||||
* @pdev: Pointer to pdev
|
|
||||||
* @ch: channel number.
|
|
||||||
* @sec_ch_2g: Secondary 2G channel
|
|
||||||
* @ch_params: pointer to the channel parameters.
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*/
|
|
||||||
void reg_set_channel_params(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t ch, uint8_t sec_ch_2g,
|
|
||||||
struct ch_params *ch_params);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* reg_is_disable_ch() - Check if the given channel in disable state
|
|
||||||
* @pdev: Pointer to pdev
|
|
||||||
* @chan: channel number
|
|
||||||
*
|
|
||||||
* Return: True if channel state is disabled, else false
|
|
||||||
*/
|
|
||||||
bool reg_is_disable_ch(struct wlan_objmgr_pdev *pdev, uint8_t chan);
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* reg_read_default_country() - Get the default regulatory country
|
* reg_read_default_country() - Get the default regulatory country
|
||||||
* @psoc: The physical SoC to get default country from
|
* @psoc: The physical SoC to get default country from
|
||||||
@@ -278,28 +182,6 @@ QDF_STATUS reg_get_max_5g_bw_from_regdomain(uint16_t regdmn,
|
|||||||
void reg_get_current_dfs_region(struct wlan_objmgr_pdev *pdev,
|
void reg_get_current_dfs_region(struct wlan_objmgr_pdev *pdev,
|
||||||
enum dfs_reg *dfs_reg);
|
enum dfs_reg *dfs_reg);
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
/**
|
|
||||||
* reg_get_channel_reg_power() - Get the txpower for the given channel
|
|
||||||
* @pdev: Pointer to pdev
|
|
||||||
* @chan_num: Channel number
|
|
||||||
*
|
|
||||||
* Return: txpower
|
|
||||||
*/
|
|
||||||
uint32_t reg_get_channel_reg_power(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t chan_num);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* reg_get_channel_freq() - Get the channel frequency
|
|
||||||
* @pdev: Pointer to pdev
|
|
||||||
* @chan_num: Channel number
|
|
||||||
*
|
|
||||||
* Return: frequency
|
|
||||||
*/
|
|
||||||
qdf_freq_t reg_get_channel_freq(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t chan_num);
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* reg_get_bw_value() - give bandwidth value
|
* reg_get_bw_value() - give bandwidth value
|
||||||
* bw: bandwidth enum
|
* bw: bandwidth enum
|
||||||
@@ -328,29 +210,6 @@ void reg_set_dfs_region(struct wlan_objmgr_pdev *pdev,
|
|||||||
QDF_STATUS reg_program_chan_list(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS reg_program_chan_list(struct wlan_objmgr_pdev *pdev,
|
||||||
struct cc_regdmn_s *rd);
|
struct cc_regdmn_s *rd);
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
/**
|
|
||||||
* reg_update_nol_ch () - Updates NOL channels in current channel list
|
|
||||||
* @pdev: pointer to pdev object
|
|
||||||
* @ch_list: pointer to NOL channel list
|
|
||||||
* @num_ch: No.of channels in list
|
|
||||||
* @update_nol: set/reset the NOL status
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*/
|
|
||||||
void reg_update_nol_ch(struct wlan_objmgr_pdev *pdev, uint8_t *chan_list,
|
|
||||||
uint8_t num_chan, bool nol_chan);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* reg_is_dfs_ch () - Checks the channel state for DFS
|
|
||||||
* @pdev: pdev ptr
|
|
||||||
* @chan: channel
|
|
||||||
*
|
|
||||||
* Return: true or false
|
|
||||||
*/
|
|
||||||
bool reg_is_dfs_ch(struct wlan_objmgr_pdev *pdev, uint8_t chan);
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* reg_freq_to_chan() - Get channel number from frequency.
|
* reg_freq_to_chan() - Get channel number from frequency.
|
||||||
* @pdev: Pointer to pdev
|
* @pdev: Pointer to pdev
|
||||||
@@ -370,17 +229,6 @@ uint8_t reg_freq_to_chan(struct wlan_objmgr_pdev *pdev, qdf_freq_t freq);
|
|||||||
uint16_t reg_legacy_chan_to_freq(struct wlan_objmgr_pdev *pdev,
|
uint16_t reg_legacy_chan_to_freq(struct wlan_objmgr_pdev *pdev,
|
||||||
uint8_t chan_num);
|
uint8_t chan_num);
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
/**
|
|
||||||
* reg_chan_is_49ghz() - Check if the input channel number is 4.9GHz
|
|
||||||
* @pdev: Pdev pointer
|
|
||||||
* @chan_num: Input channel number
|
|
||||||
*
|
|
||||||
* Return: true if the channel is 4.9GHz else false.
|
|
||||||
*/
|
|
||||||
bool reg_chan_is_49ghz(struct wlan_objmgr_pdev *pdev, uint8_t chan_num);
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* reg_program_default_cc() - Program default country code
|
* reg_program_default_cc() - Program default country code
|
||||||
* @pdev: Pdev pointer
|
* @pdev: Pdev pointer
|
||||||
@@ -498,24 +346,6 @@ void reg_init_channel_map(enum dfs_reg dfs_region);
|
|||||||
struct wlan_lmac_if_reg_tx_ops *reg_get_psoc_tx_ops(
|
struct wlan_lmac_if_reg_tx_ops *reg_get_psoc_tx_ops(
|
||||||
struct wlan_objmgr_psoc *psoc);
|
struct wlan_objmgr_psoc *psoc);
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
/**
|
|
||||||
* reg_update_nol_history_ch() - Set nol-history flag for the channels in the
|
|
||||||
* list.
|
|
||||||
* @pdev: Pdev ptr.
|
|
||||||
* @ch_list: Input channel list.
|
|
||||||
* @num_ch: Number of channels.
|
|
||||||
* @nol_history_ch: NOL-History flag.
|
|
||||||
*
|
|
||||||
* Return: void
|
|
||||||
*/
|
|
||||||
void reg_update_nol_history_ch(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t *chan_list,
|
|
||||||
uint8_t num_chan,
|
|
||||||
bool nol_history_chan);
|
|
||||||
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* reg_is_24ghz_ch_freq() - Check if the given channel frequency is 2.4GHz
|
* reg_is_24ghz_ch_freq() - Check if the given channel frequency is 2.4GHz
|
||||||
* @freq: Channel frequency
|
* @freq: Channel frequency
|
||||||
@@ -811,44 +641,12 @@ qdf_freq_t reg_ch_num(uint32_t ch_enum);
|
|||||||
*/
|
*/
|
||||||
qdf_freq_t reg_ch_to_freq(uint32_t ch_enum);
|
qdf_freq_t reg_ch_to_freq(uint32_t ch_enum);
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
/**
|
|
||||||
* reg_is_channel_valid_5g_sbs() Check if the given channel is 5G SBS.
|
|
||||||
* @curchan: current channel
|
|
||||||
* @newchan:new channel
|
|
||||||
*
|
|
||||||
* Return: true if the given channel is a valid 5G SBS
|
|
||||||
*/
|
|
||||||
bool reg_is_channel_valid_5g_sbs(uint8_t curchan, uint8_t newchan);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* reg_min_24ghz_ch_num() - Get minimum 2.4GHz channel number
|
|
||||||
*
|
|
||||||
* Return: Minimum 2.4GHz channel number
|
|
||||||
*/
|
|
||||||
uint8_t reg_min_24ghz_ch_num(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* reg_max_24ghz_ch_num() - Get maximum 2.4GHz channel number
|
|
||||||
*
|
|
||||||
* Return: Maximum 2.4GHz channel number
|
|
||||||
*/
|
|
||||||
uint8_t reg_max_24ghz_ch_num(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* reg_min_5ghz_ch_num() - Get minimum 5GHz channel number
|
|
||||||
*
|
|
||||||
* Return: Minimum 5GHz channel number
|
|
||||||
*/
|
|
||||||
uint8_t reg_min_5ghz_ch_num(void);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* reg_max_5ghz_ch_num() - Get maximum 5GHz channel number
|
* reg_max_5ghz_ch_num() - Get maximum 5GHz channel number
|
||||||
*
|
*
|
||||||
* Return: Maximum 5GHz channel number
|
* Return: Maximum 5GHz channel number
|
||||||
*/
|
*/
|
||||||
uint8_t reg_max_5ghz_ch_num(void);
|
uint8_t reg_max_5ghz_ch_num(void);
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
/**
|
/**
|
||||||
|
@@ -323,19 +323,6 @@ QDF_STATUS reg_get_domain_from_country_code(v_REGDOMAIN_t *reg_domain_ptr,
|
|||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
bool reg_is_passive_or_disable_ch(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t chan)
|
|
||||||
{
|
|
||||||
enum channel_state ch_state;
|
|
||||||
|
|
||||||
ch_state = reg_get_channel_state(pdev, chan);
|
|
||||||
|
|
||||||
return (ch_state == CHANNEL_STATE_DFS) ||
|
|
||||||
(ch_state == CHANNEL_STATE_DISABLE);
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
bool reg_is_passive_or_disable_for_freq(struct wlan_objmgr_pdev *pdev,
|
bool reg_is_passive_or_disable_for_freq(struct wlan_objmgr_pdev *pdev,
|
||||||
qdf_freq_t freq)
|
qdf_freq_t freq)
|
||||||
@@ -392,32 +379,6 @@ bool reg_is_etsi13_srd_chan_for_freq(struct wlan_objmgr_pdev *pdev,
|
|||||||
}
|
}
|
||||||
#endif /* CONFIG_CHAN_FREQ_API */
|
#endif /* CONFIG_CHAN_FREQ_API */
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
bool reg_is_etsi13_srd_chan(struct wlan_objmgr_pdev *pdev, uint8_t chan)
|
|
||||||
{
|
|
||||||
struct wlan_regulatory_pdev_priv_obj *pdev_priv_obj;
|
|
||||||
qdf_freq_t freq = 0;
|
|
||||||
|
|
||||||
pdev_priv_obj = reg_get_pdev_obj(pdev);
|
|
||||||
|
|
||||||
if (!IS_VALID_PDEV_REG_OBJ(pdev_priv_obj)) {
|
|
||||||
reg_err("reg pdev priv obj is NULL");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!REG_IS_5GHZ_CH(chan))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
freq = reg_legacy_chan_to_freq(pdev, chan);
|
|
||||||
|
|
||||||
if (!(freq >= REG_ETSI13_SRD_START_FREQ &&
|
|
||||||
freq <= REG_ETSI13_SRD_END_FREQ))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return reg_is_etsi13_regdmn(pdev);
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
bool reg_is_etsi13_srd_chan_allowed_master_mode(struct wlan_objmgr_pdev *pdev)
|
bool reg_is_etsi13_srd_chan_allowed_master_mode(struct wlan_objmgr_pdev *pdev)
|
||||||
{
|
{
|
||||||
struct wlan_objmgr_psoc *psoc;
|
struct wlan_objmgr_psoc *psoc;
|
||||||
|
@@ -35,17 +35,6 @@
|
|||||||
#define REG_ETSI13_SRD_START_FREQ 5745
|
#define REG_ETSI13_SRD_START_FREQ 5745
|
||||||
#define REG_ETSI13_SRD_END_FREQ 5865
|
#define REG_ETSI13_SRD_END_FREQ 5865
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
#define REG_IS_CHANNEL_VALID_5G_SBS(curchan, newchan) \
|
|
||||||
((curchan) > (newchan) ? \
|
|
||||||
REG_CH_TO_FREQ(reg_get_chan_enum(curchan)) \
|
|
||||||
- REG_CH_TO_FREQ(reg_get_chan_enum(newchan)) \
|
|
||||||
> REG_SBS_SEPARATION_THRESHOLD : \
|
|
||||||
REG_CH_TO_FREQ(reg_get_chan_enum(newchan)) \
|
|
||||||
- REG_CH_TO_FREQ(reg_get_chan_enum(curchan)) \
|
|
||||||
> REG_SBS_SEPARATION_THRESHOLD)
|
|
||||||
#endif /* CONFIG_LEGACY_REG_API */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* reg_is_world_ctry_code() - Check if the given country code is WORLD regdomain
|
* reg_is_world_ctry_code() - Check if the given country code is WORLD regdomain
|
||||||
* @ctry_code: Country code value.
|
* @ctry_code: Country code value.
|
||||||
@@ -54,24 +43,6 @@
|
|||||||
*/
|
*/
|
||||||
bool reg_is_world_ctry_code(uint16_t ctry_code);
|
bool reg_is_world_ctry_code(uint16_t ctry_code);
|
||||||
|
|
||||||
#if defined(CONFIG_REG_CLIENT) && defined(CONFIG_CHAN_NUM_API)
|
|
||||||
/**
|
|
||||||
* reg_is_passive_or_disable_ch() - Check if the given channel is passive or
|
|
||||||
* disabled.
|
|
||||||
* @pdev: Pointer to physical dev
|
|
||||||
* @chan: Channel number
|
|
||||||
*
|
|
||||||
* Return: true if channel is passive or disabled, else false.
|
|
||||||
*/
|
|
||||||
bool reg_is_passive_or_disable_ch(struct wlan_objmgr_pdev *pdev, uint8_t chan);
|
|
||||||
#else
|
|
||||||
static inline bool
|
|
||||||
reg_is_passive_or_disable_ch(struct wlan_objmgr_pdev *pdev, uint8_t chan)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#endif /* defined(CONFIG_REG_CLIENT) && defined(CONFIG_CHAN_NUM_API) */
|
|
||||||
|
|
||||||
#if defined(CONFIG_REG_CLIENT) && defined(CONFIG_CHAN_FREQ_API)
|
#if defined(CONFIG_REG_CLIENT) && defined(CONFIG_CHAN_FREQ_API)
|
||||||
/**
|
/**
|
||||||
* reg_chan_has_dfs_attribute_for_freq() - check channel frequency has dfs
|
* reg_chan_has_dfs_attribute_for_freq() - check channel frequency has dfs
|
||||||
@@ -507,12 +478,6 @@ reg_decide_6g_ap_pwr_type(struct wlan_objmgr_pdev *pdev)
|
|||||||
bool reg_is_dsrc_freq(qdf_freq_t freq);
|
bool reg_is_dsrc_freq(qdf_freq_t freq);
|
||||||
#endif /* CONFIG_CHAN_FREQ_API*/
|
#endif /* CONFIG_CHAN_FREQ_API*/
|
||||||
|
|
||||||
static inline bool reg_is_etsi13_srd_chan(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t chan)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline bool reg_is_etsi13_regdmn(struct wlan_objmgr_pdev *pdev)
|
static inline bool reg_is_etsi13_regdmn(struct wlan_objmgr_pdev *pdev)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@@ -556,17 +521,6 @@ bool reg_is_etsi13_srd_chan_for_freq(struct wlan_objmgr_pdev
|
|||||||
*/
|
*/
|
||||||
bool reg_is_etsi13_regdmn(struct wlan_objmgr_pdev *pdev);
|
bool reg_is_etsi13_regdmn(struct wlan_objmgr_pdev *pdev);
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
/**
|
|
||||||
* reg_is_etsi13_srd_chan () - Checks the channel for ETSI13 srd ch or not
|
|
||||||
* @chan: channel
|
|
||||||
* @pdev: pdev ptr
|
|
||||||
*
|
|
||||||
* Return: true or false
|
|
||||||
*/
|
|
||||||
bool reg_is_etsi13_srd_chan(struct wlan_objmgr_pdev *pdev, uint8_t chan);
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* reg_is_etsi13_srd_chan_allowed_master_mode() - Checks if regdmn is ETSI13
|
* reg_is_etsi13_srd_chan_allowed_master_mode() - Checks if regdmn is ETSI13
|
||||||
* and SRD channels are allowed in master mode or not.
|
* and SRD channels are allowed in master mode or not.
|
||||||
@@ -600,11 +554,6 @@ reg_is_etsi13_srd_chan_allowed_master_mode(struct wlan_objmgr_pdev *pdev)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool reg_is_etsi13_srd_chan(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t chan)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -28,31 +28,6 @@
|
|||||||
|
|
||||||
#include <reg_services_public_struct.h>
|
#include <reg_services_public_struct.h>
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
/**
|
|
||||||
* wlan_reg_min_24ghz_ch_num() - Get minimum 2.4GHz channel number
|
|
||||||
*
|
|
||||||
* Return: Minimum 2.4GHz channel number
|
|
||||||
*/
|
|
||||||
#define WLAN_REG_MIN_24GHZ_CH_NUM wlan_reg_min_24ghz_ch_num()
|
|
||||||
uint8_t wlan_reg_min_24ghz_ch_num(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* wlan_reg_max_24ghz_ch_num() - Get maximum 2.4GHz channel number
|
|
||||||
*
|
|
||||||
* Return: Maximum 2.4GHz channel number
|
|
||||||
*/
|
|
||||||
#define WLAN_REG_MAX_24GHZ_CH_NUM wlan_reg_max_24ghz_ch_num()
|
|
||||||
uint8_t wlan_reg_max_24ghz_ch_num(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* wlan_reg_min_5ghz_ch_num() - Get minimum 5GHz channel number
|
|
||||||
*
|
|
||||||
* Return: Minimum 5GHz channel number
|
|
||||||
*/
|
|
||||||
#define WLAN_REG_MIN_5GHZ_CH_NUM wlan_reg_min_5ghz_ch_num()
|
|
||||||
uint8_t wlan_reg_min_5ghz_ch_num(void);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_reg_max_5ghz_ch_num() - Get maximum 5GHz channel number
|
* wlan_reg_max_5ghz_ch_num() - Get maximum 5GHz channel number
|
||||||
*
|
*
|
||||||
@@ -60,7 +35,6 @@ uint8_t wlan_reg_min_5ghz_ch_num(void);
|
|||||||
*/
|
*/
|
||||||
#define WLAN_REG_MAX_5GHZ_CH_NUM wlan_reg_max_5ghz_ch_num()
|
#define WLAN_REG_MAX_5GHZ_CH_NUM wlan_reg_max_5ghz_ch_num()
|
||||||
uint8_t wlan_reg_max_5ghz_ch_num(void);
|
uint8_t wlan_reg_max_5ghz_ch_num(void);
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
/**
|
/**
|
||||||
@@ -414,20 +388,6 @@ uint8_t wlan_reg_ch_num(uint32_t ch_enum);
|
|||||||
#define WLAN_REG_CH_TO_FREQ(ch_enum) wlan_reg_ch_to_freq(ch_enum)
|
#define WLAN_REG_CH_TO_FREQ(ch_enum) wlan_reg_ch_to_freq(ch_enum)
|
||||||
qdf_freq_t wlan_reg_ch_to_freq(uint32_t ch_enum);
|
qdf_freq_t wlan_reg_ch_to_freq(uint32_t ch_enum);
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
/**
|
|
||||||
* wlan_reg_is_channel_valid_5g_sbs() Check if the given channel is 5G SBS.
|
|
||||||
* @curchan: current channel
|
|
||||||
* @newchan:new channel
|
|
||||||
*
|
|
||||||
* Return: true if the given channel is a valid 5G SBS
|
|
||||||
*/
|
|
||||||
#define WLAN_REG_IS_CHANNEL_VALID_5G_SBS(curchan, newchan) \
|
|
||||||
wlan_reg_is_channel_valid_5g_sbs(curchan, newchan)
|
|
||||||
bool wlan_reg_is_channel_valid_5g_sbs(uint8_t curchan, uint8_t newchan);
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_reg_read_default_country() - Read the default country for the regdomain
|
* wlan_reg_read_default_country() - Read the default country for the regdomain
|
||||||
* @country: pointer to the country code.
|
* @country: pointer to the country code.
|
||||||
@@ -480,18 +440,6 @@ bool wlan_reg_get_fcc_constraint(struct wlan_objmgr_pdev *pdev, uint32_t freq);
|
|||||||
QDF_STATUS wlan_reg_read_current_country(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS wlan_reg_read_current_country(struct wlan_objmgr_psoc *psoc,
|
||||||
uint8_t *country);
|
uint8_t *country);
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
/**
|
|
||||||
* wlan_reg_is_etsi13_srd_chan () - Checks if the ch is ETSI13 srd ch or not
|
|
||||||
* @pdev: pdev ptr
|
|
||||||
* @chan_num: channel
|
|
||||||
*
|
|
||||||
* Return: true or false
|
|
||||||
*/
|
|
||||||
bool wlan_reg_is_etsi13_srd_chan(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t chan_num);
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
/**
|
/**
|
||||||
* wlan_reg_is_etsi13_srd_chan_for_freq () - Checks if the ch is ETSI13 srd ch
|
* wlan_reg_is_etsi13_srd_chan_for_freq () - Checks if the ch is ETSI13 srd ch
|
||||||
@@ -533,32 +481,6 @@ bool wlan_reg_is_etsi13_srd_chan_allowed_master_mode(struct wlan_objmgr_pdev
|
|||||||
*/
|
*/
|
||||||
bool wlan_reg_is_world(uint8_t *country);
|
bool wlan_reg_is_world(uint8_t *country);
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
/**
|
|
||||||
* wlan_reg_get_5g_bonded_channel_state() - Get 5G bonded channel state
|
|
||||||
* @pdev: The physical dev to program country code or regdomain
|
|
||||||
* @ch: channel number.
|
|
||||||
* @bw: channel band width
|
|
||||||
*
|
|
||||||
* Return: channel state
|
|
||||||
*/
|
|
||||||
enum channel_state wlan_reg_get_5g_bonded_channel_state(
|
|
||||||
struct wlan_objmgr_pdev *pdev, uint8_t ch,
|
|
||||||
enum phy_ch_width bw);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* wlan_reg_get_2g_bonded_channel_state() - Get 2G bonded channel state
|
|
||||||
* @pdev: The physical dev to program country code or regdomain
|
|
||||||
* @ch: channel number.
|
|
||||||
* @sec_ch: Secondary channel.
|
|
||||||
* @bw: channel band width
|
|
||||||
*
|
|
||||||
* Return: channel state
|
|
||||||
*/
|
|
||||||
enum channel_state wlan_reg_get_2g_bonded_channel_state(
|
|
||||||
struct wlan_objmgr_pdev *pdev, uint8_t ch,
|
|
||||||
uint8_t sec_ch, enum phy_ch_width bw);
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
/**
|
/**
|
||||||
* wlan_reg_get_dfs_region () - Get the current dfs region
|
* wlan_reg_get_dfs_region () - Get the current dfs region
|
||||||
* @dfs_reg: pointer to dfs region
|
* @dfs_reg: pointer to dfs region
|
||||||
@@ -568,17 +490,6 @@ enum channel_state wlan_reg_get_2g_bonded_channel_state(
|
|||||||
QDF_STATUS wlan_reg_get_dfs_region(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS wlan_reg_get_dfs_region(struct wlan_objmgr_pdev *pdev,
|
||||||
enum dfs_reg *dfs_reg);
|
enum dfs_reg *dfs_reg);
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
/**
|
|
||||||
* wlan_reg_get_channel_freq() - provide the channel center freq
|
|
||||||
* @chan_num: channel number
|
|
||||||
*
|
|
||||||
* Return: int
|
|
||||||
*/
|
|
||||||
qdf_freq_t wlan_reg_get_channel_freq(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t chan_num);
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_reg_get_current_chan_list() - provide the pdev current channel list
|
* wlan_reg_get_current_chan_list() - provide the pdev current channel list
|
||||||
* @pdev: pdev pointer
|
* @pdev: pdev pointer
|
||||||
@@ -818,41 +729,6 @@ QDF_STATUS regulatory_pdev_open(struct wlan_objmgr_pdev *pdev);
|
|||||||
*/
|
*/
|
||||||
QDF_STATUS regulatory_pdev_close(struct wlan_objmgr_pdev *pdev);
|
QDF_STATUS regulatory_pdev_close(struct wlan_objmgr_pdev *pdev);
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
/**
|
|
||||||
* wlan_reg_update_nol_ch () - set nol channel
|
|
||||||
* @pdev: pdev ptr
|
|
||||||
* @ch_list: channel list to be returned
|
|
||||||
* @num_ch: number of channels
|
|
||||||
* @nol_ch: nol flag
|
|
||||||
*
|
|
||||||
* Return: void
|
|
||||||
*/
|
|
||||||
void wlan_reg_update_nol_ch(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t *ch_list,
|
|
||||||
uint8_t num_ch,
|
|
||||||
bool nol_ch);
|
|
||||||
/**
|
|
||||||
* wlan_reg_is_passive_or_disable_ch () - Checks chan state for passive
|
|
||||||
* and disabled
|
|
||||||
* @pdev: pdev ptr
|
|
||||||
* @chan: channel
|
|
||||||
*
|
|
||||||
* Return: true or false
|
|
||||||
*/
|
|
||||||
bool wlan_reg_is_passive_or_disable_ch(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t chan);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* wlan_reg_is_disable_ch () - Checks chan state for disabled
|
|
||||||
* @pdev: pdev ptr
|
|
||||||
* @chan: channel
|
|
||||||
*
|
|
||||||
* Return: true or false
|
|
||||||
*/
|
|
||||||
bool wlan_reg_is_disable_ch(struct wlan_objmgr_pdev *pdev, uint8_t chan);
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_reg_freq_to_chan () - convert channel freq to channel number
|
* wlan_reg_freq_to_chan () - convert channel freq to channel number
|
||||||
* @pdev: The physical dev to set current country for
|
* @pdev: The physical dev to set current country for
|
||||||
@@ -888,17 +764,6 @@ bool wlan_reg_is_us(uint8_t *country);
|
|||||||
*/
|
*/
|
||||||
bool wlan_reg_is_etsi(uint8_t *country);
|
bool wlan_reg_is_etsi(uint8_t *country);
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
/**
|
|
||||||
* wlan_reg_chan_is_49ghz() - Check if the input channel number is 4.9GHz
|
|
||||||
* @pdev: Pdev pointer
|
|
||||||
* @chan_num: Input channel number
|
|
||||||
*
|
|
||||||
* Return: true if the channel is 4.9GHz else false.
|
|
||||||
*/
|
|
||||||
bool wlan_reg_chan_is_49ghz(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t chan_num);
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_reg_set_country() - Set the current regulatory country
|
* wlan_reg_set_country() - Set the current regulatory country
|
||||||
@@ -1007,23 +872,6 @@ wlan_reg_get_tx_ops(struct wlan_objmgr_psoc *psoc);
|
|||||||
QDF_STATUS wlan_reg_get_curr_regdomain(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS wlan_reg_get_curr_regdomain(struct wlan_objmgr_pdev *pdev,
|
||||||
struct cur_regdmn_info *cur_regdmn);
|
struct cur_regdmn_info *cur_regdmn);
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
/**
|
|
||||||
* wlan_reg_update_nol_history_ch() - Set nol-history flag for the channels in
|
|
||||||
* the list.
|
|
||||||
*
|
|
||||||
* @pdev: Pdev ptr
|
|
||||||
* @ch_list: Input channel list.
|
|
||||||
* @num_ch: Number of channels.
|
|
||||||
* @nol_history_ch: Nol history value.
|
|
||||||
*
|
|
||||||
* Return: void
|
|
||||||
*/
|
|
||||||
void wlan_reg_update_nol_history_ch(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t *ch_list,
|
|
||||||
uint8_t num_ch,
|
|
||||||
bool nol_history_ch);
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
/**
|
/**
|
||||||
* wlan_reg_is_regdmn_en302502_applicable() - Find if ETSI EN302_502 radar
|
* wlan_reg_is_regdmn_en302502_applicable() - Find if ETSI EN302_502 radar
|
||||||
* pattern is applicable in the current regulatory domain.
|
* pattern is applicable in the current regulatory domain.
|
||||||
@@ -1370,8 +1218,8 @@ bool wlan_reg_is_passive_for_freq(struct wlan_objmgr_pdev *pdev,
|
|||||||
qdf_freq_t freq);
|
qdf_freq_t freq);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_reg_chan_to_band() - Get band from channel number
|
* wlan_reg_freq_to_band() - Get band from channel number
|
||||||
* @chan_num: channel number
|
* @freq:Channel frequency in MHz
|
||||||
*
|
*
|
||||||
* Return: wifi band
|
* Return: wifi band
|
||||||
*/
|
*/
|
||||||
|
@@ -84,42 +84,6 @@ QDF_STATUS wlan_reg_get_max_5g_bw_from_regdomain(uint16_t regdmn,
|
|||||||
return reg_get_max_5g_bw_from_regdomain(regdmn, max_bw_5g);
|
return reg_get_max_5g_bw_from_regdomain(regdmn, max_bw_5g);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
/**
|
|
||||||
* wlan_reg_get_5g_bonded_channel_state() - Get 5G bonded channel state
|
|
||||||
* @ch: channel number.
|
|
||||||
* @bw: channel band width
|
|
||||||
*
|
|
||||||
* Return: channel state
|
|
||||||
*/
|
|
||||||
enum channel_state wlan_reg_get_5g_bonded_channel_state(
|
|
||||||
struct wlan_objmgr_pdev *pdev, uint8_t ch,
|
|
||||||
enum phy_ch_width bw)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* Get channel state from regulatory
|
|
||||||
*/
|
|
||||||
return reg_get_5g_bonded_channel_state(pdev, ch, bw);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* wlan_reg_get_2g_bonded_channel_state() - Get 2G bonded channel state
|
|
||||||
* @ch: channel number.
|
|
||||||
* @bw: channel band width
|
|
||||||
*
|
|
||||||
* Return: channel state
|
|
||||||
*/
|
|
||||||
enum channel_state wlan_reg_get_2g_bonded_channel_state(
|
|
||||||
struct wlan_objmgr_pdev *pdev, uint8_t ch,
|
|
||||||
uint8_t sec_ch, enum phy_ch_width bw)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* Get channel state from regulatory
|
|
||||||
*/
|
|
||||||
return reg_get_2g_bonded_channel_state(pdev, ch, sec_ch, bw);
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_reg_get_dfs_region () - Get the current dfs region
|
* wlan_reg_get_dfs_region () - Get the current dfs region
|
||||||
* @dfs_reg: pointer to dfs region
|
* @dfs_reg: pointer to dfs region
|
||||||
@@ -137,20 +101,6 @@ QDF_STATUS wlan_reg_get_dfs_region(struct wlan_objmgr_pdev *pdev,
|
|||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
/**
|
|
||||||
* wlan_reg_get_channel_freq() - get regulatory power for channel
|
|
||||||
* @chan_num: channel number
|
|
||||||
*
|
|
||||||
* Return: int
|
|
||||||
*/
|
|
||||||
qdf_freq_t wlan_reg_get_channel_freq(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t chan_num)
|
|
||||||
{
|
|
||||||
return reg_get_channel_freq(pdev, chan_num);
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
QDF_STATUS wlan_reg_get_current_chan_list(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS wlan_reg_get_current_chan_list(struct wlan_objmgr_pdev *pdev,
|
||||||
struct regulatory_channel *chan_list)
|
struct regulatory_channel *chan_list)
|
||||||
{
|
{
|
||||||
@@ -490,33 +440,6 @@ QDF_STATUS regulatory_pdev_close(struct wlan_objmgr_pdev *pdev)
|
|||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
void wlan_reg_update_nol_ch(struct wlan_objmgr_pdev *pdev, uint8_t *ch_list,
|
|
||||||
uint8_t num_ch, bool nol_ch)
|
|
||||||
{
|
|
||||||
reg_update_nol_ch(pdev, ch_list, num_ch, nol_ch);
|
|
||||||
}
|
|
||||||
|
|
||||||
void wlan_reg_update_nol_history_ch(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t *ch_list, uint8_t num_ch,
|
|
||||||
bool nol_history_ch)
|
|
||||||
{
|
|
||||||
reg_update_nol_history_ch(pdev, ch_list, num_ch, nol_history_ch);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wlan_reg_is_passive_or_disable_ch(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t chan)
|
|
||||||
{
|
|
||||||
return reg_is_passive_or_disable_ch(pdev, chan);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wlan_reg_is_disable_ch(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t chan)
|
|
||||||
{
|
|
||||||
return reg_is_disable_ch(pdev, chan);
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
uint8_t wlan_reg_freq_to_chan(struct wlan_objmgr_pdev *pdev,
|
uint8_t wlan_reg_freq_to_chan(struct wlan_objmgr_pdev *pdev,
|
||||||
qdf_freq_t freq)
|
qdf_freq_t freq)
|
||||||
{
|
{
|
||||||
@@ -531,14 +454,6 @@ qdf_freq_t wlan_reg_legacy_chan_to_freq(struct wlan_objmgr_pdev *pdev,
|
|||||||
return reg_legacy_chan_to_freq(pdev, chan_num);
|
return reg_legacy_chan_to_freq(pdev, chan_num);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
bool wlan_reg_chan_is_49ghz(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t chan_num)
|
|
||||||
{
|
|
||||||
return reg_chan_is_49ghz(pdev, chan_num);
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
QDF_STATUS wlan_reg_set_country(struct wlan_objmgr_pdev *pdev,
|
QDF_STATUS wlan_reg_set_country(struct wlan_objmgr_pdev *pdev,
|
||||||
uint8_t *country)
|
uint8_t *country)
|
||||||
{
|
{
|
||||||
@@ -591,14 +506,6 @@ bool wlan_reg_11d_enabled_on_host(struct wlan_objmgr_psoc *psoc)
|
|||||||
return reg_11d_enabled_on_host(psoc);
|
return reg_11d_enabled_on_host(psoc);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
bool wlan_reg_is_etsi13_srd_chan(struct wlan_objmgr_pdev *pdev,
|
|
||||||
uint8_t chan_num)
|
|
||||||
{
|
|
||||||
return reg_is_etsi13_srd_chan(pdev, chan_num);
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
bool wlan_reg_is_etsi13_regdmn(struct wlan_objmgr_pdev *pdev)
|
bool wlan_reg_is_etsi13_regdmn(struct wlan_objmgr_pdev *pdev)
|
||||||
{
|
{
|
||||||
return reg_is_etsi13_regdmn(pdev);
|
return reg_is_etsi13_regdmn(pdev);
|
||||||
@@ -689,27 +596,10 @@ QDF_STATUS wlan_reg_get_curr_regdomain(struct wlan_objmgr_pdev *pdev,
|
|||||||
return reg_get_curr_regdomain(pdev, cur_regdmn);
|
return reg_get_curr_regdomain(pdev, cur_regdmn);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
uint8_t wlan_reg_min_24ghz_ch_num(void)
|
|
||||||
{
|
|
||||||
return reg_min_24ghz_ch_num();
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t wlan_reg_max_24ghz_ch_num(void)
|
|
||||||
{
|
|
||||||
return reg_max_24ghz_ch_num();
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t wlan_reg_min_5ghz_ch_num(void)
|
|
||||||
{
|
|
||||||
return reg_min_5ghz_ch_num();
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t wlan_reg_max_5ghz_ch_num(void)
|
uint8_t wlan_reg_max_5ghz_ch_num(void)
|
||||||
{
|
{
|
||||||
return reg_max_5ghz_ch_num();
|
return reg_max_5ghz_ch_num();
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_FREQ_API
|
#ifdef CONFIG_CHAN_FREQ_API
|
||||||
qdf_freq_t wlan_reg_min_24ghz_chan_freq(void)
|
qdf_freq_t wlan_reg_min_24ghz_chan_freq(void)
|
||||||
@@ -874,13 +764,6 @@ qdf_freq_t wlan_reg_ch_to_freq(uint32_t ch_enum)
|
|||||||
return reg_ch_to_freq(ch_enum);
|
return reg_ch_to_freq(ch_enum);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CHAN_NUM_API
|
|
||||||
bool wlan_reg_is_channel_valid_5g_sbs(uint8_t curchan, uint8_t newchan)
|
|
||||||
{
|
|
||||||
return reg_is_channel_valid_5g_sbs(curchan, newchan);
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_CHAN_NUM_API */
|
|
||||||
|
|
||||||
bool wlan_reg_is_regdmn_en302502_applicable(struct wlan_objmgr_pdev *pdev)
|
bool wlan_reg_is_regdmn_en302502_applicable(struct wlan_objmgr_pdev *pdev)
|
||||||
{
|
{
|
||||||
return reg_is_regdmn_en302502_applicable(pdev);
|
return reg_is_regdmn_en302502_applicable(pdev);
|
||||||
|
新しいイシューから参照
ユーザーをブロックする