Commit Graph

287 Commits

Author SHA1 Message Date
Yun Park
11d46e0476 qcacmn: Optimize data path logging
Remove or lower log level to reduce log from data path which affects
to TPUT.

Change-Id: I7d4344c80cefb4a9539644ef50ff2074d80d6548
CRs-Fixed: 2143250
2017-12-07 22:34:10 -08:00
Pranita Solanke
a12b4b305c qcacmn: Add support for missing Node statistics
Add support for following node statistics for Lithium DP
1) Number of Tx unicast MSDUs and bytes
2) Last Tx and Rx rate
3) Excessive retries per AC

Change-Id: If533df25e5299bf399bed85ace99763aab74134e
2017-12-07 05:37:29 -08:00
Ruchi, Agrawal
34721398d5 qcacmn: Host CCE Classification Changes
Host CCE Classification changes for RAW Mode workaround
H/w CCE hangs while classfiying raw packets
so the classification is moved to host

Change-Id: I75cfc6b140a7983fcdfb797c93b9fd57f01c5ee3
2017-12-06 06:57:02 -08:00
ruchi agrawal
45f3ac45c9 qcacmn: WEP bit set for RAW Mode Workaround
Set WEP bit for protection disabled VAP, to avoid
Hardware crash

Change-Id: I4121d04de9465e07aae2ba24930b1045fb8addf8
CRs-Fixed: 2132317
2017-12-05 01:25:31 -08:00
Soumya Bhat
6fee59c4d5 qcacmn: RX AM Copy mode
Provision to send first MSDU of a PPDU to upper layer based
on PPDU ID received in RX monitor lite ring.
FR 42926

Change-Id: I6daed9382b57fb3355ec6453e0609085cc7b9bb0
CRs-Fixed: 2127108
2017-12-01 22:28:23 -08:00
Soumya Bhat
2f779b050b qcacmn: AM copy mode for TX
Provision to send first data frame of a PPDU to upper layer, based
on PPDU ID and peer ID received in MSDU TX completion indication.
FR 42926

Change-Id: Ifac443b1d56d3e91cd72d1868f253ca10beae8ee
CRs-Fixed: 2127108
2017-12-01 22:28:21 -08:00
Ruchi, Agrawal
bd894b3bb9 qcacmn: NAWDS multicast issue CR2130039
Multicast frames in NAWDS mode causing flood of packets between the
nawds enabled AP's due to continuous sending of mutlicast frames received
from  another AP and vicevera.Resolved the issues by droppping the 3
address Multicast frames and 4 address multicast frames with sa_peer
same as tx_peer.

Change-Id: I5edbcb060720510eb6ea5f5ffd46402535ba6748
CRs-Fixed: 2130039
2017-11-27 03:34:02 -08:00
Manjunathappa Prakash
d8987b30ff qcacmn: Do not log when we run out of tx descriptors
Remove excessive failure logs. We have stats when we fail to get
the tx descriptor and drop packet. So do not log tx descriptor
unavilability failure.

Change-Id: Ia3d929048545ebcd05b52d0819a818cc09878e97
CRs-Fixed: 2128380
2017-11-16 15:19:29 -08:00
Linux Build Service Account
519d203401 Merge "qcacmn: Change format specifier %p to %pK" 2017-11-15 11:57:36 -08:00
Pamidipati, Vijay
da917d573c qcacmn: Fixes for 64-bit paddr
In DP Transmit path, 32-bit variables are being used to store paddr.
This will not work for 64-bit systems.
Address this by making them 64-bit variables.

Change-Id: I4c146649773cfd9bdc636187cb35d9d776bf072f
CRs-Fixed: 2142458
2017-11-15 09:42:36 -08:00
Soumya Bhat
741b8fe64a qcacmn: Fix transmitter MAC address
Fix transmitter MAC address, which is being appended
to MSDU payload when tx packet capture is enabled.

Change-Id: Ic5bd3eab434125e9e4278e1e7af3ec47b7b3698f
CRs-Fixed: 2142085
2017-11-15 04:11:34 -08:00
Pamidipati, Vijay
57a435a7e0 qcacmn: Move peer stats to PPDU indications
Move peer stats updation to PPDU indications from per-MSDU indications
to optimize CPU cycles. Add dp_rx_stats_update for receiver side PPDU stats

