diff options
| author | Rajeev Kumar <rajekuma@qca.qualcomm.com> | 2015-07-10 18:04:39 -0700 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2015-07-15 17:32:39 +0530 |
| commit | b23d5ee80964e7a286745540a030dd9b37a7d2d1 (patch) | |
| tree | 7da7bca1614a99e6a5a6656d785271d0eb482b66 | |
| parent | 7ccb48389d526e7c63a6e9eeb2d9738c6fa3d70a (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.c | 1 | ||||
| -rw-r--r-- | CORE/MAC/src/include/sirParams.h | 5 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c | 1 | ||||
| -rw-r--r-- | CORE/SAP/inc/sapApi.h | 5 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 31 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.h | 1 | ||||
| -rw-r--r-- | CORE/WDA/inc/legacy/halMsgApi.h | 1 |
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 |
