qcacmn: Add back dfs_set_nol() to common code

dfs_set_nol function is also required by MCC DFS function, Change-Id
I6c74dd13a16acb2a67bb3b477b13bc0e4ee165ce move implementation from
common code to WIN, add back it.

Change-Id: I46c16eec82024c3af4b4cee02ff19edb0023d3b6
CRs-Fixed: 2875061
このコミットが含まれているのは:
Will Huang
2021-02-22 16:26:31 +08:00
committed by snandini
コミット cb60cd6b2b
2個のファイルの変更78行の追加10行の削除

ファイルの表示

@@ -1635,19 +1635,9 @@ void dfs_get_nol(struct wlan_dfs *dfs,
* @dfs_nol: Pointer to dfsreq_nolelem structure.
* @nchan: Number of channels.
*/
#ifdef QCA_RADARTOOL_CMD
void dfs_set_nol(struct wlan_dfs *dfs,
struct dfsreq_nolelem *dfs_nol,
int nchan);
#else
static inline
void dfs_set_nol(struct wlan_dfs *dfs,
struct dfsreq_nolelem *dfs_nol,
int nchan)
{
}
#endif
/**
* dfs_nol_update() - NOL update

ファイルの表示

@@ -469,6 +469,84 @@ void dfs_get_nol(struct wlan_dfs *dfs,
}
}
#ifdef CONFIG_CHAN_FREQ_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;
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));
utils_dfs_reg_update_nol_chan_for_freq(
dfs->dfs_pdev_obj,
&chan.dfs_ch_freq,
1, DFS_NOL_SET);
}
}
#undef TIME_IN_MS
dfs_nol_update(dfs);
}
#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
void dfs_nol_addchan(struct wlan_dfs *dfs,
uint16_t freq,
uint32_t dfs_nol_timeout)