summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2014-08-31 11:35:40 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2014-08-31 11:35:40 -0700
commit649f294fef7d3800c05a02ca7a6fc20a3bc73720 (patch)
treec57f4849b943dbc83900cd2da524931b732b0576
parent0a1e756bde248040a44a6662d03d616a97f19aed (diff)
parenteb9797e076c31af1f6cd76e32e60ed33dadd39d0 (diff)
Merge "Release 1.0.0.177 QCACLD WLAN Driver"
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg80211.c3
-rw-r--r--CORE/MAC/inc/qwlan_version.h4
-rw-r--r--CORE/SERVICES/BMI/ol_fw.c34
-rw-r--r--CORE/SERVICES/WMA/wma.c22
-rwxr-xr-xfirmware_bin/WCNSS_qcom_cfg.ini3
5 files changed, 57 insertions, 9 deletions
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index 9df38aff3f17..9ebb55e93bc9 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -10890,7 +10890,8 @@ static int __wlan_hdd_cfg80211_get_station(struct wiphy *wiphy,
}
if (rate_flags & eHAL_TX_RATE_SGI)
{
- sinfo->txrate.flags |= RATE_INFO_FLAGS_MCS;
+ if (!(sinfo->txrate.flags & RATE_INFO_FLAGS_VHT_MCS))
+ sinfo->txrate.flags |= RATE_INFO_FLAGS_MCS;
sinfo->txrate.flags |= RATE_INFO_FLAGS_SHORT_GI;
}
diff --git a/CORE/MAC/inc/qwlan_version.h b/CORE/MAC/inc/qwlan_version.h
index 139e7b7d94d9..c37e9a350462 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 0
#define QWLAN_VERSION_EXTRA ""
-#define QWLAN_VERSION_BUILD 176
+#define QWLAN_VERSION_BUILD 177
-#define QWLAN_VERSIONSTR "1.0.0.176"
+#define QWLAN_VERSIONSTR "1.0.0.177"
#define AR6320_REV1_VERSION 0x5000000
diff --git a/CORE/SERVICES/BMI/ol_fw.c b/CORE/SERVICES/BMI/ol_fw.c
index 920a26a7857b..44283be59c55 100644
--- a/CORE/SERVICES/BMI/ol_fw.c
+++ b/CORE/SERVICES/BMI/ol_fw.c
@@ -1766,6 +1766,36 @@ A_STATUS ol_patch_pll_switch(struct ol_softc * scn)
}
#endif
+#ifdef CONFIG_CNSS
+/* AXI Start Address */
+#define TARGET_ADDR (0xa0000)
+
+void ol_transfer_codeswap_struct(struct ol_softc *scn) {
+ struct hif_pci_softc *sc = scn->hif_sc;
+ struct codeswap_codeseg_info wlan_codeswap;
+ A_STATUS rv;
+
+ if (!sc || !sc->hif_device) {
+ pr_err("%s: hif_pci_softc is null\n", __func__);
+ return;
+ }
+
+ if (cnss_get_codeswap_struct(&wlan_codeswap)) {
+ pr_err("%s: failed to get codeswap structure\n", __func__);
+ return;
+ }
+
+ rv = BMIWriteMemory(scn->hif_hdl, TARGET_ADDR,
+ (u_int8_t *)&wlan_codeswap, sizeof(wlan_codeswap), scn);
+
+ if (rv != A_OK) {
+ pr_err("Failed to Write 0xa0000 for Target Memory Expansion\n");
+ return;
+ }
+ pr_info("%s:codeswap structure is successfully downloaded\n", __func__);
+}
+#endif
+
int ol_download_firmware(struct ol_softc *scn)
{
u_int32_t param, address = 0;
@@ -1837,6 +1867,10 @@ int ol_download_firmware(struct ol_softc *scn)
printk("%s: Using 0x%x for the remainder of init\n", __func__, address);
if ( scn->enablesinglebinary == FALSE ) {
+#ifdef CONFIG_CNSS
+ ol_transfer_codeswap_struct(scn);
+#endif
+
status = ol_transfer_bin_file(scn, ATH_OTP_FILE,
address, TRUE);
if (status == EOK) {
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index 6ef2f687b5f9..e2263ae44bfd 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -12169,12 +12169,6 @@ static void wma_set_bss_rate_flags(struct wma_txrx_node *iface,
tpAddBssParams add_bss)
{
iface->rate_flags = 0;
- if (add_bss->htCapable) {
- if (add_bss->txChannelWidthSet)
- iface->rate_flags |= eHAL_TX_RATE_HT40;
- else
- iface->rate_flags |= eHAL_TX_RATE_HT20;
- }
#ifdef WLAN_FEATURE_11AC
if (add_bss->vhtCapable) {
@@ -12185,7 +12179,15 @@ static void wma_set_bss_rate_flags(struct wma_txrx_node *iface,
else
iface->rate_flags |= eHAL_TX_RATE_VHT20;
}
+ /* avoid to conflict with htCapable flag */
+ else
#endif
+ if (add_bss->htCapable) {
+ if (add_bss->txChannelWidthSet)
+ iface->rate_flags |= eHAL_TX_RATE_HT40;
+ else
+ iface->rate_flags |= eHAL_TX_RATE_HT20;
+ }
if (add_bss->staContext.fShortGI20Mhz ||
add_bss->staContext.fShortGI40Mhz)
@@ -16644,8 +16646,10 @@ int wma_enable_wow_in_fw(WMA_HANDLE handle)
struct ol_softc *scn;
int host_credits;
int wmi_pending_cmds;
+#ifdef CONFIG_CNSS
tpAniSirGlobal pMac = (tpAniSirGlobal)vos_get_context(VOS_MODULE_ID_PE,
wma->vos_context);
+#endif
#ifdef FEATURE_WLAN_D0WOW
if (wma->ap_client_cnt > 0) {
@@ -16707,6 +16711,8 @@ int wma_enable_wow_in_fw(WMA_HANDLE handle)
if (pMac->sme.enableSelfRecovery) {
vos_set_logp_in_progress(VOS_MODULE_ID_HIF, TRUE);
cnss_schedule_recovery_work();
+ } else {
+ VOS_BUG(0);
}
#else
VOS_BUG(0);
@@ -17643,8 +17649,10 @@ static VOS_STATUS wma_send_host_wakeup_ind_to_fw(tp_wma_handle wma)
VOS_STATUS vos_status = VOS_STATUS_SUCCESS;
int32_t len;
int ret;
+#ifdef CONFIG_CNSS
tpAniSirGlobal pMac = (tpAniSirGlobal)vos_get_context(VOS_MODULE_ID_PE,
wma->vos_context);
+#endif
len = sizeof(wmi_wow_hostwakeup_from_sleep_cmd_fixed_param);
@@ -17686,6 +17694,8 @@ static VOS_STATUS wma_send_host_wakeup_ind_to_fw(tp_wma_handle wma)
vos_set_logp_in_progress(VOS_MODULE_ID_HIF,
TRUE);
cnss_schedule_recovery_work();
+ } else {
+ VOS_BUG(0);
}
#else
VOS_BUG(0);
diff --git a/firmware_bin/WCNSS_qcom_cfg.ini b/firmware_bin/WCNSS_qcom_cfg.ini
index 11d08636418a..c7c297aeb913 100755
--- a/firmware_bin/WCNSS_qcom_cfg.ini
+++ b/firmware_bin/WCNSS_qcom_cfg.ini
@@ -597,6 +597,9 @@ gEnableMuBformee=1
# 1 - enable
gSapSccChanAvoidance=0
+# Inactivity time (in ms) to end TX Service Period while in IBSS power save mode
+gIbssTxSpEndInactivityTime=10
+
END
# Note: Configuration parser would not read anything past the END marker