summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirav Shah <nnshah@qti.qualcomm.com>2015-06-16 23:21:40 +0530
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2015-06-18 18:55:32 +0530
commitab285c91f279ef20111e44b620e7e1793b61e5f7 (patch)
treedca30a2bfe9a27833b9c2afedfa6a40ace229421
parent29e6fd67eb073b2befbab07e09d21c59f810fd2b (diff)
qcacld-2.0: Remove extra WLAN_CLIENT_CONNECT_EX message to IPA
Do not send WLAN_CLIENT_CONNECT_EX message to IPA if STA is already connected. Change-Id: I1a0c208f55463726d4cf82ffefdac62e00b49ae8 CRs-Fixed: 827664
-rw-r--r--CORE/HDD/src/wlan_hdd_ipa.c71
1 files changed, 38 insertions, 33 deletions
diff --git a/CORE/HDD/src/wlan_hdd_ipa.c b/CORE/HDD/src/wlan_hdd_ipa.c
index 2d317b0d1440..651ed506d334 100644
--- a/CORE/HDD/src/wlan_hdd_ipa.c
+++ b/CORE/HDD/src/wlan_hdd_ipa.c
@@ -3562,6 +3562,28 @@ int hdd_ipa_wlan_evt(hdd_adapter_t *adapter, uint8_t sta_id,
HDD_IPA_LOG(VOS_TRACE_LEVEL_INFO, "%d %d",
adapter->dev->ifindex, sta_id);
+#ifdef IPA_UC_OFFLOAD
+ if (!hdd_ipa_uc_is_enabled(hdd_ipa)) {
+ HDD_IPA_LOG(VOS_TRACE_LEVEL_INFO,
+ "%s: Evt: %d, IPA UC OFFLOAD NOT ENABLED",
+ adapter->dev->name, meta.msg_type);
+ return 0;
+ }
+
+ vos_lock_acquire(&hdd_ipa->event_lock);
+ if (hdd_ipa_uc_find_add_assoc_sta(hdd_ipa,
+ VOS_TRUE, sta_id)) {
+ HDD_IPA_LOG(VOS_TRACE_LEVEL_ERROR,
+ "%s: STA ID %d found, not valid",
+ adapter->dev->name, sta_id);
+ vos_lock_release(&hdd_ipa->event_lock);
+ return 0;
+ }
+ hdd_ipa->sap_num_connected_sta++;
+ hdd_ipa->pending_cons_req = VOS_FALSE;
+ vos_lock_release(&hdd_ipa->event_lock);
+#endif
+
meta.msg_type = type;
meta.msg_len = (sizeof(struct ipa_wlan_msg_ex) +
sizeof(struct ipa_wlan_hdr_attrib_val));
@@ -3599,43 +3621,26 @@ int hdd_ipa_wlan_evt(hdd_adapter_t *adapter, uint8_t sta_id,
}
hdd_ipa->stats.num_send_msg++;
#ifdef IPA_UC_OFFLOAD
- if (!hdd_ipa_uc_is_enabled(hdd_ipa)) {
- HDD_IPA_LOG(VOS_TRACE_LEVEL_INFO,
- "%s: Evt: %d, IPA UC OFFLOAD NOT ENABLED",
- msg_ex->name, meta.msg_type);
- } else {
- vos_lock_acquire(&hdd_ipa->event_lock);
- if (hdd_ipa_uc_find_add_assoc_sta(hdd_ipa,
- VOS_TRUE,
- sta_id)) {
- HDD_IPA_LOG(VOS_TRACE_LEVEL_ERROR,
- "%s: STA ID %d found, not valid",
- msg_ex->name, sta_id);
- vos_lock_release(&hdd_ipa->event_lock);
- return 0;
- }
- hdd_ipa->sap_num_connected_sta++;
- hdd_ipa->pending_cons_req = VOS_FALSE;
- /* Enable IPA UC Data PIPEs when first STA connected */
- if ((1 == hdd_ipa->sap_num_connected_sta)
+ vos_lock_acquire(&hdd_ipa->event_lock);
+ /* Enable IPA UC Data PIPEs when first STA connected */
+ if ((1 == hdd_ipa->sap_num_connected_sta)
#ifdef IPA_UC_STA_OFFLOAD
- && (!hdd_ipa_uc_sta_is_enabled(hdd_ipa)
- || !hdd_ipa->sta_connected)
+ && (!hdd_ipa_uc_sta_is_enabled(hdd_ipa)
+ || !hdd_ipa->sta_connected)
#endif
- && (VOS_TRUE == hdd_ipa->uc_loaded)
- ) {
- ret = hdd_ipa_uc_handle_first_con(hdd_ipa);
- if (!ret) {
- HDD_IPA_LOG(VOS_TRACE_LEVEL_ERROR,
- "%s: handle 1st con ret %d",
- msg_ex->name, ret);
- } else {
- vos_lock_release(&hdd_ipa->event_lock);
- return ret;
- }
+ && (VOS_TRUE == hdd_ipa->uc_loaded)
+ ) {
+ ret = hdd_ipa_uc_handle_first_con(hdd_ipa);
+ if (!ret) {
+ HDD_IPA_LOG(VOS_TRACE_LEVEL_ERROR,
+ "%s: handle 1st con ret %d",
+ msg_ex->name, ret);
+ } else {
+ vos_lock_release(&hdd_ipa->event_lock);
+ return ret;
}
- vos_lock_release(&hdd_ipa->event_lock);
}
+ vos_lock_release(&hdd_ipa->event_lock);
#endif /* IPA_UC_OFFLOAD */
return ret;