summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKiran Kumar Lokere <klokere@qca.qualcomm.com>2014-01-12 17:10:31 -0800
committerPrakash Dhavali <pdhavali@qca.qualcomm.com>2014-01-24 19:21:47 -0800
commitba634cd4657ae88d8ba77d309673c9145e9fe57e (patch)
treeaccb43efc9597a244212ccc2c76497f1bd48bc33
parent70fc54041d64e09f7f7dc2ca6e878ae71bda517e (diff)
Fix the CAC timeout value for ETSI reg domain
Fix the CAC timeout value for ETSI domain wether channels. Change-Id: I07529f2b8c463bb7e55c266d6a2117f8fcacb87c CRs-Fixed: 600104
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg80211.c2
-rw-r--r--CORE/SAP/src/sapFsm.c12
-rw-r--r--CORE/SAP/src/sapInternal.h4
3 files changed, 17 insertions, 1 deletions
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index acdfd9a8ceaf..8facceb8c21a 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -1880,6 +1880,8 @@ static int wlan_hdd_cfg80211_start_bss(hdd_adapter_t *pHostapdAdapter,
}
else
{
+ pConfig->countryCode[0] = pHddCtx->reg.alpha2[0];
+ pConfig->countryCode[1] = pHddCtx->reg.alpha2[1];
pConfig->ieee80211d = 0;
}
/*
diff --git a/CORE/SAP/src/sapFsm.c b/CORE/SAP/src/sapFsm.c
index 7664e054c79e..665d791b9fd2 100644
--- a/CORE/SAP/src/sapFsm.c
+++ b/CORE/SAP/src/sapFsm.c
@@ -1849,6 +1849,8 @@ void sapDfsCacTimerCallback(void *data)
int sapStartDfsCacTimer(ptSapContext sapContext)
{
VOS_STATUS status;
+ v_U32_t cacTimeOut;
+ v_REGDOMAIN_t regDomain;
if (sapContext == NULL)
{
return 0;
@@ -1861,12 +1863,20 @@ int sapStartDfsCacTimer(ptSapContext sapContext)
*/
return 2;
}
+ cacTimeOut = DEFAULT_CAC_TIMEOUT;
+ vos_nv_getRegDomainFromCountryCode(&regDomain,
+ sapContext->csrRoamProfile.countryCode, COUNTRY_QUERY);
+ if ((regDomain == REGDOMAIN_ETSI) &&
+ (IS_ETSI_WEATHER_CH(sapContext->SapDfsInfo.target_channel)))
+ {
+ cacTimeOut = ETSI_WEATHER_CH_CAC_TIMEOUT;
+ }
vos_timer_init(&sapContext->SapDfsInfo.sap_dfs_cac_timer,
VOS_TIMER_TYPE_SW,
sapDfsCacTimerCallback, (v_PVOID_t)sapContext);
/*Start the CAC timer for 60 Seconds*/
- status = vos_timer_start(&sapContext->SapDfsInfo.sap_dfs_cac_timer, 60000);
+ status = vos_timer_start(&sapContext->SapDfsInfo.sap_dfs_cac_timer, cacTimeOut);
if (status == VOS_STATUS_SUCCESS)
{
sapContext->SapDfsInfo.is_dfs_cac_timer_running = VOS_TRUE;
diff --git a/CORE/SAP/src/sapInternal.h b/CORE/SAP/src/sapInternal.h
index 248614ac45b0..818eb03dd07e 100644
--- a/CORE/SAP/src/sapInternal.h
+++ b/CORE/SAP/src/sapInternal.h
@@ -99,6 +99,10 @@ when who what, where, why
//MAC Address length
#define ANI_EAPOL_KEY_RSN_NONCE_SIZE 32
+#define IS_ETSI_WEATHER_CH(_ch) ((_ch >= 120) && (_ch <= 130))
+#define DEFAULT_CAC_TIMEOUT (60 * 1000) //msecs - 1 min
+#define ETSI_WEATHER_CH_CAC_TIMEOUT (10 * 60 * 1000) //msecs - 10 min
+
extern sRegulatoryChannel *regChannels;
extern const tRfChannelProps rfChannels[NUM_RF_CHANNELS];