Commit Graph

47 Commits

Author SHA1 Message Date
Akshay Kosigi
67c8bb9e06 qcacmn: Remove void ptr usage in DP cal client
Make change to remove void pointer usage in DP cal client
instead use cdp opaque pointers.

Change-Id: Ie966ebb7b6bb937d4ee1d6dce3b040804e61ac37
Crs-Fixed: 2484412
2019-07-27 13:42:56 -07:00
Akshay Kosigi
0bca9fb200 qcacmn: Change to remove void pointer usage for HAL SRNG
Add code to remove void pointer usage for hal_srng
and use opaque pointer dp_hal_ring_t instead.

Change-Id: I6907f7376d7fe3c9180b8795bd96f49fead2ec64
CRs-Fixed: 2484404
2019-07-27 13:42:41 -07:00
Akshay Kosigi
c74162c269 qcacmn: Add code to remove void pointer usage
Add code to use cdp_vdev instead of void pointer for
API dp_tx_send_exception and dp_tx_send_mesh

Change-Id: I63ca5a62c2a8cd6feb906181702888814650dfce
CRs-Fixed: 2480836
2019-07-27 13:42:24 -07:00
Amir Patel
5dc47f56dc qcacmn: Move multicast enhancement feature out of common code
Move WIN specific multicast enhancement feature API/data
structure outside common code

Change-Id: I35b10d61bd969a4ab6a864a55dd215049981c0c9
2019-06-07 03:23:56 -07:00
Varsha Mishra
1f4cfb6c58 qcacmn: Fix tx completion and rx stats per wbm/reo ring
Tx completion stats should be counted per wbm ring on tx completion
and not globally. Similarly, rx stats should be counter per reo ring.
Change-Id: I1e4af0d38b23e60de78ca03316861db08ff0811a
2019-05-31 07:40:18 -07:00
Varsha Mishra
27c5bd3193 qcacmn: Handle tx_sniffer pakcets
Send tx_sniffer to firmware and handle ppdu completions accordingly.

Change-Id: Id19a8cba4fdcad88bca6ade8c30a587c2da26d19
2019-05-29 16:47:01 -07:00
Amir Patel
cb99026ade qcacmn: Move WDS feature out of common code
Move WDS feature specific APIs out of common code
as these features are WIN specific. Keep the usage inside
common code under feature specific flags.

Change-Id: Id907a5e22c27fc47e8314449e154525684a27e85
2019-05-29 11:08:21 -07:00
Venkateswara Swamy Bandaru
9646895cad qcacmn: Fix KW issue related to meta header size
Increase the meta header size as per new ext2 descriptor.

Change-Id: I2cb1cc8399b15b9b784c5a5169d15223dfc5f0e4
CRs-Fixed: 2457693
2019-05-29 11:08:04 -07:00
Chaithanya Garrepalli
ef40fec41d Revert "qcacmn: Flush ME desc while mcast enhancement disable"
This reverts Change-Id: Ieeaab082d09135b4c803d68041ebf9b4bf7bb144

Change-Id: I4d4b07ae357cffea24c2975445120df79cbddc0d
CRs-fixed: 2444484
2019-05-20 16:55:49 -07:00
Mohit Khanna
e5a6e94464 qcacmn: Restrict RX softirq poll times
The following changes are made

-Yield dp_rx_process if poll time exceeds
-Yield dp_tx_comp_handler if poll time exceeds
-Interrupt statistics to track various interrupt contexts and
 corresponding interrupt masks
-Add poll times histogram buckets to NAPI stats

Change-Id: I8c7a6bbbb97c7b3dd1dde6ac3a97113c433086a2
CRs-Fixed: 2423879
2019-05-14 18:39:59 -07:00
Ankit Kumar
14b9622193 qcacmn: Flush ME desc while mcastenhancement disable
Flushing ME descriptor while disabling mcastenhancement feature.

Change-Id: Ieeaab082d09135b4c803d68041ebf9b4bf7bb144
CRs-Fixed: 2425078
2019-04-08 04:29:16 -07:00
Varsha Mishra
a331e6e55f qcacmn: Implement delay VOW stats for hawkeye
Delay counters per TID have been implemented for following types:
1. Linux stack to hw enqueue delay
2. HW enqueue delay to tx completion delay
3. TX interframe delay
4. RX interframe delay
5. RX frame delay from ring reap to networking stack

Change-Id: I836596cbd878a43955c18b4981cb5b7b43d4df5e
2019-03-12 06:10:05 -07:00
Varsha Mishra
18281794c8 qcacmn: Implement VOW stats for hawkeye
VOW stats is an extension of regular stats to capture
all drops per TID. Delay counters per TID are also
included.

