qcacmn: Remove the unused CHAN_NUM functions

Clean up following functions:
dfs_mark_precac_done
dfs_unmark_precac_nol/utils_dfs_unmark_precac_nol
dfs_mlme_start_csa/mlme_start_csa
dfs_mlme_get_extchan/mlme_get_extchan
dfs_fill_chan_info
utils_dfs_get_channel_list
dfs_clear_nolhistory
dfs_getchanstate
dfs_radar_enable
os_timer_func
dfs_cac_timeout

Change-Id: Id0775ba34b6f1f6c7fedaea9711d81ca07956c70
CRs-Fixed: 2946423
This commit is contained in:
Jianmin Zhu
2021-05-15 20:34:54 +08:00
committed by Madan Koyyalamudi
parent 2ea97ac985
commit ef56741282
10 changed files with 3 additions and 670 deletions

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2016-2020 The Linux Foundation. All rights reserved. * Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2007-2008 Sam Leffler, Errno Consulting * Copyright (c) 2007-2008 Sam Leffler, Errno Consulting
* All rights reserved. * All rights reserved.
* *
@@ -941,23 +941,6 @@ bool dfs_is_precac_done_on_ht8080_chan(struct wlan_dfs *dfs,
struct dfs_channel *chan); struct dfs_channel *chan);
#if defined(WLAN_DFS_PARTIAL_OFFLOAD) && !defined(QCA_MCL_DFS_SUPPORT) #if defined(WLAN_DFS_PARTIAL_OFFLOAD) && !defined(QCA_MCL_DFS_SUPPORT)
/**
* dfs_find_chwidth_and_center_chan() - Find the channel width enum and
* primary and secondary center channel
* value of the current channel.
* @dfs: Pointer to wlan_dfs structure.
* @chwidth: Channel width enum of current channel.
* @primary_chan_ieee: Primary IEEE channel.
* @secondary_chan_ieee: Secondary IEEE channel (in HT80_80 mode).
*/
#ifdef CONFIG_CHAN_NUM_API
void dfs_find_chwidth_and_center_chan(struct wlan_dfs *dfs,
enum phy_ch_width *chwidth,
uint8_t *primary_chan_ieee,
uint8_t *secondary_chan_ieee);
#endif
#ifdef CONFIG_CHAN_FREQ_API #ifdef CONFIG_CHAN_FREQ_API
/** /**
* dfs_find_curchwidth_and_center_chan_for_freq() - Find the channel width * dfs_find_curchwidth_and_center_chan_for_freq() - Find the channel width
@@ -976,20 +959,6 @@ dfs_find_curchwidth_and_center_chan_for_freq(struct wlan_dfs *dfs,
uint16_t *secondary_chan_freq); uint16_t *secondary_chan_freq);
#endif #endif
/**
* dfs_mark_precac_done() - Mark the channel as preCAC done.
* @dfs: Pointer to wlan_dfs structure.
* @pri_ch_ieee: Primary channel IEEE.
* @sec_ch_ieee: Secondary channel IEEE (only in HT80_80 mode).
* @ch_width: Channel width enum.
*/
#ifdef CONFIG_CHAN_NUM_API
void dfs_mark_precac_done(struct wlan_dfs *dfs,
uint8_t pri_ch_ieee,
uint8_t sec_ch_ieee,
enum phy_ch_width ch_width);
#endif
#ifdef CONFIG_CHAN_FREQ_API #ifdef CONFIG_CHAN_FREQ_API
/** /**
* dfs_mark_precac_done_for_freq() - Mark the channel as preCAC done. * dfs_mark_precac_done_for_freq() - Mark the channel as preCAC done.
@@ -1055,15 +1024,6 @@ void dfs_unmark_precac_nol_for_freq(struct wlan_dfs *dfs, uint16_t chan_freq);
#endif #endif
#else #else
#ifdef CONFIG_CHAN_NUM_API
static inline void
dfs_find_chwidth_and_center_chan(struct wlan_dfs *dfs,
enum phy_ch_width *chwidth,
uint8_t *primary_chan_ieee,
uint8_t *secondary_chan_ieee)
{
}
#endif
#ifdef CONFIG_CHAN_FREQ_API #ifdef CONFIG_CHAN_FREQ_API
static inline void static inline void
@@ -1075,15 +1035,6 @@ dfs_find_curchwidth_and_center_chan_for_freq(struct wlan_dfs *dfs,
} }
#endif #endif
#ifdef CONFIG_CHAN_NUM_API
static inline void dfs_mark_precac_done(struct wlan_dfs *dfs,
uint8_t pri_ch_ieee,
uint8_t sec_ch_ieee,
enum phy_ch_width ch_width)
{
}
#endif
#ifdef CONFIG_CHAN_FREQ_API #ifdef CONFIG_CHAN_FREQ_API
static inline void dfs_mark_precac_done_for_freq(struct wlan_dfs *dfs, static inline void dfs_mark_precac_done_for_freq(struct wlan_dfs *dfs,
uint16_t pri_chan_freq, uint16_t pri_chan_freq,

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2016-2020 The Linux Foundation. All rights reserved. * Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2011, Atheros Communications Inc. * Copyright (c) 2011, Atheros Communications Inc.
* *
* Permission to use, copy, modify, and/or distribute this software for any * Permission to use, copy, modify, and/or distribute this software for any
@@ -130,77 +130,6 @@ struct dfs_state *dfs_getchanstate(struct wlan_dfs *dfs, uint8_t *index,
return NULL; return NULL;
} }
#else
#ifdef CONFIG_CHAN_NUM_API
struct dfs_state *dfs_getchanstate(struct wlan_dfs *dfs, uint8_t *index,
int ext_chan_flag)
{
struct dfs_state *rs = NULL;
struct dfs_channel *cmp_ch, cmp_ch1;
int i;
QDF_STATUS err;
if (!dfs) {
dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "dfs is NULL");
return NULL;
}
cmp_ch = &cmp_ch1;
if (ext_chan_flag) {
err = dfs_mlme_get_extchan(dfs->dfs_pdev_obj,
&(cmp_ch->dfs_ch_freq),
&(cmp_ch->dfs_ch_flags),
&(cmp_ch->dfs_ch_flagext),
&(cmp_ch->dfs_ch_ieee),
&(cmp_ch->dfs_ch_vhtop_ch_freq_seg1),
&(cmp_ch->dfs_ch_vhtop_ch_freq_seg2));
if (err == QDF_STATUS_SUCCESS) {
dfs_debug(dfs, WLAN_DEBUG_DFS2,
"Extension channel freq = %u flags=0x%x",
cmp_ch->dfs_ch_freq,
cmp_ch->dfs_ch_flagext);
} else
return NULL;
} else {
cmp_ch = dfs->dfs_curchan;
dfs_debug(dfs, WLAN_DEBUG_DFS2,
"Primary channel freq = %u flags=0x%x",
cmp_ch->dfs_ch_freq, cmp_ch->dfs_ch_flagext);
}
for (i = 0; i < DFS_NUM_RADAR_STATES; i++) {
if ((dfs->dfs_radar[i].rs_chan.dfs_ch_freq ==
cmp_ch->dfs_ch_freq) &&
(dfs->dfs_radar[i].rs_chan.dfs_ch_flags ==
cmp_ch->dfs_ch_flags)
) {
if (index)
*index = (uint8_t)i;
return &(dfs->dfs_radar[i]);
}
}
/* No existing channel found, look for first free channel state entry.*/
for (i = 0; i < DFS_NUM_RADAR_STATES; i++) {
if (dfs->dfs_radar[i].rs_chan.dfs_ch_freq == 0) {
rs = &(dfs->dfs_radar[i]);
/* Found one, set channel info and default thresholds.*/
rs->rs_chan = *cmp_ch;
/* Copy the parameters from the default set. */
dfs_phyerr_param_copy(&rs->rs_param,
&dfs->dfs_defaultparams);
if (index)
*index = (uint8_t)i;
return rs;
}
}
dfs_debug(dfs, WLAN_DEBUG_DFS2, "No more radar states left.");
return NULL;
}
#endif
#endif #endif
#ifdef CONFIG_CHAN_FREQ_API #ifdef CONFIG_CHAN_FREQ_API
@@ -295,99 +224,6 @@ void dfs_radar_enable(struct wlan_dfs *dfs, int no_cac, uint32_t opmode)
"No more radar states left"); "No more radar states left");
} }
} }
#else
#ifdef CONFIG_CHAN_NUM_API
void dfs_radar_enable(struct wlan_dfs *dfs, int no_cac, uint32_t opmode)
{
int is_ext_ch;
int is_fastclk = 0;
struct dfs_channel *ext_ch, extchan;
QDF_STATUS err = QDF_STATUS_E_FAILURE;
if (!dfs) {
dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "dfs is NULL");
return;
}
is_ext_ch = WLAN_IS_CHAN_11N_HT40(dfs->dfs_curchan);
lmac_dfs_disable(dfs->dfs_pdev_obj, no_cac);
/*
* In all modes, if the primary is DFS then we have to
* enable radar detection. In HT80_80, we can have
* primary non-DFS 80MHz with extension 80MHz DFS.
*/
if ((WLAN_IS_CHAN_DFS(dfs->dfs_curchan) ||
((WLAN_IS_CHAN_11AC_VHT160(dfs->dfs_curchan) ||
WLAN_IS_CHAN_11AC_VHT80_80(dfs->dfs_curchan))
&&
WLAN_IS_CHAN_DFS_CFREQ2(dfs->dfs_curchan))) ||
(dfs_is_precac_timer_running(dfs))) {
struct dfs_state *rs_pri = NULL, *rs_ext = NULL;
uint8_t index_pri, index_ext;
dfs->dfs_proc_phyerr |= DFS_AR_EN;
dfs->dfs_proc_phyerr |= DFS_RADAR_EN;
dfs->dfs_proc_phyerr |= DFS_SECOND_SEGMENT_RADAR_EN;
ext_ch = &extchan;
if (is_ext_ch)
err = dfs_mlme_get_extchan(dfs->dfs_pdev_obj,
&(ext_ch->dfs_ch_freq),
&(ext_ch->dfs_ch_flags),
&(ext_ch->dfs_ch_flagext),
&(ext_ch->dfs_ch_ieee),
&(ext_ch->dfs_ch_vhtop_ch_freq_seg1),
&(ext_ch->dfs_ch_vhtop_ch_freq_seg2));
dfs_reset_alldelaylines(dfs);
rs_pri = dfs_getchanstate(dfs, &index_pri, 0);
if (err == QDF_STATUS_SUCCESS)
rs_ext = dfs_getchanstate(dfs, &index_ext, 1);
if (rs_pri && ((err == QDF_STATUS_E_FAILURE) ||
(rs_ext))) {
struct wlan_dfs_phyerr_param pe;
qdf_mem_set(&pe, sizeof(pe), '\0');
if (index_pri != dfs->dfs_curchan_radindex)
dfs_reset_alldelaylines(dfs);
dfs->dfs_curchan_radindex = (int16_t)index_pri;
if (rs_ext)
dfs->dfs_extchan_radindex = (int16_t)index_ext;
dfs_phyerr_param_copy(&pe, &rs_pri->rs_param);
dfs_debug(dfs, WLAN_DEBUG_DFS3,
"firpwr=%d, rssi=%d, height=%d, prssi=%d, inband=%d, relpwr=%d, relstep=%d, maxlen=%d",
pe.pe_firpwr,
pe.pe_rrssi, pe.pe_height,
pe.pe_prssi, pe.pe_inband,
pe.pe_relpwr, pe.pe_relstep,
pe.pe_maxlen);
lmac_dfs_enable(dfs->dfs_pdev_obj, &is_fastclk,
&pe, dfs->dfsdomain);
dfs_debug(dfs, WLAN_DEBUG_DFS,
"Enabled radar detection on channel %d",
dfs->dfs_curchan->dfs_ch_freq);
dfs->dur_multiplier = is_fastclk ?
DFS_FAST_CLOCK_MULTIPLIER :
DFS_NO_FAST_CLOCK_MULTIPLIER;
dfs_debug(dfs, WLAN_DEBUG_DFS3,
"duration multiplier is %d",
dfs->dur_multiplier);
} else
dfs_debug(dfs, WLAN_DEBUG_DFS,
"No more radar states left");
}
}
#endif
#endif #endif
int dfs_set_thresholds(struct wlan_dfs *dfs, const uint32_t threshtype, int dfs_set_thresholds(struct wlan_dfs *dfs, const uint32_t threshtype,

View File

@@ -142,28 +142,6 @@ static os_timer_func(dfs_testtimer_task)
dfs->dfs_curchan->dfs_ch_mhz_freq_seg2, dfs->dfs_curchan->dfs_ch_mhz_freq_seg2,
dfs->dfs_curchan->dfs_ch_flags); dfs->dfs_curchan->dfs_ch_flags);
} }
#else
#ifdef CONFIG_CHAN_NUM_API
static os_timer_func(dfs_testtimer_task)
{
struct wlan_dfs *dfs = NULL;
OS_GET_TIMER_ARG(dfs, struct wlan_dfs *);
dfs->wlan_dfstest = 0;
/*
* Flip the channel back to the original channel.
* Make sure this is done properly with a CSA.
*/
dfs_debug(dfs, WLAN_DEBUG_DFS_ALWAYS, "go back to channel %d",
dfs->wlan_dfstest_ieeechan);
dfs_mlme_start_csa(dfs->dfs_pdev_obj,
dfs->wlan_dfstest_ieeechan,
dfs->dfs_curchan->dfs_ch_freq,
dfs->dfs_curchan->dfs_ch_vhtop_ch_freq_seg2,
dfs->dfs_curchan->dfs_ch_flags);
}
#endif
#endif #endif
int dfs_get_debug_info(struct wlan_dfs *dfs, void *data) int dfs_get_debug_info(struct wlan_dfs *dfs, void *data)

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2016-2020 The Linux Foundation. All rights reserved. * Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2007-2008 Sam Leffler, Errno Consulting * Copyright (c) 2007-2008 Sam Leffler, Errno Consulting
* All rights reserved. * All rights reserved.
* *
@@ -155,74 +155,6 @@ static os_timer_func(dfs_cac_timeout)
else else
dfs_process_cac_completion(dfs); dfs_process_cac_completion(dfs);
} }
#else
#ifdef CONFIG_CHAN_NUM_API
static os_timer_func(dfs_cac_timeout)
{
struct wlan_dfs *dfs = NULL;
enum phy_ch_width ch_width = CH_WIDTH_INVALID;
uint8_t primary_chan_ieee = 0, secondary_chan_ieee = 0;
OS_GET_TIMER_ARG(dfs, struct wlan_dfs *);
dfs->dfs_cac_timer_running = 0;
dfs_info(dfs, WLAN_DEBUG_DFS_ALWAYS, "cac expired, chan %d curr time %d",
dfs->dfs_curchan->dfs_ch_freq,
(qdf_system_ticks_to_msecs(qdf_system_ticks()) / 1000));
/*
* When radar is detected during a CAC we are woken up prematurely to
* switch to a new channel. Check the channel to decide how to act.
*/
if (WLAN_IS_CHAN_RADAR(dfs, dfs->dfs_curchan)) {
dfs_mlme_mark_dfs(dfs->dfs_pdev_obj,
dfs->dfs_curchan->dfs_ch_ieee,
dfs->dfs_curchan->dfs_ch_freq,
dfs->dfs_curchan->dfs_ch_vhtop_ch_freq_seg2,
dfs->dfs_curchan->dfs_ch_flags);
dfs_debug(dfs, WLAN_DEBUG_DFS,
"CAC timer on channel %u (%u MHz) stopped due to radar",
dfs->dfs_curchan->dfs_ch_ieee,
dfs->dfs_curchan->dfs_ch_freq);
} else {
dfs_debug(dfs, WLAN_DEBUG_DFS,
"CAC timer on channel %u (%u MHz) expired; no radar detected",
dfs->dfs_curchan->dfs_ch_ieee,
dfs->dfs_curchan->dfs_ch_freq);
/* On CAC completion, set the bit 'cac_valid'.
* CAC will not be re-done if this bit is reset.
* The flag will be reset when dfs_cac_valid_timer
* timesout.
*/
if (dfs->dfs_cac_valid_time) {
dfs->dfs_cac_valid = 1;
qdf_timer_mod(&dfs->dfs_cac_valid_timer,
dfs->dfs_cac_valid_time * 1000);
}
dfs_find_chwidth_and_center_chan(dfs,
&ch_width,
&primary_chan_ieee,
&secondary_chan_ieee);
/* Mark the current channel as preCAC done */
dfs_mark_precac_done(dfs, primary_chan_ieee,
secondary_chan_ieee, ch_width);
}
dfs_clear_cac_started_chan(dfs);
/* Iterate over the nodes, processing the CAC completion event. */
dfs_mlme_proc_cac(dfs->dfs_pdev_obj, 0);
/* Send a CAC timeout, VAP up event to user space */
dfs_mlme_deliver_event_up_after_cac(dfs->dfs_pdev_obj);
if (dfs->dfs_defer_precac_channel_change == 1) {
dfs_mlme_channel_change_by_precac(dfs->dfs_pdev_obj);
dfs->dfs_defer_precac_channel_change = 0;
}
}
#endif
#endif #endif
#ifdef QCA_SUPPORT_DFS_CAC #ifdef QCA_SUPPORT_DFS_CAC

