From cb63c0d92ce28a7577ef512a4a566841dabb01d8 Mon Sep 17 00:00:00 2001 From: Kiran Kumar Lokere Date: Fri, 9 Jan 2015 16:53:09 -0800 Subject: qcacld: Fix to send the add_bss response in failed case. Send the add_bss response to SME with failure reason code, so that SME releases start bss request command after receiving the add bss response. Change-Id: Id4a32b4e0634c41085b22cbb9b3a901cc931d929 CRs-Fixed: 780005 --- CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c | 1 - 1 file changed, 1 deletion(-) diff --git a/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c b/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c index e7900565b787..640a388657a3 100644 --- a/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c +++ b/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c @@ -412,7 +412,6 @@ limProcessMlmStartCnf(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf) peDeleteSession(pMac,psessionEntry); psessionEntry = NULL; PELOGE(limLog(pMac, LOGE,FL("Start BSS Failed "));) - return; } /// Send response to Host limSendSmeStartBssRsp(pMac, eWNI_SME_START_BSS_RSP, -- cgit v1.2.3 From f90c2fef2ef1e142da871ff08eeb18e2681b7fc3 Mon Sep 17 00:00:00 2001 From: Sandeep Puligilla Date: Tue, 6 Jan 2015 13:39:06 -0800 Subject: qcacld: Remove setrssifilter command 'setRssifilter' command is specific to pronto and not needed in qcacld. Change-Id: I87fa73d2e76faccbe3b4dc48f5214e1fb7fa014c CRs-Fixed: 777804 --- CORE/HDD/inc/wlan_hdd_wext.h | 6 +----- CORE/HDD/src/wlan_hdd_wext.c | 30 +----------------------------- CORE/MAC/src/include/sirParams.h | 3 +-- CORE/SME/inc/pmcApi.h | 7 +------ CORE/SME/inc/smeInside.h | 3 +-- CORE/SME/inc/sme_Api.h | 11 +---------- CORE/SME/src/pmc/pmcApi.c | 32 +------------------------------- CORE/SME/src/sme_common/sme_Api.c | 17 +---------------- CORE/SYS/legacy/src/utils/src/macTrace.c | 3 +-- CORE/WDA/inc/wlan_qct_wda.h | 3 +-- 10 files changed, 10 insertions(+), 105 deletions(-) diff --git a/CORE/HDD/inc/wlan_hdd_wext.h b/CORE/HDD/inc/wlan_hdd_wext.h index 988c44297b99..b234a5ba470f 100644 --- a/CORE/HDD/inc/wlan_hdd_wext.h +++ b/CORE/HDD/inc/wlan_hdd_wext.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2015 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -374,10 +374,6 @@ extern int iw_get_auth(struct net_device *dev,struct iw_request_info *info, VOS_STATUS iw_set_pno(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra, int nOffset); - -VOS_STATUS iw_set_rssi_filter(struct net_device *dev, struct iw_request_info *info, - union iwreq_data *wrqu, char *extra, int nOffset); - VOS_STATUS iw_set_power_params(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra, int nOffset); diff --git a/CORE/HDD/src/wlan_hdd_wext.c b/CORE/HDD/src/wlan_hdd_wext.c index 84a2e998e023..d477ccf810e9 100644 --- a/CORE/HDD/src/wlan_hdd_wext.c +++ b/CORE/HDD/src/wlan_hdd_wext.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2014 The Linux Foundation. All rights reserved. + * Copyright (c) 2011-2015 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -3825,12 +3825,6 @@ static int iw_set_priv(struct net_device *dev, kfree(cmd); return (vos_status == VOS_STATUS_SUCCESS) ? 0 : -EINVAL; } - else if( strncasecmp(cmd, "rssifilter",10) == 0 ) { - hddLog( VOS_TRACE_LEVEL_INFO, "rssifilter"); - vos_status = iw_set_rssi_filter(dev, info, wrqu, cmd, 10); - kfree(cmd); - return (vos_status == VOS_STATUS_SUCCESS) ? 0 : -EINVAL; - } #endif /*FEATURE_WLAN_SCAN_PNO*/ else if( strncasecmp(cmd, "powerparams",11) == 0 ) { hddLog( VOS_TRACE_LEVEL_INFO, "powerparams"); @@ -9521,28 +9515,6 @@ VOS_STATUS iw_set_pno(struct net_device *dev, struct iw_request_info *info, return VOS_STATUS_SUCCESS; }/*iw_set_pno*/ -VOS_STATUS iw_set_rssi_filter(struct net_device *dev, struct iw_request_info *info, - union iwreq_data *wrqu, char *extra, int nOffset) -{ - hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(dev); - v_U8_t rssiThreshold = 0; - v_U8_t nRead; - - nRead = sscanf(extra + nOffset,"%hhu", - &rssiThreshold); - - if ( 1 != nRead ) - { - VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_WARN, - "Incorrect format"); - return VOS_STATUS_E_FAILURE; - } - - sme_SetRSSIFilter(WLAN_HDD_GET_HAL_CTX(pAdapter), rssiThreshold); - return VOS_STATUS_SUCCESS; -} - - static int iw_set_pno_priv(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra) diff --git a/CORE/MAC/src/include/sirParams.h b/CORE/MAC/src/include/sirParams.h index 407c11674b2e..db441d7b62c8 100644 --- a/CORE/MAC/src/include/sirParams.h +++ b/CORE/MAC/src/include/sirParams.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2015 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -447,7 +447,6 @@ typedef struct sSirMbMsgP2p #define SIR_HAL_SET_PNO_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 170) #define SIR_HAL_SET_PNO_CHANGED_IND (SIR_HAL_ITC_MSG_TYPES_BEGIN + 171) #define SIR_HAL_UPDATE_SCAN_PARAMS (SIR_HAL_ITC_MSG_TYPES_BEGIN + 172) -#define SIR_HAL_SET_RSSI_FILTER_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 173) #endif // FEATURE_WLAN_SCAN_PNO diff --git a/CORE/SME/inc/pmcApi.h b/CORE/SME/inc/pmcApi.h index 8eeced65f77d..1cb15dcad72e 100644 --- a/CORE/SME/inc/pmcApi.h +++ b/CORE/SME/inc/pmcApi.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2012, 2014 The Linux Foundation. All rights reserved. + * Copyright (c) 2011-2015 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -35,10 +35,6 @@ * Description: Power Management Control (PMC) API definitions. - - - - * ******************************************************************************/ @@ -448,7 +444,6 @@ extern tANI_BOOLEAN pmcAllowImps( tHalHandle hHal ); typedef void(*preferredNetworkFoundIndCallback)(void *callbackContext, tpSirPrefNetworkFoundInd pPrefNetworkFoundInd); extern eHalStatus pmcSetPreferredNetworkList(tHalHandle hHal, tpSirPNOScanReq pRequest, tANI_U8 sessionId, preferredNetworkFoundIndCallback callbackRoutine, void *callbackContext); -extern eHalStatus pmcSetRssiFilter(tHalHandle hHal, v_U8_t rssiThreshold); #endif // FEATURE_WLAN_SCAN_PNO #ifdef WLAN_FEATURE_PACKET_FILTERING diff --git a/CORE/SME/inc/smeInside.h b/CORE/SME/inc/smeInside.h index 30002c99f87a..9d61add7196b 100644 --- a/CORE/SME/inc/smeInside.h +++ b/CORE/SME/inc/smeInside.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2015 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -276,7 +276,6 @@ eHalStatus pmcSetNSOffload (tHalHandle hHal, tpSirHostOffloadReq pRequest, tANI_ #ifdef FEATURE_WLAN_SCAN_PNO eHalStatus pmcSetPreferredNetworkList(tHalHandle hHal, tpSirPNOScanReq pRequest, tANI_U8 sessionId, preferredNetworkFoundIndCallback callbackRoutine, void *callbackContext); eHalStatus pmcUpdateScanParams(tHalHandle hHal, tCsrConfig *pRequest, tCsrChannel *pChannelList, tANI_U8 b11dResolved); -eHalStatus pmcSetRssiFilter(tHalHandle hHal, v_U8_t rssiThreshold); #endif // FEATURE_WLAN_SCAN_PNO eHalStatus pmcSetPowerParams(tHalHandle hHal, tSirSetPowerParamsReq* pwParams, tANI_BOOLEAN forced); diff --git a/CORE/SME/inc/sme_Api.h b/CORE/SME/inc/sme_Api.h index d00ebe731197..07eaddde22d7 100644 --- a/CORE/SME/inc/sme_Api.h +++ b/CORE/SME/inc/sme_Api.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2015 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -2254,15 +2254,6 @@ eHalStatus sme_GetCfgValidChannels(tHalHandle hHal, tANI_U8 *aValidChannels, tAN ---------------------------------------------------------------------------*/ eHalStatus sme_SetPreferredNetworkList (tHalHandle hHal, tpSirPNOScanReq pRequest, tANI_U8 sessionId, preferredNetworkFoundIndCallback callbackRoutine, void *callbackContext ); -/* --------------------------------------------------------------------------- - \fn sme_SetRSSIFilter - \brief API to set RSSI Filter feature. - \param hHal - The handle returned by macOpen. - \param pRequest - Pointer to the offload request. - \return eHalStatus - ---------------------------------------------------------------------------*/ -eHalStatus sme_SetRSSIFilter(tHalHandle hHal, v_U8_t rssiThreshold); - /****************************************************************************** * * Name: sme_PreferredNetworkFoundInd diff --git a/CORE/SME/src/pmc/pmcApi.c b/CORE/SME/src/pmc/pmcApi.c index c0b95013d702..0b4b5588e78d 100644 --- a/CORE/SME/src/pmc/pmcApi.c +++ b/CORE/SME/src/pmc/pmcApi.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2015 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -2957,36 +2957,6 @@ eHalStatus pmcSetPreferredNetworkList return eHAL_STATUS_SUCCESS; } -eHalStatus pmcSetRssiFilter(tHalHandle hHal, v_U8_t rssiThreshold) -{ - tpSirSetRSSIFilterReq pRequestBuf; - vos_msg_t msg; - - - pRequestBuf = vos_mem_malloc(sizeof(tpSirSetRSSIFilterReq)); - if (NULL == pRequestBuf) - { - VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR, "%s: Not able to allocate memory for PNO request", __func__); - return eHAL_STATUS_FAILED_ALLOC; - } - - - pRequestBuf->rssiThreshold = rssiThreshold; - - msg.type = WDA_SET_RSSI_FILTER_REQ; - msg.reserved = 0; - msg.bodyptr = pRequestBuf; - if (!VOS_IS_STATUS_SUCCESS(vos_mq_post_message(VOS_MODULE_ID_WDA, &msg))) - { - VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR, "%s: Not able to post WDA_SET_PNO_REQ message to WDA", __func__); - vos_mem_free(pRequestBuf); - return eHAL_STATUS_FAILURE; - } - - return eHAL_STATUS_SUCCESS; -} - - eHalStatus pmcUpdateScanParams(tHalHandle hHal, tCsrConfig *pRequest, tCsrChannel *pChannelList, tANI_U8 b11dResolved) { tpSirUpdateScanParams pRequestBuf; diff --git a/CORE/SME/src/sme_common/sme_Api.c b/CORE/SME/src/sme_common/sme_Api.c index 416f7470eac2..b62589049534 100644 --- a/CORE/SME/src/sme_common/sme_Api.c +++ b/CORE/SME/src/sme_common/sme_Api.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2015 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -6934,21 +6934,6 @@ eHalStatus sme_SetPreferredNetworkList (tHalHandle hHal, tpSirPNOScanReq pReques return (status); } - -eHalStatus sme_SetRSSIFilter(tHalHandle hHal, v_U8_t rssiThreshold) -{ - tpAniSirGlobal pMac = PMAC_STRUCT( hHal ); - eHalStatus status; - - if ( eHAL_STATUS_SUCCESS == ( status = sme_AcquireGlobalLock( &pMac->sme ) ) ) - { - pmcSetRssiFilter(hHal, rssiThreshold); - sme_ReleaseGlobalLock( &pMac->sme ); - } - - return (status); -} - #endif // FEATURE_WLAN_SCAN_PNO eHalStatus sme_SetPowerParams(tHalHandle hHal, tSirSetPowerParamsReq* pwParams, tANI_BOOLEAN forced) diff --git a/CORE/SYS/legacy/src/utils/src/macTrace.c b/CORE/SYS/legacy/src/utils/src/macTrace.c index c4700d03cc69..8b17952d9e0d 100644 --- a/CORE/SYS/legacy/src/utils/src/macTrace.c +++ b/CORE/SYS/legacy/src/utils/src/macTrace.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2014 The Linux Foundation. All rights reserved. + * Copyright (c) 2013-2015 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -743,7 +743,6 @@ tANI_U8* macTraceGetWdaMsgString( tANI_U16 wdaMsg ) CASE_RETURN_STRING(WDA_FTM_CMD_RSP); #ifdef FEATURE_WLAN_SCAN_PNO CASE_RETURN_STRING(WDA_SET_PNO_REQ); - CASE_RETURN_STRING(WDA_SET_RSSI_FILTER_REQ); CASE_RETURN_STRING(WDA_UPDATE_SCAN_PARAMS_REQ); CASE_RETURN_STRING(WDA_SET_PNO_CHANGED_IND); CASE_RETURN_STRING(WDA_SME_SCAN_CACHE_UPDATED); diff --git a/CORE/WDA/inc/wlan_qct_wda.h b/CORE/WDA/inc/wlan_qct_wda.h index 5d0ced563d7e..2bc001b3f83b 100644 --- a/CORE/WDA/inc/wlan_qct_wda.h +++ b/CORE/WDA/inc/wlan_qct_wda.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2015 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -815,7 +815,6 @@ tSirRetStatus uMacPostCtrlMsg(void* pSirGlobal, tSirMbMsg* pMb); #ifdef FEATURE_WLAN_SCAN_PNO /*Requests sent to lower driver*/ #define WDA_SET_PNO_REQ SIR_HAL_SET_PNO_REQ -#define WDA_SET_RSSI_FILTER_REQ SIR_HAL_SET_RSSI_FILTER_REQ #define WDA_UPDATE_SCAN_PARAMS_REQ SIR_HAL_UPDATE_SCAN_PARAMS /*Indication comming from lower driver*/ -- cgit v1.2.3 From 7b573df2e3067e060b625101a37a83f2b2358d27 Mon Sep 17 00:00:00 2001 From: Srinivas Girigowda Date: Fri, 9 Jan 2015 15:46:14 -0800 Subject: qcacld: Use the correct trace code in hdd_stop() Use the correct trace code TRACE_CODE_HDD_STOP_REQUEST in hdd_stop(). Change-Id: I5dc16ef893dd641cedc06d8431395e5e96c9514c CRs-Fixed: 779924 --- CORE/HDD/src/wlan_hdd_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c index f6825a9773d6..7732c23662fe 100755 --- a/CORE/HDD/src/wlan_hdd_main.c +++ b/CORE/HDD/src/wlan_hdd_main.c @@ -8179,7 +8179,7 @@ int hdd_stop (struct net_device *dev) ENTER(); - MTRACE(vos_trace(VOS_MODULE_ID_HDD, TRACE_CODE_HDD_OPEN_REQUEST, + MTRACE(vos_trace(VOS_MODULE_ID_HDD, TRACE_CODE_HDD_STOP_REQUEST, pAdapter->sessionId, pAdapter->device_mode)); ret = wlan_hdd_validate_context(pHddCtx); -- cgit v1.2.3 From a01047ee7e69245071f4cc1971752750b1108a86 Mon Sep 17 00:00:00 2001 From: Naveen Rawat Date: Mon, 5 Jan 2015 17:58:10 -0800 Subject: qcacld: Set protection bits per connected STA pe_reset_protection_callback() will at regular interval reset the protection bits, so that they can reflect latest overlapping BSS present in vicinity. However some bits in HT protection field are based on connected clients to SAP. Hence in above function update protection according to connected clients as well. Change-Id: I00b9b4d59795e4c5fedece3d6f5d1b9afcacee02 CRs-Fixed: 778533 --- CORE/MAC/src/pe/lim/limSession.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/CORE/MAC/src/pe/lim/limSession.c b/CORE/MAC/src/pe/lim/limSession.c index 4461ef3cf90f..4941e3a31ced 100644 --- a/CORE/MAC/src/pe/lim/limSession.c +++ b/CORE/MAC/src/pe/lim/limSession.c @@ -105,8 +105,10 @@ void pe_reset_protection_callback(void *ptr) { tpPESession pe_session_entry = (tpPESession)ptr; tpAniSirGlobal mac_ctx = (tpAniSirGlobal)pe_session_entry->mac_ctx; + int8_t i = 0; tUpdateBeaconParams beacon_params; tANI_U16 current_protection_state = 0; + tpDphHashNode station_hash_node = NULL; if (pe_session_entry->valid == false) { VOS_TRACE(VOS_MODULE_ID_PE, @@ -167,6 +169,17 @@ void pe_reset_protection_callback(void *ptr) pe_session_entry->htOperMode = eSIR_HT_OP_MODE_PURE; mac_ctx->lim.gHTOperMode = eSIR_HT_OP_MODE_PURE; + /* index 0, is self node, peers start from 1 */ + for(i = 1 ; i < mac_ctx->lim.gLimAssocStaLimit ; i++) + { + station_hash_node = dphGetHashEntry(mac_ctx, i, + &pe_session_entry->dph.dphHashTable); + if (NULL == station_hash_node) + continue; + limDecideApProtection(mac_ctx, station_hash_node->staAddr, + &beacon_params, pe_session_entry); + } + if ((current_protection_state != pe_session_entry->old_protection_state) && (VOS_FALSE == mac_ctx->sap.SapDfsInfo.is_dfs_cac_timer_running)) { VOS_TRACE(VOS_MODULE_ID_PE, -- cgit v1.2.3 From 3ff5878ca65bcd95fceefe8aa839e36d71e475dc Mon Sep 17 00:00:00 2001 From: Mingcheng Zhu Date: Mon, 22 Dec 2014 16:24:03 -0800 Subject: QCACLD2.0: Fix the startup error handling issue wlan_hdd_startup has issue in error handling. This causes HIF crash when wma_prestart returns failure. To make the minimum change a hdd_start_reinit_flag is introduced in HIF so that HIF will ignore the HIFStop called from wlan_hdd_startup. After wlan_hdd_startup returned, The HIFStop is called by HIF in error return cases. The same logic is implemented in wlan_hdd_reinit path. Change-Id: Ic77114fbfa95676eed88da54b0091b0d71b0abaf CRs-Fixed: 774560 --- CORE/SERVICES/HIF/PCIe/hif_pci.c | 5 ++++- CORE/SERVICES/HIF/PCIe/if_pci.c | 24 +++++++++++++++++++++--- CORE/SERVICES/HIF/PCIe/if_pci.h | 3 ++- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/CORE/SERVICES/HIF/PCIe/hif_pci.c b/CORE/SERVICES/HIF/PCIe/hif_pci.c index fd2fd5fb057c..96db6a829aaa 100644 --- a/CORE/SERVICES/HIF/PCIe/hif_pci.c +++ b/CORE/SERVICES/HIF/PCIe/hif_pci.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2014 The Linux Foundation. All rights reserved. + * Copyright (c) 2013-2015 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -1715,6 +1715,9 @@ HIFStop(HIF_DEVICE *hif_device) return; /* already stopped or stopping */ } + if (sc->hdd_startup_reinit_flag == TRUE) + return; /* If still in wlan_hdd_startup or wlan_hdd_reinit nop. */ + sc->hif_init_done = FALSE; if (hif_state->started) { diff --git a/CORE/SERVICES/HIF/PCIe/if_pci.c b/CORE/SERVICES/HIF/PCIe/if_pci.c index 271a7d830ad8..1f5c4fe02be2 100644 --- a/CORE/SERVICES/HIF/PCIe/if_pci.c +++ b/CORE/SERVICES/HIF/PCIe/if_pci.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2014 The Linux Foundation. All rights reserved. + * Copyright (c) 2013-2015 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -976,8 +976,11 @@ again: init_waitqueue_head(&ol_sc->sc_osdev->event_queue); ret = hif_init_adf_ctx(ol_sc); - if (ret == 0) + if (ret == 0) { + sc->hdd_startup_reinit_flag = true; ret = hdd_wlan_startup(&pdev->dev, ol_sc); + sc->hdd_startup_reinit_flag = false; + } if (ret) { hif_disable_isr(ol_sc); @@ -1316,8 +1319,10 @@ again: ret = hif_init_adf_ctx(ol_sc); if (ret == 0) { + sc->hdd_startup_reinit_flag = true; if (VOS_STATUS_SUCCESS == hdd_wlan_re_init(ol_sc)) ret = 0; + sc->hdd_startup_reinit_flag = false; } /* Re-enable ASPM after firmware/OTP download is complete */ @@ -1404,6 +1409,15 @@ hif_nointrs(struct hif_pci_softc *sc) { int i; + if (sc->hdd_startup_reinit_flag) { + pr_err("%s: WARN: In HDD startup or reinit\n", __func__); + return; + } + + if (!sc->pdev) { + pr_err("%s: pdev is NULL\n", __func__); + return; + } if (sc->num_msi_intrs > 0) { /* MSI interrupt(s) */ for (i = 0; i < sc->num_msi_intrs; i++) { @@ -2134,7 +2148,11 @@ void hif_disable_isr(void *ol_sc) struct ol_softc *sc = (struct ol_softc *)ol_sc; struct hif_pci_softc *hif_sc = sc->hif_sc; struct ol_softc *scn; - + if (hif_sc->hdd_startup_reinit_flag) { + pr_err("%s: WARN: in HDD starrtup or reinit function\n", + __func__); + return; + } scn = hif_sc->ol_sc; hif_nointrs(hif_sc); #if CONFIG_PCIE_64BIT_MSI diff --git a/CORE/SERVICES/HIF/PCIe/if_pci.h b/CORE/SERVICES/HIF/PCIe/if_pci.h index 66980697fb32..a4d0e3416f26 100644 --- a/CORE/SERVICES/HIF/PCIe/if_pci.h +++ b/CORE/SERVICES/HIF/PCIe/if_pci.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2014 The Linux Foundation. All rights reserved. + * Copyright (c) 2013-2015 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -89,6 +89,7 @@ struct hif_pci_softc { atomic_t pci_link_suspended; bool hif_init_done; bool recovery; + bool hdd_startup_reinit_flag; int htc_endpoint; }; #define TARGID(sc) ((A_target_id_t)(&(sc)->mem)) -- cgit v1.2.3 From 81a588550424957cf7a200f82297e203d3d94067 Mon Sep 17 00:00:00 2001 From: AnjaneeDevi Kapparapu Date: Mon, 12 Jan 2015 12:03:31 +0530 Subject: Cafstaging Release 4.0.10.12 Cafstaging Release 4.0.10.12 Change-Id: I927d4bd5f5562bf88d5b1a92102ac82f1b3aee47 CRs-Fixed: 688141 --- CORE/MAC/inc/qwlan_version.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CORE/MAC/inc/qwlan_version.h b/CORE/MAC/inc/qwlan_version.h index bf5e4c04d6bf..d5e99ee7611c 100644 --- a/CORE/MAC/inc/qwlan_version.h +++ b/CORE/MAC/inc/qwlan_version.h @@ -42,9 +42,9 @@ BRIEF DESCRIPTION: #define QWLAN_VERSION_MINOR 0 #define QWLAN_VERSION_PATCH 10 #define QWLAN_VERSION_EXTRA "" -#define QWLAN_VERSION_BUILD 011 +#define QWLAN_VERSION_BUILD 12 -#define QWLAN_VERSIONSTR "4.0.10.011" +#define QWLAN_VERSIONSTR "4.0.10.12" #define AR6320_REV1_VERSION 0x5000000 -- cgit v1.2.3