Change-Id: I4bdda8ac447e64cd1017e5be3949ec3f915a9d71
CRs-Fixed: 2123969
2017-11-15 12:39:08 +05:30
Pamidipati, Vijay
871850e015 qcacmn: DP Tx path change for H/W alignment requirement
Transmit H/W requires that metadata sent as packet pre-header
should not be overlapping with the packet, as it might cause stalls
in the bus and might affect performance. For this reason, we are
removing align_pad bytes that we were adding by default for all
non-8-byte aligned frames and setting pkt_offset as 0 in Tx descriptor,
so that H/W does not read any metadata by default. H/W team confirmed that
8-byte alignment requirement is not there for frames which do not
have any metadata (Mesh/OCB/TDLS etc).

Change-Id: I2afdeaa49bc8306e7072cf5945762f19d6e4115f
CRs-Fixed: 2138287
2017-11-10 04:08:11 -08:00
Venkateswara Swamy Bandaru
80683044e3 qcacmn: Fix mesh fixed rate issue
Set host_tx_desc_pool bit in ext header for mesh frames as per
new ext2 header.

Change-Id: I7b4076e5882d8220b3f98fdbf0a7a52efc8abee6
CRs-Fixed: 2133277
2017-11-09 22:08:03 -08:00
Yun Park
b9a7b5ac0d qcacmn: DP logging adjustments (0)
Reduce logging level of DP prints

Change-Id: I8909110ae33f279a9e2e66ae3fa1d40936418db4
CRs-Fixed: 2118016
2017-10-27 19:37:27 -07:00
Soumya Bhat
e9d320934e qcacmn: Fix return condition
Fix return condition in dp_tx_comp_free_buf()

Change-Id: Ia2d5fc1d3ceb12dfbb029627dc47e575ef52b327
CRs-Fixed: 2131477
2017-10-25 01:41:49 -07:00
Soumya Bhat
cfbb8952ff qcacmn: Tx packet capture
Add support to send MSDU, mgmt. and ctrl payload along with metadata
to upper layer callback

FR 42132

Change-Id: Ie751322c7c15419ea908538e9e8687b64693fcfa
CRs-Fixed:2068486
2017-10-23 15:46:03 -07:00
Pamidipati, Vijay
bd9c13f2e8 qcacmn: Enable update of per-peer statistics in MSDU Tx completions
Update of per-peer statistics was disabled from per-MSDU indications
as they are now updated from per-PPDU indications. However, the data from
per-PPDU indications is incorrect for some fields. Re-enable update of
statistics for per-MSDU completions till this issue is fixed in FW

Change-Id: I2983ef9244a6f95104ba49ab6d1c6543a951d0b2
CRs-Fixed: 2128230
2017-10-23 08:06:22 -07:00
Houston Hoffman
41b912cfff qcacmn: DP logging adjustments (1)
Adjust logging to reduce printing to the console by datapath.

Change-Id: I9354cf939a6edcf6cd6fc66dbeb4638b517f30da
CRs-Fixed: 2117150
2017-10-20 12:17:26 -07:00
Nandha Kishore Easwaran
b39fce7bc3 qcacmn: Add mac address check in mec handler
Add a check in mec handler to see if mac_address is same as that of
vdev_macaddr.raw. If both mac addresses are equal, then add_wds_entry should
not be called. This corner case is seen in qwrap mode where the vdev address
is same as that of the backend wired station

Change-Id: I17504de8ef379680c2a2b962280e1853a5b2930d
CRs-fixed: 2109554
2017-10-17 10:42:32 -07: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
Jeff Johnson
3f217e2a81 qcacmn: dp: Replace instances of unadorned %p
Replace instances of unadorned %p in dp.

Change-Id: I8d9c0f6efe5f03a582a36d7ff39a905a5de576a7
CRs-Fixed: 2111274
2017-09-28 04:48:10 -07:00
Yue Ma
245b47bfb5 qcacmn: Add runtime PM support for new data path
Handle runtime PM feature in new data path for QCA6290.