Change-Id: If6087f37b32cf9ae4bb405190a358ad3c9750dd2
2019-03-06 18:20:42 -08:00
Ankit Kumar
8dc0e2a679 qcacmn: Add time_latency check for tx_completion
This patch adds support to measure latency  for tx completions

Change-Id: Ifda1c2f7ffaf8276f012e7a458f6f167ad931356
2019-03-05 20:56:42 -08:00
Jeff Johnson
6889ddf7bb qcacmn: Replace CONVERGED_TDLS_ENABLE feature flag
The CONVERGED_TDLS_ENABLE feature flag was originally introduced when
the TDLS feature was being componentized so that one could select
either the legacy implementation or the componentized implementation.
That componentization activity has concluded and the legacy
implementation no longer exists. To align with the current usage
remove all legacy TDLS code and switch to using the FEATURE_WLAN_TDLS
feature flag since that more accurately describes the code being
protected.

Change-Id: Ieef785844bd25b06604167eae2f52e39717f502f
CRs-Fixed: 2395694
2019-02-20 09:09:44 -08:00
Anish Nataraj
e9d4c3bf33 qcacmn: Reorganise DP init-deinit path to reuse memory
Avoid memory fragmentation that happens during
attach-detach flow.
- Reuse transmit allocated static pool memory across soc up/down.
 These memories are allocated during soc attach.
- Reuse DP source ring memory, DP soc context, DP pdev context
  across soc up/down.
- Reorganise structure members of DP soc and DP pdev so that
  we can zero out structure members across soc up/down
- Add cdp soc init/deinit and cdp pdev init/deinit that
  will be active across soc up/down

Change-Id: I5732453f617bdc16995fda916b645c41845c3ecb
2018-11-30 03:40:43 -08:00
Amir Patel
12550f6315 qcacmn: Host DP changes for TQM bypass mode
Add support to process HTT completions sent by FW for multicast/broadcast
frames sent in TQM bypass

Change-Id: If3fca3384156ce93f719bf15ef14b98ea4974f92
CRs-Fixed: 2301453
2018-10-04 01:51:56 -07:00
Sravan Kumar Kairam
26d471ec56 qcacmn: Take peer ref count and dec it after using
Currently peer reference is used with out taking any ref count.
In parallel context execution on different core peer reference may
be cleaned up in peer unmap event. So take ref count while using
the peer reference and decrement after done with it.

Change-Id: I02ca172cbdc4309fabd3bbbad00940826662bbd3
CRs-Fixed: 2301963
2018-09-27 20:24:36 -07:00
Ruchi, Agrawal
234753cb0f qcacmn: add cal client timer change for peer stats
Cal client timer change for updating peer stats
per sec.

Change-Id: Ie6540fcf0e4699bff9156d87c17a5c73664a6230
CRs-Fixed: 2286826
2018-08-31 00:51:17 -07:00
chenguo
6824d8d9c9 qcacmn: Fix compiling error when enable ATH_TX_PRI_OVERRIDE
"(" character should not appear in macro parameter list. Remove
this illegal character to avoid compiling error.

CRs-Fixed: 2239574
Change-Id: Ie50feb5dacda52edb0b1a4fcdfd516e909c7bda8
2018-05-18 02:17:17 -07:00
Neil Zhao
488763687b qcacmn: fix tid overwrite/save FRs for HK
Fix tid overwrite and save features' brokage for HK

Change-Id: I71985a73f65ad4ddf79ae9a2efb00c5de12b9cd8
2018-04-26 16:02:11 -07:00
Tallapragada Kalyan
71c46b9357 qcacmn: WDS and AST specific code under different compile time flag
Based on requirement from customer we have re-organised
AST specific and WDS specific code under different compile
time flags.

Change-Id: Icbb0dff7c2e7a2239d82c296468fa8d3e4f53021
2018-03-20 05:59:07 -07:00
Ruchi, Agrawal
c0f9c97c95 qcacmn: Free txdesc during pdev detach
On Firmware auto recovery , txdesc resources
might not be freed if f/w has not sent the
completion. Freeing those buffers in pdev
detach

Change-Id: I7d62258347f1fc9566fc8230564bcaf458ea4cc4
2018-02-09 00:42:30 -08:00
Venkateswara Swamy Bandaru
58c8085e21 Revert "Revert "qcacmn: Mesh throughput enhancements""
This reverts commit I7421f3572c46ed27a2d96724b2bbbe40c0704e5f.

Change-Id: I8c44b0e893f81aadf7aa4404538776f27a579d76
CRs-Fixed: 2180219
2018-02-06 07:44:57 -08:00
Soumya Bhat
2072557943 qcacmn: Populate required info to capture header
Populate capture header with peer_id and first/last msdu
indications.