View File

@@ -112,62 +112,6 @@ static os_timer_func(dfs_nol_timeout)
qdf_system_ticks_to_msecs(qdf_system_ticks())); qdf_system_ticks_to_msecs(qdf_system_ticks()));
} }
} }
#else
#ifdef CONFIG_CHAN_NUM_API
static os_timer_func(dfs_nol_timeout)
{
struct dfs_channel *c = NULL, lc;
unsigned long oldest, now;
struct wlan_dfs *dfs = NULL;
int i;
int nchans = 0;
c = &lc;
OS_GET_TIMER_ARG(dfs, struct wlan_dfs *);
dfs_mlme_get_dfs_ch_nchans(dfs->dfs_pdev_obj, &nchans);
now = oldest = qdf_system_ticks();
for (i = 0; i < nchans; i++) {
dfs_mlme_get_dfs_ch_channels(dfs->dfs_pdev_obj,
&(c->dfs_ch_freq),
&(c->dfs_ch_flags),
&(c->dfs_ch_flagext),
&(c->dfs_ch_ieee),
&(c->dfs_ch_vhtop_ch_freq_seg1),
&(c->dfs_ch_vhtop_ch_freq_seg2),
i);
if (WLAN_IS_CHAN_RADAR(dfs, c)) {
if (qdf_system_time_after_eq(now,
dfs->dfs_nol_event[i] +
dfs_get_nol_timeout(dfs))) {
c->dfs_ch_flagext &=
~WLAN_CHAN_DFS_RADAR_FOUND;
if (c->dfs_ch_flags &
WLAN_CHAN_DFS_RADAR) {
/*
* NB: do this here so we get only one
* msg instead of one for every channel
* table entry.
*/
dfs_debug(dfs, WLAN_DEBUG_DFS,
"radar on channel %u (%u MHz) cleared after timeout",
c->dfs_ch_ieee,
c->dfs_ch_freq);
}
} else if (dfs->dfs_nol_event[i] < oldest)
oldest = dfs->dfs_nol_event[i];
}
}
if (oldest != now) {
/* Arrange to process next channel up for a status change. */
qdf_timer_mod(&dfs->dfs_nol_timer,
dfs_get_nol_timeout(dfs) -
qdf_system_ticks_to_msecs(qdf_system_ticks()));
}
}
#endif
#endif #endif
/** /**
@@ -348,40 +292,6 @@ static os_timer_func(dfs_remove_from_nol)
utils_dfs_agile_sm_deliver_evt(dfs->dfs_pdev_obj, utils_dfs_agile_sm_deliver_evt(dfs->dfs_pdev_obj,
DFS_AGILE_SM_EV_AGILE_START); DFS_AGILE_SM_EV_AGILE_START);
} }
#else
#ifdef CONFIG_CHAN_NUM_API
static os_timer_func(dfs_remove_from_nol)
{
struct dfs_nolelem *nol_arg;
struct wlan_dfs *dfs;
uint16_t delfreq;
uint16_t delchwidth;
uint8_t chan;
OS_GET_TIMER_ARG(nol_arg, struct dfs_nolelem *);
dfs = nol_arg->nol_dfs;
delfreq = nol_arg->nol_freq;
delchwidth = nol_arg->nol_chwidth;
/* Delete the given NOL entry. */
DFS_NOL_DELETE_CHAN_LOCKED(dfs, delfreq, delchwidth);
/* Update the wireless stack with the new NOL. */
dfs_nol_update(dfs);
dfs_mlme_nol_timeout_notification(dfs->dfs_pdev_obj);
chan = utils_dfs_freq_to_chan(delfreq);
utils_dfs_deliver_event(dfs->dfs_pdev_obj, delfreq,
WLAN_EV_NOL_FINISHED);
dfs_debug(dfs, WLAN_DEBUG_DFS_NOL,
"remove channel %d from nol", chan);
utils_dfs_unmark_precac_nol(dfs->dfs_pdev_obj, chan);
utils_dfs_reg_update_nol_ch(dfs->dfs_pdev_obj,
&chan, 1, DFS_NOL_RESET);
utils_dfs_save_nol(dfs->dfs_pdev_obj);
}
#endif
#endif #endif
void dfs_print_nol(struct wlan_dfs *dfs) void dfs_print_nol(struct wlan_dfs *dfs)
@@ -825,69 +735,6 @@ void dfs_clear_nolhistory(struct wlan_dfs *dfs)
qdf_mem_free(chan_list); qdf_mem_free(chan_list);
qdf_mem_free(nol_freq_list); qdf_mem_free(nol_freq_list);
} }
#else
#ifdef CONFIG_CHAN_NUM_API
void dfs_clear_nolhistory(struct wlan_dfs *dfs)
{
struct dfs_channel *chan_list;
int nchans;
bool sta_opmode;
int i;
uint8_t *nol_chan_ieee_list = NULL;
int num_nol_history_chans;
if (!dfs->dfs_is_stadfs_enabled)
return;
sta_opmode = dfs_mlme_is_opmode_sta(dfs->dfs_pdev_obj);
if (!sta_opmode)
return;
nchans = dfs_get_num_chans();
if (!nchans) {
dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "zero chans");
return;
}
chan_list = qdf_mem_malloc(nchans * sizeof(*chan_list));
if (!chan_list)
return;
utils_dfs_get_nol_history_chan_list(dfs->dfs_pdev_obj,
(void *)chan_list,
&num_nol_history_chans);
if (!num_nol_history_chans) {
dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "zero chans");
qdf_mem_free(chan_list);
return;
}
if (num_nol_history_chans > nchans)
num_nol_history_chans = nchans;
nol_chan_ieee_list =
qdf_mem_malloc(num_nol_history_chans * sizeof(uint8_t));
if (!nol_chan_ieee_list) {
dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "Unable to alloc memory for ieee list");
qdf_mem_free(chan_list);
return;
}
for (i = 0; i < num_nol_history_chans; i++)
nol_chan_ieee_list[i] = chan_list[i].dfs_ch_ieee;
utils_dfs_reg_update_nol_history_ch(dfs->dfs_pdev_obj,
nol_chan_ieee_list,
num_nol_history_chans,
DFS_NOL_HISTORY_RESET);
qdf_mem_free(chan_list);
qdf_mem_free(nol_chan_ieee_list);
}
#endif
#endif #endif
#endif #endif

