qcacmn: ETSI 302-502 Radar Pattern for ETSI11
According to the updates of Regdomain_23 submitted on 2017-5-18, added two pulses (ETSI 302-502) in the static ETSI radar table for ETSI11 regdomain.These two pulses are applicable only for 5.8GHz (greater than 5.725 GHz) channels. Change-Id: I2f1e5535040ced9847eedff65dbe892e4d0fb056 CRs-Fixed: 2145124
This commit is contained in:

committed by
snandini

vanhempi
d8987b30ff
commit
d9bf209f70
@@ -280,6 +280,16 @@
|
||||
#define NUM_BINS 128
|
||||
#define THOUSAND 1000
|
||||
|
||||
/* Check if the dfs current channel is 5.8GHz */
|
||||
#define DFS_CURCHAN_IS_58GHz(freq) \
|
||||
((((freq) >= 5745) && ((freq) <= 5865)) ? true : false)
|
||||
|
||||
/* ETSI11_WORLD regdmn pair id */
|
||||
#define ETSI11_WORLD_REGDMN_PAIR_ID 0x26
|
||||
|
||||
/* Array offset to ETSI legacy pulse */
|
||||
#define ETSI_LEGACY_PULSE_ARR_OFFSET 2
|
||||
|
||||
/**
|
||||
* struct dfs_pulseparams - DFS pulse param structure.
|
||||
* @p_time: Time for start of pulse in usecs.
|
||||
|
@@ -39,6 +39,12 @@
|
||||
* AR5212 chipset.
|
||||
*/
|
||||
struct dfs_pulse ar5212_etsi_radars[] = {
|
||||
/* EN 302 502 frequency hopping pulse */
|
||||
/* PRF 3000, 1us duration, 9 pulses per burst */
|
||||
{9, 1, 3000, 3000, 1, 4, 5, 0, 1, 18, 0, 0, 1, 1000, 0, 40},
|
||||
/* PRF 4500, 20us duration, 9 pulses per burst */
|
||||
{9, 20, 4500, 4500, 1, 4, 5, 19, 21, 18, 0, 0, 1, 1000, 0, 41},
|
||||
|
||||
/* TYPE 1 */
|
||||
{10, 2, 750, 0, 24, 50, 0, 2, 22, 0, 3, 0, 0},
|
||||
|
||||
@@ -165,6 +171,8 @@ void dfs_get_radars_for_ar5212(struct wlan_dfs *dfs)
|
||||
{
|
||||
struct wlan_dfs_radar_tab_info rinfo;
|
||||
int dfsdomain = DFS_FCC_DOMAIN;
|
||||
uint16_t ch_freq;
|
||||
uint16_t regdmn;
|
||||
|
||||
qdf_mem_zero(&rinfo, sizeof(rinfo));
|
||||
dfsdomain = utils_get_dfsdomain(dfs->dfs_pdev_obj);
|
||||
@@ -181,8 +189,21 @@ void dfs_get_radars_for_ar5212(struct wlan_dfs *dfs)
|
||||
case DFS_ETSI_DOMAIN:
|
||||
dfs_info(dfs, WLAN_DEBUG_DFS_ALWAYS, "DFS_ETSI_DOMAIN_5412");
|
||||
rinfo.dfsdomain = DFS_ETSI_DOMAIN;
|
||||
rinfo.dfs_radars = &ar5212_etsi_radars[0];
|
||||
rinfo.numradars = QDF_ARRAY_SIZE(ar5212_etsi_radars);
|
||||
|
||||
ch_freq = dfs->dfs_curchan->dfs_ch_freq;
|
||||
regdmn = utils_dfs_get_cur_rd(dfs->dfs_pdev_obj);
|
||||
|
||||
if ((regdmn == ETSI11_WORLD_REGDMN_PAIR_ID) &&
|
||||
DFS_CURCHAN_IS_58GHz(ch_freq)) {
|
||||
rinfo.dfs_radars = ar5212_etsi_radars;
|
||||
rinfo.numradars = QDF_ARRAY_SIZE(ar5212_etsi_radars);
|
||||
} else {
|
||||
uint8_t offset = ETSI_LEGACY_PULSE_ARR_OFFSET;
|
||||
|
||||
rinfo.dfs_radars = &ar5212_etsi_radars[offset];
|
||||
rinfo.numradars =
|
||||
QDF_ARRAY_SIZE(ar5212_etsi_radars) - offset;
|
||||
}
|
||||
rinfo.b5pulses = &ar5212_bin5pulses[0];
|
||||
rinfo.numb5radars = QDF_ARRAY_SIZE(ar5212_bin5pulses);
|
||||
break;
|
||||
|
@@ -43,6 +43,13 @@
|
||||
* AR5416 chipset.
|
||||
*/
|
||||
struct dfs_pulse ar5416_etsi_radars[] = {
|
||||
|
||||
/* EN 302 502 frequency hopping pulse */
|
||||
/* PRF 3000, 1us duration, 9 pulses per burst */
|
||||
{9, 1, 3000, 3000, 1, 4, 5, 0, 1, 18, 0, 0, 1, 1000, 0, 40},
|
||||
/* PRF 4500, 20us duration, 9 pulses per burst */
|
||||
{9, 20, 4500, 4500, 1, 4, 5, 19, 21, 18, 0, 0, 1, 1000, 0, 41},
|
||||
|
||||
/* TYPE staggered pulse */
|
||||
/* 0.8-2us, 2-3 bursts,300-400 PRF, 10 pulses each */
|
||||
{20, 2, 300, 400, 2, 30, 4, 0, 2, 15, 0, 0, 0, 0, 0, 31},
|
||||
@@ -108,6 +115,8 @@ void dfs_get_radars_for_ar5416(struct wlan_dfs *dfs)
|
||||
{
|
||||
struct wlan_dfs_radar_tab_info rinfo;
|
||||
int dfsdomain = DFS_FCC_DOMAIN;
|
||||
uint16_t ch_freq;
|
||||
uint16_t regdmn;
|
||||
|
||||
qdf_mem_zero(&rinfo, sizeof(rinfo));
|
||||
dfsdomain = utils_get_dfsdomain(dfs->dfs_pdev_obj);
|
||||
@@ -124,8 +133,22 @@ void dfs_get_radars_for_ar5416(struct wlan_dfs *dfs)
|
||||
case DFS_ETSI_DOMAIN:
|
||||
dfs_info(dfs, WLAN_DEBUG_DFS_ALWAYS, "DFS_ETSI_DOMAIN_5416");
|
||||
rinfo.dfsdomain = DFS_ETSI_DOMAIN;
|
||||
rinfo.dfs_radars = &ar5416_etsi_radars[0];
|
||||
rinfo.numradars = QDF_ARRAY_SIZE(ar5416_etsi_radars);
|
||||
|
||||
ch_freq = dfs->dfs_curchan->dfs_ch_freq;
|
||||
regdmn = utils_dfs_get_cur_rd(dfs->dfs_pdev_obj);
|
||||
|
||||
if ((regdmn == ETSI11_WORLD_REGDMN_PAIR_ID) &&
|
||||
DFS_CURCHAN_IS_58GHz(ch_freq)) {
|
||||
rinfo.dfs_radars = ar5416_etsi_radars;
|
||||
rinfo.numradars = QDF_ARRAY_SIZE(ar5416_etsi_radars);
|
||||
} else {
|
||||
uint8_t offset = ETSI_LEGACY_PULSE_ARR_OFFSET;
|
||||
|
||||
rinfo.dfs_radars = &ar5416_etsi_radars[offset];
|
||||
rinfo.numradars =
|
||||
QDF_ARRAY_SIZE(ar5416_etsi_radars) - offset;
|
||||
}
|
||||
|
||||
rinfo.b5pulses = &ar5416_bin5pulses[0];
|
||||
rinfo.numb5radars = QDF_ARRAY_SIZE(ar5416_bin5pulses);
|
||||
break;
|
||||
|
@@ -57,6 +57,13 @@
|
||||
* as the estimated RSSI.
|
||||
*/
|
||||
struct dfs_pulse ar9300_etsi_radars[] = {
|
||||
|
||||
/* EN 302 502 frequency hopping pulse */
|
||||
/* PRF 3000, 1us duration, 9 pulses per burst */
|
||||
{9, 1, 3000, 3000, 1, 4, 5, 0, 1, 18, 0, 0, 1, 1000, 0, 40},
|
||||
/* PRF 4500, 20us duration, 9 pulses per burst */
|
||||
{9, 20, 4500, 4500, 1, 4, 5, 19, 21, 18, 0, 0, 1, 1000, 0, 41},
|
||||
|
||||
/* TYPE staggered pulse */
|
||||
/* Type 5*/
|
||||
/* 0.8-2us, 2-3 bursts,300-400 PRF, 10 pulses each */
|
||||
@@ -163,6 +170,8 @@ void dfs_get_radars_for_ar9300(struct wlan_dfs *dfs)
|
||||
{
|
||||
struct wlan_dfs_radar_tab_info rinfo;
|
||||
int dfsdomain = DFS_FCC_DOMAIN;
|
||||
uint16_t ch_freq;
|
||||
uint16_t regdmn;
|
||||
|
||||
qdf_mem_zero(&rinfo, sizeof(rinfo));
|
||||
dfsdomain = utils_get_dfsdomain(dfs->dfs_pdev_obj);
|
||||
@@ -182,8 +191,22 @@ void dfs_get_radars_for_ar9300(struct wlan_dfs *dfs)
|
||||
case DFS_ETSI_DOMAIN:
|
||||
dfs_info(dfs, WLAN_DEBUG_DFS_ALWAYS, "DFS_ETSI_DOMAIN_9300");
|
||||
rinfo.dfsdomain = DFS_ETSI_DOMAIN;
|
||||
rinfo.dfs_radars = &ar9300_etsi_radars[0];
|
||||
rinfo.numradars = QDF_ARRAY_SIZE(ar9300_etsi_radars);
|
||||
|
||||
ch_freq = dfs->dfs_curchan->dfs_ch_freq;
|
||||
regdmn = utils_dfs_get_cur_rd(dfs->dfs_pdev_obj);
|
||||
|
||||
if ((regdmn == ETSI11_WORLD_REGDMN_PAIR_ID) &&
|
||||
DFS_CURCHAN_IS_58GHz(ch_freq)) {
|
||||
rinfo.dfs_radars = ar9300_etsi_radars;
|
||||
rinfo.numradars = QDF_ARRAY_SIZE(ar9300_etsi_radars);
|
||||
} else {
|
||||
uint8_t offset = ETSI_LEGACY_PULSE_ARR_OFFSET;
|
||||
|
||||
rinfo.dfs_radars = &ar9300_etsi_radars[offset];
|
||||
rinfo.numradars =
|
||||
QDF_ARRAY_SIZE(ar9300_etsi_radars) - offset;
|
||||
}
|
||||
|
||||
rinfo.b5pulses = &ar9300_bin5pulses[0];
|
||||
rinfo.numb5radars = QDF_ARRAY_SIZE(ar9300_bin5pulses);
|
||||
break;
|
||||
|
@@ -157,6 +157,12 @@ struct dfs_bin5pulse dfs_jpn_bin5pulses_qca9984[] = {
|
||||
*/
|
||||
struct dfs_pulse dfs_etsi_radars[] = {
|
||||
|
||||
/* EN 302 502 frequency hopping pulse */
|
||||
/* PRF 3000, 1us duration, 9 pulses per burst */
|
||||
{9, 1, 3000, 3000, 1, 4, 5, 0, 1, 18, 0, 0, 1, 1000, 0, 40},
|
||||
/* PRF 4500, 20us duration, 9 pulses per burst */
|
||||
{9, 20, 4500, 4500, 1, 4, 5, 19, 21, 18, 0, 0, 1, 1000, 0, 41},
|
||||
|
||||
/* TYPE staggered pulse */
|
||||
/* Type 5*/
|
||||
/* 0.8-2us, 2-3 bursts,300-400 PRF, 10 pulses each */
|
||||
@@ -280,6 +286,8 @@ void ol_if_dfs_configure(struct wlan_dfs *dfs)
|
||||
int i;
|
||||
uint32_t target_type;
|
||||
int dfsdomain = DFS_FCC_DOMAIN;
|
||||
uint16_t ch_freq;
|
||||
uint16_t regdmn;
|
||||
|
||||
/* Fetch current radar patterns from the lmac */
|
||||
qdf_mem_zero(&rinfo, sizeof(rinfo));
|
||||
@@ -322,8 +330,21 @@ void ol_if_dfs_configure(struct wlan_dfs *dfs)
|
||||
case DFS_ETSI_DOMAIN:
|
||||
dfs_info(dfs, WLAN_DEBUG_DFS_ALWAYS, "ETSI domain");
|
||||
rinfo.dfsdomain = DFS_ETSI_DOMAIN;
|
||||
rinfo.dfs_radars = dfs_etsi_radars;
|
||||
rinfo.numradars = QDF_ARRAY_SIZE(dfs_etsi_radars);
|
||||
|
||||
ch_freq = dfs->dfs_curchan->dfs_ch_freq;
|
||||
regdmn = utils_dfs_get_cur_rd(dfs->dfs_pdev_obj);
|
||||
|
||||
if ((regdmn == ETSI11_WORLD_REGDMN_PAIR_ID) &&
|
||||
DFS_CURCHAN_IS_58GHz(ch_freq)) {
|
||||
rinfo.dfs_radars = dfs_etsi_radars;
|
||||
rinfo.numradars = QDF_ARRAY_SIZE(dfs_etsi_radars);
|
||||
} else {
|
||||
uint8_t offset = ETSI_LEGACY_PULSE_ARR_OFFSET;
|
||||
|
||||
rinfo.dfs_radars = &dfs_etsi_radars[offset];
|
||||
rinfo.numradars =
|
||||
QDF_ARRAY_SIZE(dfs_etsi_radars) - offset;
|
||||
}
|
||||
rinfo.b5pulses = NULL;
|
||||
rinfo.numb5radars = 0;
|
||||
break;
|
||||
|
@@ -430,4 +430,12 @@ QDF_STATUS utils_dfs_update_cur_chan_flags(struct wlan_objmgr_pdev *pdev,
|
||||
*/
|
||||
int utils_get_dfsdomain(struct wlan_objmgr_pdev *pdev);
|
||||
|
||||
/**
|
||||
* utils_dfs_get_cur_rd() - Get current regdomain.
|
||||
* @pdev: pdev ptr
|
||||
*
|
||||
* Return: Regdomain pair id.
|
||||
*/
|
||||
uint16_t utils_dfs_get_cur_rd(struct wlan_objmgr_pdev *pdev);
|
||||
|
||||
#endif /* _WLAN_DFS_UTILS_API_H_ */
|
||||
|
@@ -853,3 +853,12 @@ int utils_get_dfsdomain(struct wlan_objmgr_pdev *pdev)
|
||||
|
||||
return dfsdomain;
|
||||
}
|
||||
|
||||
uint16_t utils_dfs_get_cur_rd(struct wlan_objmgr_pdev *pdev)
|
||||
{
|
||||
struct cur_regdmn_info cur_regdmn;
|
||||
|
||||
wlan_reg_get_curr_regdomain(pdev, &cur_regdmn);
|
||||
|
||||
return cur_regdmn.regdmn_pair_id;
|
||||
}
|
||||
|
Viittaa uudesa ongelmassa
Block a user