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
このコミットが含まれているのは:
Ashish Kumar Dhanotiya
2021-04-26 13:28:16 +05:30
committed by Madan Koyyalamudi
コミット 433c6f024a
26個のファイルの変更14行の追加2167行の削除

ファイルの表示

@@ -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);