View File

@@ -65,22 +65,6 @@ dfs_mlme_proc_spoof_success(struct wlan_objmgr_pdev *pdev)
} }
#endif #endif
/**
* dfs_mlme_start_csa() - Sends CSA in ieeeChan
* @pdev: Pointer to DFS pdev object.
* @ieee_chan: Channel number.
* @freq: Channel frequency.
* @cfreq2: HT80 cfreq2.
* @flags: channel flags.
*/
#ifdef CONFIG_CHAN_NUM_API
void dfs_mlme_start_csa(struct wlan_objmgr_pdev *pdev,
uint8_t ieee_chan,
uint16_t freq,
uint8_t cfreq2,
uint64_t flags);
#endif
/** /**
* dfs_mlme_start_csa_for_freq() - Sends CSA in ieeeChan * dfs_mlme_start_csa_for_freq() - Sends CSA in ieeeChan
* @pdev: Pointer to DFS pdev object. * @pdev: Pointer to DFS pdev object.
@@ -117,27 +101,6 @@ void dfs_mlme_deliver_event_up_after_cac(struct wlan_objmgr_pdev *pdev);
*/ */
void dfs_mlme_get_dfs_ch_nchans(struct wlan_objmgr_pdev *pdev, int *nchans); void dfs_mlme_get_dfs_ch_nchans(struct wlan_objmgr_pdev *pdev, int *nchans);
/**
* dfs_mlme_get_extchan() - Get extension channel.
* @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.
*/
#ifdef CONFIG_CHAN_NUM_API
QDF_STATUS dfs_mlme_get_extchan(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
/** /**
* dfs_mlme_get_extchan() - Get extension channel. * dfs_mlme_get_extchan() - Get extension channel.
* @pdev: Pointer to DFS pdev object. * @pdev: Pointer to DFS pdev object.

View File

@@ -36,13 +36,11 @@
* @pdev_component_obj_detach: Detach DFS object from PDEV. * @pdev_component_obj_detach: Detach DFS object from PDEV.
* @pdev_get_comp_private_obj: Get DFS object from PDEV. * @pdev_get_comp_private_obj: Get DFS object from PDEV.
* @dfs_start_rcsa: Send RCSA to RootAP. * @dfs_start_rcsa: Send RCSA to RootAP.
* @mlme_start_csa: Sends CSA.
* @mlme_proc_cac: Process the CAC completion event. * @mlme_proc_cac: Process the CAC completion event.
* @mlme_deliver_event_up_after_cac: Send a CAC timeout, VAP up event to user * @mlme_deliver_event_up_after_cac: Send a CAC timeout, VAP up event to user
* space * space
* @mlme_get_dfs_ch_nchans: Get number of channels in the channel * @mlme_get_dfs_ch_nchans: Get number of channels in the channel
* list. * list.
* @mlme_get_extchan: Gets the extension channel.
* @mlme_set_no_chans_available: Sets no_chans_available flag. * @mlme_set_no_chans_available: Sets no_chans_available flag.
* @mlme_ieee2mhz: Gets Channel freq from ieee number. * @mlme_ieee2mhz: Gets Channel freq from ieee number.
* @mlme_find_dot11_channel: Find dot11 channel. * @mlme_find_dot11_channel: Find dot11 channel.
@@ -95,11 +93,6 @@ struct dfs_to_mlme {
uint16_t freq, uint16_t freq,
uint16_t vhtop_ch_freq_seg2, uint16_t vhtop_ch_freq_seg2,
uint64_t flags); uint64_t flags);
#ifdef CONFIG_CHAN_NUM_API
QDF_STATUS (*mlme_start_csa)(struct wlan_objmgr_pdev *pdev,
uint8_t ieee_chan, uint16_t freq,
uint8_t cfreq2, uint64_t flags);
#endif
#ifdef CONFIG_CHAN_FREQ_API #ifdef CONFIG_CHAN_FREQ_API
QDF_STATUS (*mlme_start_csa_for_freq)(struct wlan_objmgr_pdev *pdev, QDF_STATUS (*mlme_start_csa_for_freq)(struct wlan_objmgr_pdev *pdev,
uint8_t ieee_chan, uint16_t freq, uint8_t ieee_chan, uint16_t freq,
@@ -111,15 +104,6 @@ struct dfs_to_mlme {
struct wlan_objmgr_pdev *pdev); struct wlan_objmgr_pdev *pdev);
QDF_STATUS (*mlme_get_dfs_ch_nchans)(struct wlan_objmgr_pdev *pdev, QDF_STATUS (*mlme_get_dfs_ch_nchans)(struct wlan_objmgr_pdev *pdev,
int *nchans); int *nchans);
#ifdef CONFIG_CHAN_NUM_API
QDF_STATUS (*mlme_get_extchan)(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
#ifdef CONFIG_CHAN_FREQ_API #ifdef CONFIG_CHAN_FREQ_API
QDF_STATUS (*mlme_get_extchan_for_freq)(struct wlan_objmgr_pdev *pdev, QDF_STATUS (*mlme_get_extchan_for_freq)(struct wlan_objmgr_pdev *pdev,
uint16_t *dfs_ch_freq, uint16_t *dfs_ch_freq,

View File

@@ -140,17 +140,6 @@ bool utils_dfs_is_freq_in_nol(struct wlan_objmgr_pdev *pdev, uint32_t freq);
*/ */
QDF_STATUS utils_dfs_reset_precaclists(struct wlan_objmgr_pdev *pdev); QDF_STATUS utils_dfs_reset_precaclists(struct wlan_objmgr_pdev *pdev);
/**
* utils_dfs_unmark_precac_nol() - Clears precac channel marked as NOL.
* @pdev: Pointer to DFS pdev object.
* @chan: channel to be unmarked as NOL.
*
* Return void.
*/
#ifdef CONFIG_CHAN_NUM_API
void utils_dfs_unmark_precac_nol(struct wlan_objmgr_pdev *pdev, uint8_t chan);
#endif
/** /**
* utils_dfs_unmark_precac_nol_for_freq() - Clears precac channel marked as NOL. * utils_dfs_unmark_precac_nol_for_freq() - Clears precac channel marked as NOL.
* @pdev: Pointer to DFS pdev object. * @pdev: Pointer to DFS pdev object.

View File

@@ -103,16 +103,6 @@ void dfs_mlme_mark_dfs(struct wlan_objmgr_pdev *pdev,
#endif #endif
#ifndef QCA_MCL_DFS_SUPPORT #ifndef QCA_MCL_DFS_SUPPORT
#ifdef CONFIG_CHAN_NUM_API
void dfs_mlme_start_csa(struct wlan_objmgr_pdev *pdev,
uint8_t ieee_chan, uint16_t freq,
uint8_t cfreq2, uint64_t flags)
{
if (global_dfs_to_mlme.mlme_start_csa)
global_dfs_to_mlme.mlme_start_csa(pdev, ieee_chan, freq, cfreq2,
flags);
}
#endif
#ifdef CONFIG_CHAN_FREQ_API #ifdef CONFIG_CHAN_FREQ_API
void dfs_mlme_start_csa_for_freq(struct wlan_objmgr_pdev *pdev, void dfs_mlme_start_csa_for_freq(struct wlan_objmgr_pdev *pdev,
uint8_t ieee_chan, uint16_t freq, uint8_t ieee_chan, uint16_t freq,
@@ -124,26 +114,6 @@ void dfs_mlme_start_csa_for_freq(struct wlan_objmgr_pdev *pdev,
} }
#endif #endif
#else #else
#ifdef CONFIG_CHAN_NUM_API
void dfs_mlme_start_csa(struct wlan_objmgr_pdev *pdev,
uint8_t ieee_chan, uint16_t freq,
uint8_t cfreq2, uint64_t flags)
{
struct wlan_objmgr_vdev *vdev;
if (!pdev) {
dfs_err(NULL, WLAN_DEBUG_DFS_ALWAYS, "null pdev");
return;
}
vdev = wlan_pdev_peek_active_first_vdev(pdev, WLAN_DFS_ID);
if (vdev) {
dfs_send_radar_ind(pdev, vdev, NULL);
wlan_objmgr_vdev_release_ref(vdev, WLAN_DFS_ID);
}
}
#endif
#ifdef CONFIG_CHAN_FREQ_API #ifdef CONFIG_CHAN_FREQ_API
void dfs_mlme_start_csa_for_freq(struct wlan_objmgr_pdev *pdev, void dfs_mlme_start_csa_for_freq(struct wlan_objmgr_pdev *pdev,
uint8_t ieee_chan, uint16_t freq, uint8_t ieee_chan, uint16_t freq,
@@ -203,28 +173,6 @@ void dfs_mlme_get_dfs_ch_nchans(struct wlan_objmgr_pdev *pdev,
nchans); nchans);
} }
#ifdef CONFIG_CHAN_NUM_API
QDF_STATUS dfs_mlme_get_extchan(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)
{
if (global_dfs_to_mlme.mlme_get_extchan)
return global_dfs_to_mlme.mlme_get_extchan(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);
return QDF_STATUS_E_FAILURE;
}
#endif
#ifdef CONFIG_CHAN_FREQ_API #ifdef CONFIG_CHAN_FREQ_API
QDF_STATUS dfs_mlme_get_extchan_for_freq(struct wlan_objmgr_pdev *pdev, QDF_STATUS dfs_mlme_get_extchan_for_freq(struct wlan_objmgr_pdev *pdev,
uint16_t *dfs_chan_freq, uint16_t *dfs_chan_freq,

View File

@@ -104,21 +104,6 @@ QDF_STATUS utils_dfs_reset_precaclists(struct wlan_objmgr_pdev *pdev)
} }
qdf_export_symbol(utils_dfs_reset_precaclists); qdf_export_symbol(utils_dfs_reset_precaclists);
#ifdef CONFIG_CHAN_NUM_API
void utils_dfs_unmark_precac_nol(struct wlan_objmgr_pdev *pdev, uint8_t chan)
{
struct wlan_dfs *dfs;
dfs = wlan_pdev_get_dfs_obj(pdev);
if (!dfs)
return;
dfs_unmark_precac_nol(dfs, chan);
}
qdf_export_symbol(utils_dfs_unmark_precac_nol);
#endif
#ifdef CONFIG_CHAN_FREQ_API #ifdef CONFIG_CHAN_FREQ_API
void utils_dfs_unmark_precac_nol_for_freq(struct wlan_objmgr_pdev *pdev, void utils_dfs_unmark_precac_nol_for_freq(struct wlan_objmgr_pdev *pdev,
uint16_t chan_freq) uint16_t chan_freq)
@@ -284,19 +269,6 @@ static void dfs_fill_chan_info(struct dfs_channel *chan,
chan->dfs_ch_mhz_freq_seg1 = wlan_chan->ch_cfreq1; chan->dfs_ch_mhz_freq_seg1 = wlan_chan->ch_cfreq1;
chan->dfs_ch_mhz_freq_seg2 = wlan_chan->ch_cfreq2; chan->dfs_ch_mhz_freq_seg2 = wlan_chan->ch_cfreq2;
} }
#else
#ifdef CONFIG_CHAN_NUM_API
static void dfs_fill_chan_info(struct dfs_channel *chan,
struct wlan_channel *wlan_chan)
{
chan->dfs_ch_freq = wlan_chan->ch_freq;
chan->dfs_ch_flags = wlan_chan->ch_flags;
chan->dfs_ch_flagext = wlan_chan->ch_flagext;
chan->dfs_ch_ieee = wlan_chan->ch_ieee;
chan->dfs_ch_vhtop_ch_freq_seg1 = wlan_chan->ch_freq_seg1;
chan->dfs_ch_vhtop_ch_freq_seg2 = wlan_chan->ch_freq_seg2;
}
#endif
#endif #endif
bool utils_dfs_is_precac_done(struct wlan_objmgr_pdev *pdev, bool utils_dfs_is_precac_done(struct wlan_objmgr_pdev *pdev,
@@ -786,74 +758,7 @@ static void utils_dfs_get_channel_list(struct wlan_objmgr_pdev *pdev,
qdf_mem_free(tmp_chan_list); qdf_mem_free(tmp_chan_list);
} }
#else /* NUM_API */
#ifdef CONFIG_CHAN_NUM_API
static void utils_dfs_get_channel_list(struct wlan_objmgr_pdev *pdev,
struct wlan_objmgr_vdev *vdev,
struct dfs_channel *chan_list,
uint32_t *num_chan)
{
struct dfs_channel *tmp_chan_list = NULL;
struct wlan_dfs *dfs;
bool is_curchan_5g;
bool is_curchan_24g;
bool is_curchan_49g;
uint32_t chan_num;
uint32_t center_freq;
uint16_t flagext;
int i, j = 0;
dfs = wlan_pdev_get_dfs_obj(pdev);
if (!dfs) {
dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "null dfs");
return;
}
tmp_chan_list = qdf_mem_malloc(*num_chan * sizeof(*tmp_chan_list));
if (!tmp_chan_list)
return;
utils_dfs_get_chan_list(pdev, (void *)tmp_chan_list, num_chan);
chan_num = dfs->dfs_curchan->dfs_ch_ieee;
center_freq = dfs->dfs_curchan->dfs_ch_freq;
is_curchan_5g = WLAN_REG_IS_5GHZ_CH_FREQ(center_freq);
is_curchan_24g = WLAN_REG_IS_24GHZ_CH_FREQ(center_freq);
is_curchan_49g = WLAN_REG_IS_49GHZ_FREQ(center_freq);
for (i = 0; i < *num_chan; i++) {
chan_num = tmp_chan_list[i].dfs_ch_ieee;
center_freq = tmp_chan_list[i].dfs_ch_freq;
flagext = tmp_chan_list[i].dfs_ch_flagext;
if (!dfs_mlme_check_allowed_prim_chanlist(pdev, chan_num))
continue;
if ((is_curchan_5g) && WLAN_REG_IS_5GHZ_CH_FREQ(center_freq)) {
chan_list[j].dfs_ch_ieee = chan_num;
chan_list[j].dfs_ch_freq = center_freq;
chan_list[j].dfs_ch_flagext = flagext;
j++;
} else if ((is_curchan_24g) &&
WLAN_REG_IS_24GHZ_CH_FREQ(center_freq)) {
chan_list[j].dfs_ch_ieee = chan_num;
chan_list[j].dfs_ch_freq = center_freq;
j++;
} else if ((is_curchan_49g) &&
WLAN_REG_IS_49GHZ_FREQ(center_freq)) {
chan_list[j].dfs_ch_ieee = chan_num;
chan_list[j].dfs_ch_freq = center_freq;
j++;
}
}
*num_chan = j;
qdf_mem_free(tmp_chan_list);
}
#endif #endif
#endif
#else #else
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)