diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2015-01-30 01:30:53 -0800 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2015-01-30 01:30:53 -0800 |
| commit | 7ca5279bfb1e8b8dfe6cd5d400fe550f01ccdfc1 (patch) | |
| tree | bf52237997a8aeaf0e942143416bde70d59a8c0a | |
| parent | 046569f37314fe04dc9714456f0e893d0d7bc84b (diff) | |
| parent | 3000e3911c2c36d5754a365ce40c7fe3c53be29e (diff) | |
Merge "Release 4.0.10.23 QCACLD WLAN Driver"
| -rw-r--r-- | CORE/HDD/inc/wlan_hdd_main.h | 1 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg80211.c | 37 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_hostapd.c | 10 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_wext.c | 11 | ||||
| -rw-r--r-- | CORE/MAC/inc/qwlan_version.h | 5 | ||||
| -rw-r--r-- | CORE/SERVICES/BMI/ol_fw.c | 4 | ||||
| -rw-r--r-- | CORE/SERVICES/BMI/ol_fw.h | 1 | ||||
| -rw-r--r-- | CORE/SERVICES/HIF/USB/ar6320def.h | 10 | ||||
| -rw-r--r-- | CORE/SERVICES/HIF/USB/ar6320v2def.h | 10 | ||||
| -rw-r--r-- | CORE/SERVICES/HIF/USB/if_usb.c | 1 | ||||
| -rw-r--r-- | CORE/SERVICES/HIF/USB/regtable.h | 10 | ||||
| -rw-r--r-- | CORE/SERVICES/HIF/sdio/ar6320def.h | 10 | ||||
| -rw-r--r-- | CORE/SERVICES/HIF/sdio/ar6320v2def.h | 10 | ||||
| -rw-r--r-- | CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.c | 18 | ||||
| -rw-r--r-- | CORE/SERVICES/HIF/sdio/regtable.h | 10 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 2 | ||||
| -rw-r--r-- | CORE/SME/src/csr/csrApiRoam.c | 9 | ||||
| -rw-r--r-- | CORE/VOSS/inc/vos_nvitem.h | 5 | ||||
| -rw-r--r-- | CORE/VOSS/src/vos_nvitem.c | 5 |
19 files changed, 113 insertions, 56 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_main.h b/CORE/HDD/inc/wlan_hdd_main.h index 598dd4389393..a3b03a816729 100644 --- a/CORE/HDD/inc/wlan_hdd_main.h +++ b/CORE/HDD/inc/wlan_hdd_main.h @@ -1609,7 +1609,6 @@ VOS_STATUS hdd_disable_bmps_imps(hdd_context_t *pHddCtx, tANI_U8 session_type); void wlan_hdd_cfg80211_update_wiphy_caps(struct wiphy *wiphy); VOS_STATUS hdd_setIbssPowerSaveParams(hdd_adapter_t *pAdapter); -void wlan_hdd_cfg80211_update_reg_info(struct wiphy *wiphy); VOS_STATUS wlan_hdd_restart_driver(hdd_context_t *pHddCtx); void hdd_exchange_version_and_caps(hdd_context_t *pHddCtx); void hdd_set_pwrparams(hdd_context_t *pHddCtx); diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c index 718f1ca31e72..ca4ea04753df 100644 --- a/CORE/HDD/src/wlan_hdd_cfg80211.c +++ b/CORE/HDD/src/wlan_hdd_cfg80211.c @@ -5716,41 +5716,6 @@ void wlan_hdd_cfg80211_update_wiphy_caps(struct wiphy *wiphy) #endif } -/* - * In this function we are updating channel list when, - * regulatory domain is FCC and country code is US. - * Here In FCC standard 5GHz UNII-1 Bands are indoor only. - * As per FCC smart phone is not a indoor device. - * GO should not operate on indoor channels. - */ -void wlan_hdd_cfg80211_update_reg_info(struct wiphy *wiphy) -{ - int j; - hdd_context_t *pHddCtx = wiphy_priv(wiphy); - tANI_U8 defaultCountryCode[3] = SME_INVALID_COUNTRY_CODE; - /* Default country code from NV at the time of wiphy initialization. */ - if (eHAL_STATUS_SUCCESS != sme_GetDefaultCountryCodeFrmNv(pHddCtx->hHal, - &defaultCountryCode[0])) - { - hddLog(LOGE, FL("Failed to get default country code from NV")); - } - if ((defaultCountryCode[0]== 'U') && (defaultCountryCode[1]=='S')) - { - if (NULL == wiphy->bands[IEEE80211_BAND_5GHZ]) - { - hddLog(VOS_TRACE_LEVEL_ERROR,"%s: wiphy->bands[IEEE80211_BAND_5GHZ] is NULL",__func__ ); - return; - } - for (j = 0; j < wiphy->bands[IEEE80211_BAND_5GHZ]->n_channels; j++) - { - struct ieee80211_supported_band *band = wiphy->bands[IEEE80211_BAND_5GHZ]; - // Mark UNII -1 band channel as passive - if (WLAN_HDD_CHANNEL_IN_UNII_1_BAND(band->channels[j].center_freq)) - band->channels[j].flags |= IEEE80211_CHAN_PASSIVE_SCAN; - } - } -} - /* This function registers for all frame which supplicant is interested in */ void wlan_hdd_cfg80211_register_frames(hdd_adapter_t* pAdapter) { @@ -7355,6 +7320,8 @@ static int wlan_hdd_cfg80211_start_bss(hdd_adapter_t *pHostapdAdapter, pSapEventCallback = hdd_hostapd_SAPEventCB; + (WLAN_HDD_GET_AP_CTX_PTR(pHostapdAdapter))->dfs_cac_block_tx = VOS_TRUE; + status = WLANSAP_StartBss( #ifdef WLAN_FEATURE_MBSSID WLAN_HDD_GET_SAP_CTX_PTR(pHostapdAdapter), diff --git a/CORE/HDD/src/wlan_hdd_hostapd.c b/CORE/HDD/src/wlan_hdd_hostapd.c index b56136b2978c..0aa087f0c3dc 100644 --- a/CORE/HDD/src/wlan_hdd_hostapd.c +++ b/CORE/HDD/src/wlan_hdd_hostapd.c @@ -1566,6 +1566,15 @@ VOS_STATUS hdd_hostapd_SAPEventCB( tpSap_Event pSapEvent, v_PVOID_t usrDataForCa /* Allow suspend for old channel */ hdd_hostapd_channel_allow_suspend(pHostapdAdapter, pHddApCtx->operatingChannel); + /* SME/PE is already updated for new operation channel. So update + * HDD layer also here. This resolves issue in AP-AP mode where + * AP1 channel is changed due to RADAR then CAC is going on and + * START_BSS on new channel has not come to HDD. At this case if + * AP2 is start it needs current operation channel for MCC DFS + * restiction + */ + pHddApCtx->operatingChannel = + pSapEvent->sapevt.sapChannelChange.operatingChannel; /* TODO Need to indicate operating channel change to hostapd */ return VOS_STATUS_SUCCESS; @@ -2461,6 +2470,7 @@ static iw_softap_setparam(struct net_device *dev, __func__, set_value); ret = hdd_wlan_go_set_mcc_p2p_quota(pHostapdAdapter, set_value); + break; } case QCASAP_TXRX_FWSTATS_RESET: diff --git a/CORE/HDD/src/wlan_hdd_wext.c b/CORE/HDD/src/wlan_hdd_wext.c index 02b5784a3879..c3fade4bc340 100644 --- a/CORE/HDD/src/wlan_hdd_wext.c +++ b/CORE/HDD/src/wlan_hdd_wext.c @@ -551,6 +551,16 @@ static const struct qwlan_hw qwlan_hw_list[] = { .id = AR6320_REV3_2_VERSION, .subid = 0xA, .name = "QCA6174_REV3_2", + }, + { + .id = AR6320_REV3_VERSION, + .subid = 0x0, + .name = "QCA9377_REV1", + }, + { + .id = QCA9377_REV1_1_VERSION, + .subid = 0x1, + .name = "QCA9377_REV1_1", } }; @@ -6240,6 +6250,7 @@ static int iw_setint_getnone(struct net_device *dev, struct iw_request_info *inf hddLog(LOG1, "iwpriv cmd to set MCC quota with val %dms", set_value); ret = hdd_wlan_set_mcc_p2p_quota(pAdapter, set_value); + break; } case WE_SET_DEBUG_LOG: { diff --git a/CORE/MAC/inc/qwlan_version.h b/CORE/MAC/inc/qwlan_version.h index 63999d34bea9..63258d9ac1df 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 22 +#define QWLAN_VERSION_BUILD 23 -#define QWLAN_VERSIONSTR "4.0.10.22" +#define QWLAN_VERSIONSTR "4.0.10.23" #define AR6320_REV1_VERSION 0x5000000 @@ -52,6 +52,7 @@ BRIEF DESCRIPTION: #define AR6320_REV1_3_VERSION 0x5000003 #define AR6320_REV2_1_VERSION 0x5010000 #define AR6320_REV3_VERSION 0x5020000 +#define QCA9377_REV1_1_VERSION 0x5020001 #define AR6320_REV3_2_VERSION 0x5030000 struct qwlan_hw { diff --git a/CORE/SERVICES/BMI/ol_fw.c b/CORE/SERVICES/BMI/ol_fw.c index 1dc9a4962ac2..4aa0bb9631b4 100644 --- a/CORE/SERVICES/BMI/ol_fw.c +++ b/CORE/SERVICES/BMI/ol_fw.c @@ -111,6 +111,7 @@ static int ol_get_fw_files_for_target(struct ol_fw_files *pfw_files, break; case AR6320_REV3_VERSION: case AR6320_REV3_2_VERSION: + case QCA9377_REV1_1_VERSION: memcpy(pfw_files, &FW_FILES_QCA6174_FW_3_0, sizeof(*pfw_files)); break; default: @@ -1570,6 +1571,7 @@ A_STATUS ol_patch_pll_switch(struct ol_softc * scn) break; case AR6320_REV3_VERSION: case AR6320_REV3_2_VERSION: + case QCA9377_REV1_1_VERSION: cmnos_core_clk_div_addr = AR6320V3_CORE_CLK_DIV_ADDR; cmnos_cpu_pll_init_done_addr = AR6320V3_CPU_PLL_INIT_DONE_ADDR; cmnos_cpu_speed_addr = AR6320V3_CPU_SPEED_ADDR; @@ -2002,6 +2004,7 @@ int ol_download_firmware(struct ol_softc *scn) case AR6320_REV2_VERSION: case AR6320_REV3_VERSION: case AR6320_REV3_2_VERSION: + case QCA9377_REV1_1_VERSION: case AR6320_REV4_VERSION: case AR6320_DEV_VERSION: /* for SDIO, debug uart output gpio is 29, otherwise it is 6. */ @@ -2141,6 +2144,7 @@ static int ol_ath_get_reg_table(A_UINT32 target_version, break; case AR6320_REV3_VERSION: case AR6320_REV3_2_VERSION: + case QCA9377_REV1_1_VERSION: reg_table->section = (tgt_reg_section *)&ar6320v3_reg_table[0]; reg_table->section_size = sizeof(ar6320v3_reg_table) /sizeof(ar6320v3_reg_table[0]); diff --git a/CORE/SERVICES/BMI/ol_fw.h b/CORE/SERVICES/BMI/ol_fw.h index 509e3e5b7f13..6ec95cfa6953 100644 --- a/CORE/SERVICES/BMI/ol_fw.h +++ b/CORE/SERVICES/BMI/ol_fw.h @@ -44,6 +44,7 @@ #define AR6320_REV2_VERSION AR6320_REV1_1_VERSION #define AR6320_REV2_1_VERSION 0x5010000 #define AR6320_REV3_VERSION 0x5020000 +#define QCA9377_REV1_1_VERSION 0x5020001 #define AR6320_REV3_2_VERSION 0x5030000 #define AR6320_REV4_VERSION AR6320_REV2_1_VERSION #define AR6320_DEV_VERSION 0x1000000 diff --git a/CORE/SERVICES/HIF/USB/ar6320def.h b/CORE/SERVICES/HIF/USB/ar6320def.h index 13518d9aac07..28a23b13982c 100644 --- a/CORE/SERVICES/HIF/USB/ar6320def.h +++ b/CORE/SERVICES/HIF/USB/ar6320def.h @@ -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. * @@ -112,8 +112,12 @@ #define AR6320_DST_WATERMARK_ADDRESS 0x0050 #define AR6320_RX_MSDU_END_4_FIRST_MSDU_LSB 14 #define AR6320_RX_MSDU_END_4_FIRST_MSDU_MASK 0x00004000 +#define AR6320_RX_MPDU_START_0_RETRY_LSB 14 +#define AR6320_RX_MPDU_START_0_RETRY_MASK 0x00004000 #define AR6320_RX_MPDU_START_0_SEQ_NUM_LSB 16 #define AR6320_RX_MPDU_START_0_SEQ_NUM_MASK 0x0fff0000 +#define AR6320_RX_MPDU_START_2_TID_LSB 28 +#define AR6320_RX_MPDU_START_2_TID_MASK 0xf0000000 #define AR6320_RX_MPDU_START_2_PN_47_32_LSB 0 #define AR6320_RX_MPDU_START_2_PN_47_32_MASK 0x0000ffff #define AR6320_RX_MSDU_END_1_KEY_ID_OCT_MASK 0x000000ff @@ -455,10 +459,14 @@ struct targetdef_s ar6320_targetdef = { /* htt_rx.c */ .d_RX_MSDU_END_4_FIRST_MSDU_MASK = AR6320_RX_MSDU_END_4_FIRST_MSDU_MASK, .d_RX_MSDU_END_4_FIRST_MSDU_LSB = AR6320_RX_MSDU_END_4_FIRST_MSDU_LSB, + .d_RX_MPDU_START_0_RETRY_LSB = AR6320_RX_MPDU_START_0_RETRY_LSB, + .d_RX_MPDU_START_0_RETRY_MASK = AR6320_RX_MPDU_START_0_RETRY_MASK, .d_RX_MPDU_START_0_SEQ_NUM_MASK = AR6320_RX_MPDU_START_0_SEQ_NUM_MASK, .d_RX_MPDU_START_0_SEQ_NUM_LSB = AR6320_RX_MPDU_START_0_SEQ_NUM_LSB, .d_RX_MPDU_START_2_PN_47_32_LSB = AR6320_RX_MPDU_START_2_PN_47_32_LSB, .d_RX_MPDU_START_2_PN_47_32_MASK = AR6320_RX_MPDU_START_2_PN_47_32_MASK, + .d_RX_MPDU_START_2_TID_LSB = AR6320_RX_MPDU_START_2_TID_LSB, + .d_RX_MPDU_START_2_TID_MASK = AR6320_RX_MPDU_START_2_TID_MASK, .d_RX_MSDU_END_1_KEY_ID_OCT_MASK = AR6320_RX_MSDU_END_1_KEY_ID_OCT_MASK, .d_RX_MSDU_END_1_KEY_ID_OCT_LSB = AR6320_RX_MSDU_END_1_KEY_ID_OCT_LSB, .d_RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK = AR6320_RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK, diff --git a/CORE/SERVICES/HIF/USB/ar6320v2def.h b/CORE/SERVICES/HIF/USB/ar6320v2def.h index b9c1d2fadfd2..40ed743f2a69 100644 --- a/CORE/SERVICES/HIF/USB/ar6320v2def.h +++ b/CORE/SERVICES/HIF/USB/ar6320v2def.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. * @@ -112,10 +112,14 @@ #define AR6320V2_DST_WATERMARK_ADDRESS 0x0050 #define AR6320V2_RX_MSDU_END_4_FIRST_MSDU_LSB 14 #define AR6320V2_RX_MSDU_END_4_FIRST_MSDU_MASK 0x00004000 +#define AR6320V2_RX_MPDU_START_0_RETRY_LSB 14 +#define AR6320V2_RX_MPDU_START_0_RETRY_MASK 0x00004000 #define AR6320V2_RX_MPDU_START_0_SEQ_NUM_LSB 16 #define AR6320V2_RX_MPDU_START_0_SEQ_NUM_MASK 0x0fff0000 #define AR6320V2_RX_MPDU_START_2_PN_47_32_LSB 0 #define AR6320V2_RX_MPDU_START_2_PN_47_32_MASK 0x0000ffff +#define AR6320V2_RX_MPDU_START_2_TID_LSB 28 +#define AR6320V2_RX_MPDU_START_2_TID_MASK 0xf0000000 #define AR6320V2_RX_MSDU_END_1_EXT_WAPI_PN_63_48_LSB 16 #define AR6320V2_RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK 0xffff0000 #define AR6320V2_RX_MSDU_END_4_LAST_MSDU_LSB 15 @@ -454,10 +458,14 @@ struct targetdef_s ar6320v2_targetdef = { /* htt_rx.c */ .d_RX_MSDU_END_4_FIRST_MSDU_MASK = AR6320V2_RX_MSDU_END_4_FIRST_MSDU_MASK, .d_RX_MSDU_END_4_FIRST_MSDU_LSB = AR6320V2_RX_MSDU_END_4_FIRST_MSDU_LSB, + .d_RX_MPDU_START_0_RETRY_LSB = AR6320V2_RX_MPDU_START_0_RETRY_LSB, + .d_RX_MPDU_START_0_RETRY_MASK = AR6320V2_RX_MPDU_START_0_RETRY_MASK, .d_RX_MPDU_START_0_SEQ_NUM_MASK = AR6320V2_RX_MPDU_START_0_SEQ_NUM_MASK, .d_RX_MPDU_START_0_SEQ_NUM_LSB = AR6320V2_RX_MPDU_START_0_SEQ_NUM_LSB, .d_RX_MPDU_START_2_PN_47_32_LSB = AR6320V2_RX_MPDU_START_2_PN_47_32_LSB, .d_RX_MPDU_START_2_PN_47_32_MASK = AR6320V2_RX_MPDU_START_2_PN_47_32_MASK, + .d_RX_MPDU_START_2_TID_LSB = AR6320V2_RX_MPDU_START_2_TID_LSB, + .d_RX_MPDU_START_2_TID_MASK = AR6320V2_RX_MPDU_START_2_TID_MASK, .d_RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK = AR6320V2_RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK, .d_RX_MSDU_END_1_EXT_WAPI_PN_63_48_LSB = AR6320V2_RX_MSDU_END_1_EXT_WAPI_PN_63_48_LSB, .d_RX_MSDU_END_4_LAST_MSDU_MASK = AR6320V2_RX_MSDU_END_4_LAST_MSDU_MASK, diff --git a/CORE/SERVICES/HIF/USB/if_usb.c b/CORE/SERVICES/HIF/USB/if_usb.c index c9034e23cc59..9ea0915670ca 100644 --- a/CORE/SERVICES/HIF/USB/if_usb.c +++ b/CORE/SERVICES/HIF/USB/if_usb.c @@ -602,6 +602,7 @@ void hif_get_hw_info(void *ol_sc, u32 *version, u32 *revision) case AR6320_REV2_1_VERSION: case AR6320_REV3_VERSION: case AR6320_REV3_2_VERSION: + case QCA9377_REV1_1_VERSION: hif_type = HIF_TYPE_AR6320V2; target_type = TARGET_TYPE_AR6320V2; break; diff --git a/CORE/SERVICES/HIF/USB/regtable.h b/CORE/SERVICES/HIF/USB/regtable.h index 74ce65165fa3..7fc623b64d67 100644 --- a/CORE/SERVICES/HIF/USB/regtable.h +++ b/CORE/SERVICES/HIF/USB/regtable.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. * @@ -117,10 +117,14 @@ typedef struct targetdef_s { /* htt_rx.c */ u_int32_t d_RX_MSDU_END_4_FIRST_MSDU_MASK; u_int32_t d_RX_MSDU_END_4_FIRST_MSDU_LSB; + u_int32_t d_RX_MPDU_START_0_RETRY_LSB; + u_int32_t d_RX_MPDU_START_0_RETRY_MASK; u_int32_t d_RX_MPDU_START_0_SEQ_NUM_MASK; u_int32_t d_RX_MPDU_START_0_SEQ_NUM_LSB; u_int32_t d_RX_MPDU_START_2_PN_47_32_LSB; u_int32_t d_RX_MPDU_START_2_PN_47_32_MASK; + u_int32_t d_RX_MPDU_START_2_TID_LSB; + u_int32_t d_RX_MPDU_START_2_TID_MASK; u_int32_t d_RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK; u_int32_t d_RX_MSDU_END_1_EXT_WAPI_PN_63_48_LSB; u_int32_t d_RX_MSDU_END_1_KEY_ID_OCT_MASK; @@ -400,10 +404,14 @@ typedef struct targetdef_s { /* htt_rx.c */ #define RX_MSDU_END_4_FIRST_MSDU_MASK (pdev->targetdef->d_RX_MSDU_END_4_FIRST_MSDU_MASK) #define RX_MSDU_END_4_FIRST_MSDU_LSB (pdev->targetdef->d_RX_MSDU_END_4_FIRST_MSDU_LSB) +#define RX_MPDU_START_0_RETRY_LSB (pdev->targetdef->d_RX_MPDU_START_0_RETRY_LSB) +#define RX_MPDU_START_0_RETRY_MASK (pdev->targetdef->d_RX_MPDU_START_0_RETRY_MASK) #define RX_MPDU_START_0_SEQ_NUM_MASK (pdev->targetdef->d_RX_MPDU_START_0_SEQ_NUM_MASK) #define RX_MPDU_START_0_SEQ_NUM_LSB (pdev->targetdef->d_RX_MPDU_START_0_SEQ_NUM_LSB) #define RX_MPDU_START_2_PN_47_32_LSB (pdev->targetdef->d_RX_MPDU_START_2_PN_47_32_LSB) #define RX_MPDU_START_2_PN_47_32_MASK (pdev->targetdef->d_RX_MPDU_START_2_PN_47_32_MASK) +#define RX_MPDU_START_2_TID_LSB (pdev->targetdef->d_RX_MPDU_START_2_TID_LSB) +#define RX_MPDU_START_2_TID_MASK (pdev->targetdef->d_RX_MPDU_START_2_TID_MASK) #define RX_MSDU_END_1_KEY_ID_OCT_MASK (pdev->targetdef->d_RX_MSDU_END_1_KEY_ID_OCT_MASK) #define RX_MSDU_END_1_KEY_ID_OCT_LSB (pdev->targetdef->d_RX_MSDU_END_1_KEY_ID_OCT_LSB) #define RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK (pdev->targetdef->d_RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK) diff --git a/CORE/SERVICES/HIF/sdio/ar6320def.h b/CORE/SERVICES/HIF/sdio/ar6320def.h index 5873bb789edf..95f5dcd6ffe6 100644 --- a/CORE/SERVICES/HIF/sdio/ar6320def.h +++ b/CORE/SERVICES/HIF/sdio/ar6320def.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, The Linux Foundation. All rights reserved. + * Copyright (c) 2015, The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -112,8 +112,12 @@ #define AR6320_DST_WATERMARK_ADDRESS 0x0050 #define AR6320_RX_MSDU_END_4_FIRST_MSDU_LSB 14 #define AR6320_RX_MSDU_END_4_FIRST_MSDU_MASK 0x00004000 +#define AR6320_RX_MPDU_START_0_RETRY_LSB 14 +#define AR6320_RX_MPDU_START_0_RETRY_MASK 0x00004000 #define AR6320_RX_MPDU_START_0_SEQ_NUM_LSB 16 #define AR6320_RX_MPDU_START_0_SEQ_NUM_MASK 0x0fff0000 +#define AR6320_RX_MPDU_START_2_TID_LSB 28 +#define AR6320_RX_MPDU_START_2_TID_MASK 0xf0000000 #define AR6320_RX_MPDU_START_2_PN_47_32_LSB 0 #define AR6320_RX_MPDU_START_2_PN_47_32_MASK 0x0000ffff #define AR6320_RX_MSDU_END_1_KEY_ID_OCT_MASK 0x000000ff @@ -429,10 +433,14 @@ struct targetdef_s ar6320_targetdef = { /* htt_rx.c */ .d_RX_MSDU_END_4_FIRST_MSDU_MASK = AR6320_RX_MSDU_END_4_FIRST_MSDU_MASK, .d_RX_MSDU_END_4_FIRST_MSDU_LSB = AR6320_RX_MSDU_END_4_FIRST_MSDU_LSB, + .d_RX_MPDU_START_0_RETRY_LSB = AR6320_RX_MPDU_START_0_RETRY_LSB, + .d_RX_MPDU_START_0_RETRY_MASK = AR6320_RX_MPDU_START_0_RETRY_MASK, .d_RX_MPDU_START_0_SEQ_NUM_MASK = AR6320_RX_MPDU_START_0_SEQ_NUM_MASK, .d_RX_MPDU_START_0_SEQ_NUM_LSB = AR6320_RX_MPDU_START_0_SEQ_NUM_LSB, .d_RX_MPDU_START_2_PN_47_32_LSB = AR6320_RX_MPDU_START_2_PN_47_32_LSB, .d_RX_MPDU_START_2_PN_47_32_MASK = AR6320_RX_MPDU_START_2_PN_47_32_MASK, + .d_RX_MPDU_START_2_TID_LSB = AR6320_RX_MPDU_START_2_TID_LSB, + .d_RX_MPDU_START_2_TID_MASK = AR6320_RX_MPDU_START_2_TID_MASK, .d_RX_MSDU_END_1_KEY_ID_OCT_MASK = AR6320_RX_MSDU_END_1_KEY_ID_OCT_MASK, .d_RX_MSDU_END_1_KEY_ID_OCT_LSB = AR6320_RX_MSDU_END_1_KEY_ID_OCT_LSB, .d_RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK = AR6320_RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK, diff --git a/CORE/SERVICES/HIF/sdio/ar6320v2def.h b/CORE/SERVICES/HIF/sdio/ar6320v2def.h index c4ef55b3f8a2..4a8c8bdf137c 100644 --- a/CORE/SERVICES/HIF/sdio/ar6320v2def.h +++ b/CORE/SERVICES/HIF/sdio/ar6320v2def.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. * @@ -112,10 +112,14 @@ #define AR6320V2_DST_WATERMARK_ADDRESS 0x0050 #define AR6320V2_RX_MSDU_END_4_FIRST_MSDU_LSB 14 #define AR6320V2_RX_MSDU_END_4_FIRST_MSDU_MASK 0x00004000 +#define AR6320V2_RX_MPDU_START_0_RETRY_LSB 14 +#define AR6320V2_RX_MPDU_START_0_RETRY_MASK 0x00004000 #define AR6320V2_RX_MPDU_START_0_SEQ_NUM_LSB 16 #define AR6320V2_RX_MPDU_START_0_SEQ_NUM_MASK 0x0fff0000 #define AR6320V2_RX_MPDU_START_2_PN_47_32_LSB 0 #define AR6320V2_RX_MPDU_START_2_PN_47_32_MASK 0x0000ffff +#define AR6320V2_RX_MPDU_START_2_TID_LSB 28 +#define AR6320V2_RX_MPDU_START_2_TID_MASK 0xf0000000 #define AR6320V2_RX_MSDU_END_1_EXT_WAPI_PN_63_48_LSB 16 #define AR6320V2_RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK 0xffff0000 #define AR6320V2_RX_MSDU_END_4_LAST_MSDU_LSB 15 @@ -428,10 +432,14 @@ struct targetdef_s ar6320v2_targetdef = { /* htt_rx.c */ .d_RX_MSDU_END_4_FIRST_MSDU_MASK = AR6320V2_RX_MSDU_END_4_FIRST_MSDU_MASK, .d_RX_MSDU_END_4_FIRST_MSDU_LSB = AR6320V2_RX_MSDU_END_4_FIRST_MSDU_LSB, + .d_RX_MPDU_START_0_RETRY_LSB = AR6320V2_RX_MPDU_START_0_RETRY_LSB, + .d_RX_MPDU_START_0_RETRY_MASK = AR6320V2_RX_MPDU_START_0_RETRY_MASK, .d_RX_MPDU_START_0_SEQ_NUM_MASK = AR6320V2_RX_MPDU_START_0_SEQ_NUM_MASK, .d_RX_MPDU_START_0_SEQ_NUM_LSB = AR6320V2_RX_MPDU_START_0_SEQ_NUM_LSB, .d_RX_MPDU_START_2_PN_47_32_LSB = AR6320V2_RX_MPDU_START_2_PN_47_32_LSB, .d_RX_MPDU_START_2_PN_47_32_MASK = AR6320V2_RX_MPDU_START_2_PN_47_32_MASK, + .d_RX_MPDU_START_2_TID_LSB = AR6320V2_RX_MPDU_START_2_TID_LSB, + .d_RX_MPDU_START_2_TID_MASK = AR6320V2_RX_MPDU_START_2_TID_MASK, .d_RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK = AR6320V2_RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK, .d_RX_MSDU_END_1_EXT_WAPI_PN_63_48_LSB = AR6320V2_RX_MSDU_END_1_EXT_WAPI_PN_63_48_LSB, .d_RX_MSDU_END_4_LAST_MSDU_MASK = AR6320V2_RX_MSDU_END_4_LAST_MSDU_MASK, diff --git a/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.c b/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.c index d9fac19bfe3c..e1111d892855 100644 --- a/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.c +++ b/CORE/SERVICES/HIF/sdio/linux/if_ath_sdio.c @@ -44,6 +44,7 @@ #include "if_ath_sdio.h" #include "vos_api.h" #include "vos_sched.h" +#include "regtable.h" #ifndef REMOVE_PKT_LOG #include "ol_txrx_types.h" @@ -425,9 +426,20 @@ void hif_reset_soc(void *ol_sc) void hif_get_hw_info(void *ol_sc, u32 *version, u32 *revision) { - *version = ((struct ol_softc *)ol_sc)->target_version; - /* Chip revision should be supported, set to 0 for now */ - *revision = 0; + struct ol_softc *ol_sc_local = (struct ol_softc *)ol_sc; + A_UINT32 chip_id = 0; + A_STATUS rv; + rv = HIFDiagReadAccess(ol_sc_local->hif_hdl, + (CHIP_ID_ADDRESS | RTC_SOC_BASE_ADDRESS), &chip_id); + if (rv != A_OK) { + pr_warn("%s[%d]: get chip id fail\n", __func__, __LINE__); + ol_sc_local->target_revision = -1; + } else { + ol_sc_local->target_revision = + CHIP_ID_REVISION_GET(chip_id); + } + *version = ol_sc_local->target_version; + *revision = ol_sc_local->target_revision; } void hif_set_fw_info(void *ol_sc, u32 target_fw_version) diff --git a/CORE/SERVICES/HIF/sdio/regtable.h b/CORE/SERVICES/HIF/sdio/regtable.h index 5881ebdd4871..6c6b4df3d172 100644 --- a/CORE/SERVICES/HIF/sdio/regtable.h +++ b/CORE/SERVICES/HIF/sdio/regtable.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. * @@ -118,10 +118,14 @@ typedef struct targetdef_s { /* htt_rx.c */ u_int32_t d_RX_MSDU_END_4_FIRST_MSDU_MASK; u_int32_t d_RX_MSDU_END_4_FIRST_MSDU_LSB; + u_int32_t d_RX_MPDU_START_0_RETRY_LSB; + u_int32_t d_RX_MPDU_START_0_RETRY_MASK; u_int32_t d_RX_MPDU_START_0_SEQ_NUM_MASK; u_int32_t d_RX_MPDU_START_0_SEQ_NUM_LSB; u_int32_t d_RX_MPDU_START_2_PN_47_32_LSB; u_int32_t d_RX_MPDU_START_2_PN_47_32_MASK; + u_int32_t d_RX_MPDU_START_2_TID_LSB; + u_int32_t d_RX_MPDU_START_2_TID_MASK; u_int32_t d_RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK; u_int32_t d_RX_MSDU_END_1_EXT_WAPI_PN_63_48_LSB; u_int32_t d_RX_MSDU_END_1_KEY_ID_OCT_MASK; @@ -372,10 +376,14 @@ typedef struct targetdef_s { /* htt_rx.c */ #define RX_MSDU_END_4_FIRST_MSDU_MASK (pdev->targetdef->d_RX_MSDU_END_4_FIRST_MSDU_MASK) #define RX_MSDU_END_4_FIRST_MSDU_LSB (pdev->targetdef->d_RX_MSDU_END_4_FIRST_MSDU_LSB) +#define RX_MPDU_START_0_RETRY_LSB (pdev->targetdef->d_RX_MPDU_START_0_RETRY_LSB) +#define RX_MPDU_START_0_RETRY_MASK (pdev->targetdef->d_RX_MPDU_START_0_RETRY_MASK) #define RX_MPDU_START_0_SEQ_NUM_MASK (pdev->targetdef->d_RX_MPDU_START_0_SEQ_NUM_MASK) #define RX_MPDU_START_0_SEQ_NUM_LSB (pdev->targetdef->d_RX_MPDU_START_0_SEQ_NUM_LSB) #define RX_MPDU_START_2_PN_47_32_LSB (pdev->targetdef->d_RX_MPDU_START_2_PN_47_32_LSB) #define RX_MPDU_START_2_PN_47_32_MASK (pdev->targetdef->d_RX_MPDU_START_2_PN_47_32_MASK) +#define RX_MPDU_START_2_TID_LSB (pdev->targetdef->d_RX_MPDU_START_2_TID_LSB) +#define RX_MPDU_START_2_TID_MASK (pdev->targetdef->d_RX_MPDU_START_2_TID_MASK) #define RX_MSDU_END_1_KEY_ID_OCT_MASK (pdev->targetdef->d_RX_MSDU_END_1_KEY_ID_OCT_MASK) #define RX_MSDU_END_1_KEY_ID_OCT_LSB (pdev->targetdef->d_RX_MSDU_END_1_KEY_ID_OCT_LSB) #define RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK (pdev->targetdef->d_RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK) diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c index b3d77fd73bae..74e1e911a183 100644 --- a/CORE/SERVICES/WMA/wma.c +++ b/CORE/SERVICES/WMA/wma.c @@ -2744,7 +2744,7 @@ static int wma_extscan_table_usage_event_handler (void *handle, return -EINVAL; } tbl_usg_ind->requestId = event->request_id; - tbl_usg_ind->numResultsAvailable = event->maximum_entries; + tbl_usg_ind->numResultsAvailable = event->entries_in_use; pMac->sme.pExtScanIndCb(pMac->hHdd, eSIR_EXTSCAN_SCAN_RES_AVAILABLE_IND, diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c index eab0936634b3..2a9b656dd1a2 100644 --- a/CORE/SME/src/csr/csrApiRoam.c +++ b/CORE/SME/src/csr/csrApiRoam.c @@ -2699,9 +2699,8 @@ eHalStatus csrRoamCallCallback(tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoam pRoamInfo->chan_info.reg_info_2 = (csrGetCfgMaxTxPower(pMac, pRoamInfo->chan_info.chan_id) << 8); vos_mem_free(beacon_ies); - } - - if ((u1 == eCSR_ROAM_FT_REASSOC_FAILED) && (pSession->bRefAssocStartCnt)) { + } else if ((u1 == eCSR_ROAM_FT_REASSOC_FAILED) && + (pSession->bRefAssocStartCnt)) { /* * Decrement bRefAssocStartCnt for FT reassoc failure. * Reason: For FT reassoc failures, we first call @@ -2713,6 +2712,10 @@ eHalStatus csrRoamCallCallback(tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoam * failure, decrement bRefAssocStartCnt. */ pSession->bRefAssocStartCnt--; + } else if (u1 == eCSR_ROAM_SET_CHANNEL_RSP && u2 == + eCSR_ROAM_RESULT_CHANNEL_CHANGE_SUCCESS) { + pSession->connectedProfile.operationChannel = + pRoamInfo->channelChangeRespEvent->newChannelNumber; } if(NULL != pSession->callback) diff --git a/CORE/VOSS/inc/vos_nvitem.h b/CORE/VOSS/inc/vos_nvitem.h index bc0bbb89c581..9b33deb52799 100644 --- a/CORE/VOSS/inc/vos_nvitem.h +++ b/CORE/VOSS/inc/vos_nvitem.h @@ -51,11 +51,6 @@ #define VOS_COUNTRY_CODE_LEN 2 #define VOS_MAC_ADDRESS_LEN 6 -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) || defined(WITH_BACKPORTS) -#define IEEE80211_CHAN_PASSIVE_SCAN IEEE80211_CHAN_NO_IR -#define IEEE80211_CHAN_NO_IBSS IEEE80211_CHAN_NO_IR -#endif - /*-------------------------------------------------------------------------- Type declarations ------------------------------------------------------------------------*/ diff --git a/CORE/VOSS/src/vos_nvitem.c b/CORE/VOSS/src/vos_nvitem.c index 8537023c8bc0..7ef24691e9d3 100644 --- a/CORE/VOSS/src/vos_nvitem.c +++ b/CORE/VOSS/src/vos_nvitem.c @@ -57,6 +57,11 @@ #define IEEE80211_CHAN_NO_80MHZ 1<<7 #endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) +#define IEEE80211_CHAN_PASSIVE_SCAN IEEE80211_CHAN_NO_IR +#define IEEE80211_CHAN_NO_IBSS IEEE80211_CHAN_NO_IR +#endif + static v_REGDOMAIN_t cur_reg_domain = REGDOMAIN_COUNT; static char linux_reg_cc[2] = {0, 0}; static v_REGDOMAIN_t temp_reg_domain = REGDOMAIN_COUNT; |
