summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRajeev Kumar <rajekuma@qca.qualcomm.com>2015-07-10 18:04:39 -0700
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2015-07-15 17:32:39 +0530
commitb23d5ee80964e7a286745540a030dd9b37a7d2d1 (patch)
tree7da7bca1614a99e6a5a6656d785271d0eb482b66
parent7ccb48389d526e7c63a6e9eeb2d9738c6fa3d70a (diff)
qcacld-2.0: Take WPS probe req wake up config from hostapd
- Hostapd sends WPS configuration durign cfg80211 start bss - Pass WPS configuration to WMA and in WMA check WPS config before enabling WPS probe request wake up in FW. Change-Id: Ia3119aed36ba96f7c859c487d508233099186eef CRs-Fixed: 871318
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg80211.c1
-rw-r--r--CORE/MAC/src/include/sirParams.h5
-rw-r--r--CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c1
-rw-r--r--CORE/SAP/inc/sapApi.h5
-rw-r--r--CORE/SERVICES/WMA/wma.c31
-rw-r--r--CORE/SERVICES/WMA/wma.h1
-rw-r--r--CORE/WDA/inc/legacy/halMsgApi.h1
7 files changed, 29 insertions, 16 deletions
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index a5b54592ce88..781ed1ea3de4 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -11038,6 +11038,7 @@ static int wlan_hdd_cfg80211_start_bss(hdd_adapter_t *pHostapdAdapter,
}
else
{
+ hddLog(LOG1, "WPS disabled");
pConfig->wps_state = SAP_WPS_DISABLED;
}
pConfig->fwdWPSPBCProbeReq = 1; // Forward WPS PBC probe request frame up
diff --git a/CORE/MAC/src/include/sirParams.h b/CORE/MAC/src/include/sirParams.h
index 1e41049a0a3e..ae30ba646bdb 100644
--- a/CORE/MAC/src/include/sirParams.h
+++ b/CORE/MAC/src/include/sirParams.h
@@ -43,6 +43,11 @@
# include "sirTypes.h"
+/* defines for WPS config states */
+#define SAP_WPS_DISABLED 0
+#define SAP_WPS_ENABLED_UNCONFIGURED 1
+#define SAP_WPS_ENABLED_CONFIGURED 2
+
// Firmware wide constants
#define SIR_MAX_PACKET_SIZE 512
diff --git a/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c b/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c
index 25d250a0429a..c351fa0ec4bb 100644
--- a/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c
+++ b/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c
@@ -1656,6 +1656,7 @@ limMlmAddBss (
pAddBssParams->beaconInterval = pMlmStartReq->beaconPeriod;
pAddBssParams->dtimPeriod = pMlmStartReq->dtimPeriod;
+ pAddBssParams->wps_state = pMlmStartReq->wps_state;
pAddBssParams->cfParamSet.cfpCount = pMlmStartReq->cfParamSet.cfpCount;
pAddBssParams->cfParamSet.cfpPeriod = pMlmStartReq->cfParamSet.cfpPeriod;
pAddBssParams->cfParamSet.cfpMaxDuration = pMlmStartReq->cfParamSet.cfpMaxDuration;
diff --git a/CORE/SAP/inc/sapApi.h b/CORE/SAP/inc/sapApi.h
index c1715a482cb5..e9d71934385d 100644
--- a/CORE/SAP/inc/sapApi.h
+++ b/CORE/SAP/inc/sapApi.h
@@ -97,11 +97,6 @@ when who what, where, why
#define AUTO_CHANNEL_SELECT 0
#define MAX_ASSOC_IND_IE_LEN 255
-/* defines for WPS config states */
-#define SAP_WPS_DISABLED 0
-#define SAP_WPS_ENABLED_UNCONFIGURED 1
-#define SAP_WPS_ENABLED_CONFIGURED 2
-
#define MAX_NAME_SIZE 64
#define MAX_TEXT_SIZE 32
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index 09fb71c23060..62dcbbeb2f19 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -13504,6 +13504,8 @@ static void wma_add_bss_ap_mode(tp_wma_handle wma, tpAddBssParams add_bss)
WMA_LOGE("%s: Failed to get vdev handle", __func__);
goto send_fail_resp;
}
+
+ wma->interfaces[vdev_id].wps_state = add_bss->wps_state;
wma_set_bss_rate_flags(&wma->interfaces[vdev_id], add_bss);
status = wma_create_peer(wma, pdev, vdev, add_bss->bssId,
WMI_PEER_TYPE_DEFAULT, vdev_id,
@@ -19300,6 +19302,7 @@ static VOS_STATUS wma_feed_wow_config_to_fw(tp_wma_handle wma,
#ifdef QCA_IBSS_SUPPORT
v_BOOL_t ibss_vdev_available = FALSE;
#endif
+ bool wps_enable = false;
/* Gather list of free ptrn id. This is needed while configuring
* default wow patterns.
@@ -19320,10 +19323,13 @@ static VOS_STATUS wma_feed_wow_config_to_fw(tp_wma_handle wma,
if (wma_is_vdev_in_ap_mode(wma, vdev_id)
#ifdef QCA_IBSS_SUPPORT
- || wma_is_vdev_in_ibss_mode(wma, vdev_id)
+ || wma_is_vdev_in_ibss_mode(wma, vdev_id)
#endif
- )
+ ) {
ap_vdev_available = TRUE;
+ if (SAP_WPS_DISABLED != iface->wps_state)
+ wps_enable = true;
+ }
#ifdef QCA_IBSS_SUPPORT
if (wma_is_vdev_in_ibss_mode(wma, vdev_id))
@@ -19449,15 +19455,18 @@ static VOS_STATUS wma_feed_wow_config_to_fw(tp_wma_handle wma,
WMA_LOGD("GTK based wakeup is %s in fw",
wma->wow.gtk_pdev_enable ? "enabled" : "disabled");
#endif
- /* Configure probe req based wakeup */
- ret = wma_add_wow_wakeup_event(wma, WOW_PROBE_REQ_WPS_IE_EVENT,
- ap_vdev_available);
- if (ret != VOS_STATUS_SUCCESS) {
- WMA_LOGE("Failed to configure probe req based wakeup");
- goto end;
- } else
- WMA_LOGD("Probe req based wakeup is %s in fw",
- ap_vdev_available ? "enabled" : "disabled");
+ if (ap_vdev_available) {
+ /* Configure probe req based wakeup */
+ ret = wma_add_wow_wakeup_event(wma, WOW_PROBE_REQ_WPS_IE_EVENT,
+ wps_enable);
+ if (ret != VOS_STATUS_SUCCESS) {
+ WMA_LOGE("Failed to configure probe req based wakeup");
+ goto end;
+ } else {
+ WMA_LOGD("WPS Probe req based wakeup is %s in fw",
+ wps_enable ? "enabled" : "disabled");
+ }
+ }
/* Configure auth req based wakeup */
ret = wma_add_wow_wakeup_event(wma, WOW_AUTH_REQ_EVENT,
diff --git a/CORE/SERVICES/WMA/wma.h b/CORE/SERVICES/WMA/wma.h
index b6b82f3dec56..8ee66f816ee2 100644
--- a/CORE/SERVICES/WMA/wma.h
+++ b/CORE/SERVICES/WMA/wma.h
@@ -550,6 +550,7 @@ struct wma_txrx_node {
#endif
uint32_t alt_modulated_dtim;
bool alt_modulated_dtim_enabled;
+ uint8_t wps_state;
};
#if defined(QCA_WIFI_FTM)
diff --git a/CORE/WDA/inc/legacy/halMsgApi.h b/CORE/WDA/inc/legacy/halMsgApi.h
index fa1f21dc428d..ffc953f342cf 100644
--- a/CORE/WDA/inc/legacy/halMsgApi.h
+++ b/CORE/WDA/inc/legacy/halMsgApi.h
@@ -536,6 +536,7 @@ typedef struct
tANI_U16 smpsMode;
tANI_U8 dot11_mode;
tANI_U8 nonRoamReassoc;
+ uint8_t wps_state;
} tAddBssParams, * tpAddBssParams;
typedef struct