Change-Id: I8ef6f13cb9243a5f24dc014e2dd55e78ad351616
CRs-Fixed: 2177969
2018-02-05 03:40:09 -08:00
Prathyusha Guduri
be41d97175 qcacmn: add dp_tx_send_exception
dp_tx_send_exception is an exception path that transmits frames
through FW by setting DP_TX_DESC_FLAG_TO_FW

Change-Id: Id6abfcd2bf060c4fe3aaca91634f3be501530a7e
CRs-Fixed: 2176814
2018-01-30 13:40:37 -08:00
Pamidipati, Vijay
aeff44499d qcacmn: Fix double memfree issue in MCAST2UCAST
Fix the condition check for return value in DP transmit path
for MCAST2UCAST

Change-Id: I81220838ce1c867afdab6447a30d7d7076f0c094
CRs-Fixed: 2164244
2018-01-27 09:21:41 -08:00
Venkateswara Swamy Bandaru
b2864fabe4 Revert "qcacmn: Mesh throughput enhancements"
This reverts commit I89ff27994477a5637979a9cd6a397286144b2535.

Change-Id: I7421f3572c46ed27a2d96724b2bbbe40c0704e5f
CRs-Fixed: 2177160
2018-01-26 09:20:39 -08:00
Venkateswara Swamy Bandaru
e91dd92e8b qcacmn: Mesh throughput enhancements
Sending all frames to firmware will have high throughput impact.
Queue mesh frames also to TCL/TQM and send cloned frame to firmware
only if meta header information is changed to update meta header
information. Increased meta info size as per new ext2 header.

Change-Id: I89ff27994477a5637979a9cd6a397286144b2535
CRs-Fixed: 2162643
2018-01-13 02:17:50 -08:00
Pamidipati, Vijay
7a4721f3ab qcacmn: Free Tx ME pool in detach path
Tx ME descriptors used for Tx Multicast enhancement are not freed
in pdev detach path causing memory leak. Fix this by freeing
them in pdev detach path.

Change-Id: I902e7a829495871e3d0013a9942f86c02bbba80e
CRs-Fixed: 2168524
2018-01-11 14:25:54 -08:00
Radha krishna Simha Jiguru
47876f618c qcacmn: make dp_send_compl_to_stack non static
make dp_send_compl_to_stack non static to be able to call it from
NSS offload path for FR 42926

Change-Id: Ie93f011c784bd6c95efbd79b6645f556ba198d66
2017-12-11 09:31:27 -08:00
Kabilan Kannan
78acc11a99 qcacmn: Fix WIN compilation problem
Fix the compilation problem in tx non std interface
function.

Change-Id: I61c92a8545e5a468202a1032449f590938f199b1
CRs-Fixed: 2124351
2017-10-12 14:22:04 -07:00
Kabilan Kannan
60e3b3062d qcacmn: Add host data path functions for TDLS
Add and enable host data path functions for Napier
TDLS.

Change-Id: I228c2dcf4e8d797d173007a3306d112aca5ba52f
CRs-Fixed: 2114813
2017-10-05 19:59:55 -07:00
Pamidipati, Vijay
9e34025ada qcacmn: Add option to enable or disable accounting of Tx in NAPI budget
Add a division factor for number of tx completions to be accounted for in NAPI
budget. Fix the data type of budget to int to account for negative values.

Change-Id: I620af5537c5c1cdf3161da3a3c053a2c8bf777e8
CRs-Fixed: 2092526
2017-08-29 23:41:33 -07:00
Radha krishna Simha Jiguru
f70f991f45 qcacmn: Send peer create to NSS only for connected peers
Send peer create to NSS only when peer map comes for connected peers.
When peer map comes for WDS peers only update WDS peer specific entries.

Change-Id: I32d785180bcd1dae2703d40b55f4536685f10439
2017-08-17 20:51:16 -07:00
Pamidipati, Vijay
4f7c305cfa qcacmn: Fix HTT completions for ME and TSO Tx completions
For frames that are dropped by FW/HW and returned to host through WBM HTT path,
freeing of associated ME buffers (for multicast enhancement) and handling of TSO
segments is missing. Create a new function to handle the freeing of buffers in
Tx completion path and call this function in both HTT completion and regular
completion path.

Change-Id: Ibd061830e9325a2b2be9b1779b67b700f4ac08ae
CRs-Fixed: 2004658
2017-08-09 17:01:59 -07:00
Manjunathappa Prakash
ced7ea6cf2 qcacmn: Add changes for Napier flow control
Adds support for flow control on convergence branch.
Allocate Tx descriptors dynamically when vdev comes up.
Tx queue is paused and unpaused internally in host based on the
stop and start thresholds.
Changes are added under compilation flag QCA_LL_TX_FLOW_CONTROL_V2.