Change-Id: I0a211436d80d68bc94d11ccd3c34860b648e40e7
CRs-fixed: 2023358
2017-09-26 11:25:52 -07:00
Houston Hoffman
ae850c6d62 qcacmn: Cleanup some excessive logging
Cleanup some excessive logging used durring bringup.

Change-Id: I09df15b7aad8176ad35f70d4d51b4a0a254699e0
CRs-Fixed: 2101103
2017-09-13 15:25:42 -07:00
Pamidipati, Vijay
038d090817 qcacmn: Add PPDU statistics support for Tx datapath
Add support to process HTT PPDU statistics for transmit
datapath and deliver PPDU indication to CDP interface.

Change-Id: I22e757497e13ce86fb7b42112fd56555c58e97bc
CRs-Fixed: 2098696
2017-09-13 01:48:18 -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
Venkateswara Swamy Bandaru
6d840bcb94 qcacmn: Fix for kernel panic in wifi up path
Same nbuf pointer is getting used after skb_unshare. This is fixed now.

Change-Id: I98cdbf5929553f20e78b04b32874beea03208cce
CRs-Fixed: 2094334
2017-08-22 07:26:04 -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
Tallapragada Kalyan
fb72b637f7 qcacmn: AST based MEC support for HAWKEYE
Implemented MEC support using AST entries rather than
using a separate MEC table.

Change-Id: Ifaafb4be1f8a981ad28609ea9740e8bbccec9046
2017-08-17 14:55:11 -07:00
Pamidipati, Vijay
623fbee5f9 qcacmn: Clean up TxRx statistics
Cleanup the print format for rate stats.
Add missing elements in HAL tx completion structure.

Change-Id: I57aaac605fce5060f7943b9bbe95ef8e8c2d3b7b
2017-08-15 17:32:16 -07:00
Pamidipati, Vijay
fc77960e38 qcacmn: Fix a locking issue in DP Tx error path
There is a possiblility of invoking spin_unlock without taking
spin_lock in DP tx descriptor prepare function in error path.
This change fixes this issue.

Change-Id: Id4c5c0115b14041865e7f97f930e7023e865eca2
CRs-Fixed: 2088616
2017-08-09 19:36:56 -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
Aniruddha Paul
0b1c4d22bb qcacmn: Dual radio mode with 5g NSS offloaded and 2g Non-Offloaded
Disable interrupt mask for rings used by NSS offloaded radios

Change-Id: I1491177c9faf242635a486b8cfffa2e849fe123e
CRs-Fixed: 2077274
2017-07-22 17:58:30 -07:00
Venkata Sharath Chandra Manchala
6560d45bd2 qcacmn: Remove duplicate prints in tx path
Avoid printing skb info twice upon
entering the dp_tx_send API.

Change-Id: Ia719025f034f45fea5a947b3e40fbeb693dfceca
CRs-Fixed: 2076271
2017-07-21 18:34:26 -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
Kiran Venkatappa
a7b6842a72 qcacmn: Initialize msdu_info in dp_tx_send_multiple
Initialize msdu_info before calling API to queue frames in HW. msdu_info
provides tid info which was going as random value to HW causing target
assert. Intialize it so that proper value is used.

Change-Id: I5028508f05b7b8ff2be123c21b3aed75adeb54d8
CRs-Fixed: 2076799
2017-07-15 10:05:33 -07:00
Venkata Sharath Chandra Manchala
532cd5f161 qcacmn: Fix for Tx software descriptor leak
Release Tx software descriptor if access to ring
fails

Change-Id: I23152301b8042af402b9c605b69a2e68d9a0c85c
CRs-Fixed: 2042201
2017-07-12 19:26:08 -07:00
Pamidipati, Vijay
f82fb2b8f7 qcacmn: Add support to process v2 fw2wbm completion structure
FW has moved to using v2 HTT_FW2WBM message format for Tx completions
Add corresponding change on Host.
Add missing code to free Tx descriptors for few HTT completion types
Also change the descriptor pool lock to spinlock_bh since transmit path
and completions typically run in tasklet/softirq context

