diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2016-11-04 06:00:04 -0600 |
|---|---|---|
| committer | Linux Build Service Account <lnxbuild@localhost> | 2016-11-04 06:00:04 -0600 |
| commit | 2f4e4ecc1aafb3ea54108614797d7612de742656 (patch) | |
| tree | 2e21f58cd45f0e74fd85f5771d2068f21e03c89e | |
| parent | 00bff1f57c3bf975ba2a383e5ab0c9d583834cc2 (diff) | |
| parent | 3e29339afbb1b303c29a6d678941f61808953f5e (diff) | |
Promotion of wlan-cmn.driver.lnx.1.0-00094.
CRs Change ID Subject
--------------------------------------------------------------------------------------------------------------
1084912 Iafe31850872cac3eaff35eeb57ab271b4409ef18 qcacmn: Add wmi_roam_scan_mode_fixed_param TLV alone for
688141 Iada7edb98c10e32f286749a0062881f8f6fcd6bd Release 5.1.0.25A
688141 I7ca549a30090c0abc66f857f5403ed6495c31b3c Release 5.1.0.25B
990726 Ib36e1a9f34eb9054b12f0e8ba54a86ace7d6c8f8 qcacmn: improve mboxping TX t-put for SDIO project
1078139 1084912 Iafe31850872cac3eaff35eeb57ab271b4409ef18 qcacmn: Add wmi_roam_scan_mode_fixed_param TLV alone for
Change-Id: Idb3259f612c285c80a1a465c9eb70dfbb48c9846
CRs-Fixed: 688141, 1084912, 1078139, 990726
| -rw-r--r-- | VERSION.txt | 2 | ||||
| -rw-r--r-- | htc/htc.c | 1 | ||||
| -rw-r--r-- | htc/htc_api.h | 13 | ||||
| -rw-r--r-- | htc/htc_internal.h | 6 | ||||
| -rw-r--r-- | htc/htc_send.c | 27 | ||||
| -rw-r--r-- | wmi/src/wmi_unified_tlv.c | 11 |
6 files changed, 54 insertions, 6 deletions
diff --git a/VERSION.txt b/VERSION.txt index 7454a56a50bd..82b8fe1f8ae3 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1,2 +1,2 @@ -Current Component wlan-cmn.driver.lnx.1.0 version 5.1.0.25 +Current Component wlan-cmn.driver.lnx.1.0 version 5.1.0.25B Matches Component wlan-cld3.driver.lnx.1.1 version 5.1.0.22C diff --git a/htc/htc.c b/htc/htc.c index 63442bddef5b..ea3a210f2cf1 100644 --- a/htc/htc.c +++ b/htc/htc.c @@ -266,6 +266,7 @@ HTC_HANDLE htc_create(void *ol_sc, HTC_INIT_INFO *pInfo, qdf_device_t osdev, qdf_spinlock_create(&target->HTCRxLock); qdf_spinlock_create(&target->HTCTxLock); qdf_spinlock_create(&target->HTCCreditLock); + target->is_nodrop_pkt = false; do { qdf_mem_copy(&target->HTCInitInfo, pInfo, diff --git a/htc/htc_api.h b/htc/htc_api.h index 5adc278bf87d..dac72bc3001b 100644 --- a/htc/htc_api.h +++ b/htc/htc_api.h @@ -638,6 +638,19 @@ bool htc_is_endpoint_active(HTC_HANDLE HTCHandle, HTC_ENDPOINT_ID Endpoint); /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + @desc: Set up nodrop pkt flag for mboxping nodrop pkt + @function name: htc_set_nodrop_pkt + @input: HTCHandle - HTC handle + isNodropPkt - indicates whether it is nodrop pkt + @output: + @return: + @notes: + @example: + @see also: + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +void htc_set_nodrop_pkt(HTC_HANDLE HTCHandle, A_BOOL isNodropPkt); + +/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @desc: Get the number of recv buffers currently queued into an HTC endpoint @function name: htc_get_num_recv_buffers @input: HTCHandle - HTC handle diff --git a/htc/htc_internal.h b/htc/htc_internal.h index ccabdb699027..596628cead6a 100644 --- a/htc/htc_internal.h +++ b/htc/htc_internal.h @@ -201,6 +201,12 @@ typedef struct _HTC_TARGET { #endif uint32_t con_mode; + + /* + * This flag is from the mboxping tool. It indicates that we cannot + * drop it. Besides, nodrop pkts have higher priority than normal pkts. + */ + A_BOOL is_nodrop_pkt; } HTC_TARGET; #if defined ENABLE_BUNDLE_TX diff --git a/htc/htc_send.c b/htc/htc_send.c index d6b87946e4ee..d08e7b75d42b 100644 --- a/htc/htc_send.c +++ b/htc/htc_send.c @@ -1112,11 +1112,22 @@ static HTC_SEND_QUEUE_RESULT htc_try_send(HTC_TARGET *target, LOCK_HTC_TX(target); if (!HTC_QUEUE_EMPTY(&sendQueue)) { - /* transfer packets to tail */ - HTC_PACKET_QUEUE_TRANSFER_TO_TAIL(&pEndpoint->TxQueue, - &sendQueue); - A_ASSERT(HTC_QUEUE_EMPTY(&sendQueue)); - INIT_HTC_PACKET_QUEUE(&sendQueue); + if (target->is_nodrop_pkt) { + /* + * nodrop pkts have higher priority than normal pkts, + * insert nodrop pkt to head for proper + * start/termination of test. + */ + HTC_PACKET_QUEUE_TRANSFER_TO_HEAD(&pEndpoint->TxQueue, + &sendQueue); + target->is_nodrop_pkt = false; + } else { + /* transfer packets to tail */ + HTC_PACKET_QUEUE_TRANSFER_TO_TAIL(&pEndpoint->TxQueue, + &sendQueue); + A_ASSERT(HTC_QUEUE_EMPTY(&sendQueue)); + INIT_HTC_PACKET_QUEUE(&sendQueue); + } } /* increment tx processing count on entry */ @@ -2015,6 +2026,12 @@ bool htc_is_endpoint_active(HTC_HANDLE HTCHandle, HTC_ENDPOINT_ID Endpoint) return true; } +void htc_set_nodrop_pkt(HTC_HANDLE HTCHandle, A_BOOL isNodropPkt) +{ + HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(HTCHandle); + target->is_nodrop_pkt = isNodropPkt; +} + /** * htc_process_credit_rpt() - process credit report, call distribution function * @target: pointer to HTC_TARGET diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index 049c11ca3efc..83b4a8be28f4 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/wmi/src/wmi_unified_tlv.c @@ -4226,6 +4226,10 @@ QDF_STATUS send_roam_scan_offload_mode_cmd_tlv(wmi_unified_t wmi_handle, } #endif /* WLAN_FEATURE_ROAM_OFFLOAD */ + if (roam_req->mode == (WMI_ROAM_SCAN_MODE_NONE + |WMI_ROAM_SCAN_MODE_ROAMOFFLOAD)) + len = sizeof(wmi_roam_scan_mode_fixed_param); + buf = wmi_buf_alloc(wmi_handle, len); if (!buf) { WMI_LOGE("%s : wmi_buf_alloc failed", __func__); @@ -4242,8 +4246,13 @@ QDF_STATUS send_roam_scan_offload_mode_cmd_tlv(wmi_unified_t wmi_handle, roam_scan_mode_fp->roam_scan_mode = roam_req->mode; roam_scan_mode_fp->vdev_id = roam_req->vdev_id; + if (roam_req->mode == (WMI_ROAM_SCAN_MODE_NONE + |WMI_ROAM_SCAN_MODE_ROAMOFFLOAD)) + goto send_roam_scan_mode_cmd; + /* Fill in scan parameters suitable for roaming scan */ buf_ptr += sizeof(wmi_roam_scan_mode_fixed_param); + qdf_mem_copy(buf_ptr, scan_cmd_fp, sizeof(wmi_start_scan_cmd_fixed_param)); /* Ensure there is no additional IEs */ @@ -4453,6 +4462,8 @@ QDF_STATUS send_roam_scan_offload_mode_cmd_tlv(wmi_unified_t wmi_handle, WMITLV_GET_STRUCT_TLVLEN(0)); } #endif /* WLAN_FEATURE_ROAM_OFFLOAD */ + +send_roam_scan_mode_cmd: status = wmi_unified_cmd_send(wmi_handle, buf, len, WMI_ROAM_SCAN_MODE); if (QDF_IS_STATUS_ERROR(status)) { |