Change-Id: I0ccb80b0099f39efad52ccd7d47f2709fdee2a93
CRs-Fixed: 2040457
2017-07-18 23:35:05 -07:00
Pamidipati, Vijay
c9a13a52c8 qcacmn: Set addr_search flags according to vdev opmode
Add support to set addr_search flags in WLAN Tx Descriptor
as per vdev operational mode

Change-Id: I25fcd4bf450982f8aecc6e91236211c17d5f3f22
CRs-Fixed: 2004658
2017-04-24 15:55:13 -07:00
Ishank Jain
c838b133c1 qcacmn: Add Mcast enhancement feature support
Feature to convert Multicast packet and send them as unicast.

Change-Id: I64d44ac337bd366c6799226fd69f89cd3e46e65d
CRs-Fixed: 1116432
2017-04-14 10:17:19 -07:00
Pamidipati, Vijay
110bf96741 qcacmn: Fix size mismatch between dma_map and dma_unmap in Tx path
Change calls to qdf_dma_map_nbytes_single to qdf_dma_map to match with
qdf_dma_unmap used in tx completion path. Also fix the dma_addr value that is
passed to Tx HW; we were incorrectly subracting pkt_offset instead of just
subtracting alignment bytes from dma_addr

Change-Id: I2d6f32bd44e02824a1a788e3624dcb3680f1b242
CRs-Fixed: 2004658
2017-03-28 20:06:33 -07:00
Ishank Jain
5122f8fc48 qcacmn: Enable TSO support for QCA8074/6290 DP
Add TSO support for transmit datapath of QCA8074/6290

Change-Id: Id7254859372aa43e3ed16f80c0240d1b78ae63cc
CRs-Fixed: 2004658
2017-03-17 00:36:45 -07:00
Ishank Jain
bc2d91f8f3 qcacmn: Add TxRx Statistics for Lithium datapath
Statistics can be displayed by issuing following commands

iwpriv ath0 txrx_fw_stats 3 /*Rx Rate Info*/
iwpriv ath0 txrx_fw_stats 6 /*Tx Rate Info*/
iwpriv ath0 txrx_fw_stats 8 /* print Tx stats */
iwpriv ath0 txrx_fw_stats 27 /*print Rx stats */

To reset the stats:
iwpriv ath0 txrx_fw_stats 9 /* clear all stats */

Change-Id: If4be2549f43403e71ef092c23b1cf14b35a2e5d4
CRs-Fixed: 1114641
2017-03-09 17:37:42 +05:30
Venkateswara Swamy Bandaru
3f62370e23 qcacmn: Add support for Mesh Tx path
Added mesh specific data path changes. Extract mesh meta header in the
packet and pass it to firmware. Fill tx completion stats and call upper layer
call back function incase external tx completion is registered.

Change-Id: Ic3c1c37b2f59b1a35e3cf00a4498342dc20427d2
CRs-Fixed: 2003389
2017-03-03 11:37:09 -08:00
Ravi Joshi
ab33d9bb8f qcacmn: Fix Tx completion handling by using pdev instead of vdev
The Tx completion is an asynchronous event from hardware that
cannot be synchronized with vdev deletion. This causes issues
in the datapath which attempts to use invalid vdev pointer
(if tx complete is received after vdev delete).

Change-Id: I8b27b3a59a3674214dcd45dc621b068f7253a6c6
CRs-Fixed: 2005584
2017-02-27 15:05:35 -08:00
Vijay Pamidipati
5bcfa31ec4 qcacmn: Add support to process Tx completion status from WBM descriptor
Add HAL API to parse Tx completion statistics from WBM descriptor and
populate HAL Structure and a DP API to print the statistics per packet

CRs-Fixed: 1088985
Change-Id: Ic6e918aabdbd7743d8f640e0451070dc229c6f0d
2016-12-23 06:06:01 -08:00
Leo Chang
5ea93a4527 qcacmn: wifi3 compile against cdp
Wifi 3.0 compile against cdp apis.
Make compilable against mobile code base.
selective hw common header include.

Change-Id: I051f917001c0d13c762d9cb5a3ec141cd278d0e7
CRs-fixed: 1075736
2016-11-17 19:13:03 -08:00
Pamidipati, Vijay
576bd154a2 qcacmn: Add Lithium DP Tx core functionality
Implement Lithium Core Tx Data Path, Tx HW descriptor processing
and Tx Completion Path (Processing of WBM Release Ring)

CRs-Fixed: 1073253
Change-Id: I11bebc49177398a157fcd161228859e2ef860402
2016-11-01 20:06:51 -07:00