Change-Id: I024d44243f95907f19086225f0f02a5cd64f4508
CRs-Fixed: 2068155
2017-07-11 23:48:00 -07:00
Pamidipati, Vijay
be379457e6 qcacmn: Add a flag to enable/disable per-packet sync of DP stats
Currently all Host collected DP statitics are synced to upper layers
on per-packet basis; This is causing significant CPU overhead.
Add a flag which can be controlled through iwpriv to enable/disable
updating of these statistics from DP to higher layers

Change-Id: I983c6d91803c83c1efd49c5535769a0c10fbc9b5
CRs-Fixed: 2064113
2017-06-26 17:42:34 -07:00
Venkata Sharath Chandra Manchala
340c0d8903 qcacmn: Incorrect use of tx descriptor
Avoid accessing and releasing tx descriptor when it is
not allocated in tx path.

Change-Id: I36515b679c541d081fd836ea3fb732768031cc06
CRs-Fixed: 2062160
2017-06-23 10:41:30 -07:00
Tallapragada Kalyan
274eb9e76b qcacmn: Temporary WAR for Multicast echo check in host
This is a temporary WAR in host for multicast loopback check
until we finalize on exact design, and host or firmware will
take care of this

Change-Id: I4d2d1b0f5d2a78d4c8716740b74c4fee22c28e96
CRs-Fixed: 2039038
2017-06-16 17:12:15 -07:00
Venkata Sharath Chandra Manchala
d6ad0d5c49 qcacmn: Print tx descriptor id
Print the tx descriptor id when a new
descriptor is allocated for a skb.

Change-Id: I7326a79149de124edc8ebf5b2b0d6349e385b321
CRs-Fixed: 2054538
2017-06-05 19:28:57 -07:00
Venkateswara Swamy Bandaru
15c68dadff qcacmn: Fix channel information mesh frame tx completion
Added channel info to meta header in mesh frame tx completion.

Change-Id: If032ee92330cc76c683f2b81af3707bccfe76fa9
CRs-Fixed: 2003389
2017-05-24 02:41:08 -07:00
Venkata Sharath Chandra Manchala
35503cce26 qcacmn: TSO fixes
1. Unmap tso common segment only after receiving
   completions for all the tso segments for a given
   skb.
2. Keep a track of num of free tso descriptors available
   in the pool of tso descriptors.

Change-Id: I01bdbb9e40b7259f77dbcfeec22c6d8cd0c0a6dd
CRs-Fixed: 2042950
2017-05-22 17:05:21 -07:00
Ishank Jain
997955e336 qcacmn: Add Support for Inspect Path for Lithium
Add peer-id in the meta data for the reinjected by the FW
and queue them to the HW.

Change-Id: I3f25d5f928b6891c06cad6ce3ed81df77d4e33ed
CRs-Fixed: 2024450
2017-05-18 10:36:48 -07:00
Sathish Kumar
e7e784d1b4 qcacmn: Adding SW workaround for raw mode AMSDU packets
Due to HW limitation, WEP bit is expected to be set in AMSDU packets
transmitted in raw mode.

Set WEP bit if the QOS frame is AMSDU during the tx processing of the
raw mode packet.

Change-Id: Ibaa7d95f6ebcf9016e3c02355b5f0ce909eb9a93
CRs-Fixed: 2042666
2017-05-18 09:45:22 -07:00
Ishank Jain
57c42a193c qcacmn: Add missing TxRx Datapath stats
1.Add QDF_TRACE_STATS for datapath stats to remove
  module prints.
2.Fix Stats indentation for better readability.
3.Add missing stats
  a. Update Packets on Rx side on per-ring basis.
  b. Add stats for features (TSO/SG/RAW/Mesh)
  c. Add packet type count on Rx.

Change-Id: Ief1719b67330f729ff60703ec2be26bc5e4201e9
CRs-Fixed: 2034876
2017-05-05 00:27:21 -07:00
Kabilan Kannan
56bfd8fdb3 qcacmn: Update address search flags for TDLS
Add support to set address search flags in WLAN Tx Descriptor
for TDLS operation

Change-Id: Iafb15fb1efd84a4bef436062368401a5496e4468
CRs-Fixed: 2041759
2017-05-05 00:27:20 -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