qcacld-3.0: SAP: Add radar pulse table for KR and CN
Add radar pulse table for new DFS domain KR and CN. Change-Id: I75708a215f51b558a6b7573bcc730a08d2e4bd11 CRs-Fixed: 1047817
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2011-2015 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2011-2016 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||||
*
|
||||
@@ -140,3 +140,56 @@ struct dfs_pulse dfs_etsi_radars[] = {
|
||||
/* 20-30us, 2000-4000 PRF, 20 pulses */
|
||||
{20, 30, 2000, 4000, 0, 24, 6, 19, 33, 24, 0, 0, 0, 36}, /* Type 4 */
|
||||
};
|
||||
|
||||
struct dfs_pulse dfs_korea_radars[] = {
|
||||
/* Korea Type 1 */
|
||||
{18, 1, 700, 700, 0, 6, 5, 0, 1, 18, 0, 3, 1, 40},
|
||||
|
||||
/* Korea Type 2 */
|
||||
{10, 1, 1800, 1800, 0, 6, 4, 0, 1, 18, 0, 3, 1, 41},
|
||||
|
||||
/* Korea Type 3 */
|
||||
{70, 1, 330, 330, 0, 6, 20, 0, 2, 18, 0, 3, 1, 42},
|
||||
|
||||
/* Korea Type 4 */
|
||||
{3, 1, 3003, 3003, 1, 7, 2, 0, 1, 18, 0, 0, 1, 43},
|
||||
};
|
||||
|
||||
struct dfs_pulse dfs_china_radars[] = {
|
||||
/* FCC NEW TYPE 0 */
|
||||
{18, 1, 700, 700, 0, 6, 5, 0, 1, 18, 0, 3, 1, 0},
|
||||
{18, 1, 350, 350, 0, 6, 5, 0, 1, 18, 0, 3, 0, 0},
|
||||
|
||||
/* FCC TYPE 6 */
|
||||
{ 9, 1, 3003, 3003, 1, 7, 5, 0, 1, 18, 0, 0, 1, 1},
|
||||
|
||||
/* FCC TYPE 2 */
|
||||
{23, 5, 4347, 6666, 0, 18, 8, 0, 7, 22, 0, 3, 0, 2},
|
||||
|
||||
/* FCC TYPE 3 */
|
||||
{18, 10, 2000, 5000, 0, 23, 6, 6, 13, 22, 0, 3, 0, 5},
|
||||
|
||||
/* FCC TYPE 4 */
|
||||
{16, 15, 2000, 5000, 0, 25, 5, 11, 23, 22, 0, 3, 0, 11},
|
||||
|
||||
/*
|
||||
* FCC NEW TYPE 1
|
||||
* 518us to 938us pulses (min 56 pulses)
|
||||
*/
|
||||
{57, 1, 1066, 1930, 0, 6, 20, 0, 1, 22, 0, 3, 0, 21},
|
||||
|
||||
/*
|
||||
* FCC NEW TYPE 1
|
||||
* 938us to 2000 pulses (min 26 pulses)
|
||||
*/
|
||||
{27, 1, 500, 1066, 0, 6, 13, 0, 1, 22, 0, 3, 0, 22},
|
||||
|
||||
/*
|
||||
* FCC NEW TYPE 1
|
||||
* 2000 to 3067us pulses (min 17 pulses)
|
||||
*/
|
||||
{18, 1, 325, 500, 0, 6, 9, 0, 1, 22, 0, 3, 0, 23},
|
||||
|
||||
/* CN TYPE 1 */
|
||||
{20, 1, 1000, 1000, 0, 6, 5, 0, 1, 18, 0, 3, 1, 24},
|
||||
};
|
||||
|
@@ -384,53 +384,67 @@ int dfs_init_radar_filters(struct ieee80211com *ic,
|
||||
dfs_print_filters(ic);
|
||||
#endif
|
||||
dfs->dfs_rinfo.rn_numbin5radars = numb5radars;
|
||||
if (dfs->dfs_b5radars != NULL)
|
||||
if (dfs->dfs_b5radars != NULL) {
|
||||
OS_FREE(dfs->dfs_b5radars);
|
||||
|
||||
dfs->dfs_b5radars = (struct dfs_bin5radars *)os_malloc(NULL,
|
||||
numb5radars *
|
||||
sizeof(struct
|
||||
dfs_bin5radars),
|
||||
GFP_KERNEL);
|
||||
if (dfs->dfs_b5radars == NULL) {
|
||||
DFS_DPRINTK(dfs, ATH_DEBUG_DFS,
|
||||
"%s: cannot allocate memory for bin5 radars",
|
||||
__func__);
|
||||
goto bad4;
|
||||
dfs->dfs_b5radars = NULL;
|
||||
}
|
||||
|
||||
if (ic->dfs_hw_bd_id != DFS_HWBD_QCA6174) {
|
||||
dfs->dfs_b5radars_ext_seg =
|
||||
(struct dfs_bin5radars *)os_malloc(NULL, numb5radars *
|
||||
sizeof(struct dfs_bin5radars),
|
||||
GFP_KERNEL);
|
||||
if (dfs->dfs_b5radars_ext_seg == NULL) {
|
||||
QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_ERROR,
|
||||
"%s:Fail allocate memory for ext bin5 radars",
|
||||
__func__);
|
||||
if (dfs->dfs_b5radars_ext_seg != NULL) {
|
||||
OS_FREE(dfs->dfs_b5radars_ext_seg);
|
||||
dfs->dfs_b5radars_ext_seg = NULL;
|
||||
}
|
||||
|
||||
if (numb5radars) {
|
||||
dfs->dfs_b5radars = (struct dfs_bin5radars *)os_malloc(NULL,
|
||||
numb5radars *
|
||||
sizeof(struct dfs_bin5radars),
|
||||
GFP_KERNEL);
|
||||
if (dfs->dfs_b5radars == NULL) {
|
||||
DFS_DPRINTK(dfs, ATH_DEBUG_DFS,
|
||||
"%s: cannot allocate memory for bin5 radars",
|
||||
__func__);
|
||||
goto bad4;
|
||||
}
|
||||
}
|
||||
|
||||
for (n = 0; n < numb5radars; n++) {
|
||||
dfs->dfs_b5radars[n].br_pulse = b5pulses[n];
|
||||
dfs->dfs_b5radars[n].br_pulse.b5_timewindow *=
|
||||
DFS_BIN5_TIME_WINDOW_UNITS_MULTIPLIER;
|
||||
if (dfs->dfs_b5radars[n].br_pulse.b5_rssithresh <
|
||||
min_rssithresh)
|
||||
min_rssithresh =
|
||||
dfs->dfs_b5radars[n].br_pulse.b5_rssithresh;
|
||||
if (dfs->dfs_b5radars[n].br_pulse.b5_maxdur > max_pulsedur)
|
||||
max_pulsedur = dfs->dfs_b5radars[n].br_pulse.b5_maxdur;
|
||||
}
|
||||
if (ic->dfs_hw_bd_id != DFS_HWBD_QCA6174) {
|
||||
dfs->dfs_b5radars_ext_seg =
|
||||
(struct dfs_bin5radars *)os_malloc(NULL,
|
||||
numb5radars *
|
||||
sizeof(struct dfs_bin5radars),
|
||||
GFP_KERNEL);
|
||||
if (dfs->dfs_b5radars_ext_seg == NULL) {
|
||||
QDF_TRACE(QDF_MODULE_ID_SAP,
|
||||
QDF_TRACE_LEVEL_ERROR,
|
||||
"%s:Fail allocate memory for ext bin5 radars",
|
||||
__func__);
|
||||
goto bad4;
|
||||
}
|
||||
}
|
||||
|
||||
if (ic->dfs_hw_bd_id != DFS_HWBD_QCA6174) {
|
||||
for (n = 0; n < numb5radars; n++) {
|
||||
dfs->dfs_b5radars_ext_seg[n].br_pulse = b5pulses[n];
|
||||
dfs->dfs_b5radars[n].br_pulse = b5pulses[n];
|
||||
dfs->dfs_b5radars[n].br_pulse.b5_timewindow *=
|
||||
DFS_BIN5_TIME_WINDOW_UNITS_MULTIPLIER;
|
||||
if (dfs->dfs_b5radars[n].br_pulse.b5_rssithresh <
|
||||
min_rssithresh)
|
||||
min_rssithresh =
|
||||
dfs->dfs_b5radars[n].br_pulse.b5_rssithresh;
|
||||
|
||||
if (dfs->dfs_b5radars[n].br_pulse.b5_maxdur >
|
||||
max_pulsedur)
|
||||
max_pulsedur =
|
||||
dfs->dfs_b5radars[n].br_pulse.b5_maxdur;
|
||||
}
|
||||
|
||||
if (ic->dfs_hw_bd_id != DFS_HWBD_QCA6174) {
|
||||
for (n = 0; n < numb5radars; n++) {
|
||||
dfs->dfs_b5radars_ext_seg[n].br_pulse =
|
||||
b5pulses[n];
|
||||
dfs->dfs_b5radars_ext_seg[n].br_pulse.b5_timewindow *=
|
||||
DFS_BIN5_TIME_WINDOW_UNITS_MULTIPLIER;
|
||||
DFS_BIN5_TIME_WINDOW_UNITS_MULTIPLIER;
|
||||
b5_rssithresh =
|
||||
dfs->dfs_b5radars_ext_seg[n].br_pulse.b5_rssithresh;
|
||||
dfs->dfs_b5radars_ext_seg[n].br_pulse.b5_rssithresh;
|
||||
|
||||
if (b5_rssithresh < min_rssithresh)
|
||||
min_rssithresh = b5_rssithresh;
|
||||
|
||||
@@ -439,6 +453,7 @@ int dfs_init_radar_filters(struct ieee80211com *ic,
|
||||
if (b5_maxdur > max_pulsedur)
|
||||
max_pulsedur = b5_maxdur;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user