Commit Graph

436 Commits

Author SHA1 Message Date
Manjunathappa Prakash
6d2f46df2c qcacmn: Fix potential nbuf memory leak if mmap fails
Make sure free the allocated nbuf if we fail to memory map it.

Change-Id: I90606ab088fc093b390644478bccc77f08800cd5
CRs-Fixed: 2142469
2017-11-16 07:22:08 -08:00
Manjunathappa Prakash
c850ec6e18 qcacmn: Move AST handling functions under WDS compile flag
Move AST handling functions in side WDS compilation flag.

Change-Id: If8fb93e513b1a645b5d9c7fb73df0ed90770010d
CRs-Fixed: 2131812
2017-11-16 07:22:06 -08:00
Chandru Neginahal
2a4e5d2262 qcacmn: Proxy STA fails to connect to ROOT AP in QWRAP mode
Correct the logic to send peer create command in nss
wifi offload mode.

Change-Id: If88a18798af9ee9273c9580ca1fd725a15f07eef
CRs-Fixed: 2119796
2017-11-16 02:48:42 -08:00
Tallapragada Kalyan
a7010a6a6d qcacmn: additional sanity checks on reo exception ring
check if the received reo exception ring descriptor has
valid information by checking for sw cookie magic number
and check for rbm validity within the msdus of the msdu
link descriptor.

Change-Id: I44a0f47e43a334f26cfdb4d41d3eed39483d8604
2017-11-15 23:37:09 -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
365a8bd240 qcacmn: Fix parameter passed in dp-target_if API
Fix a bug in DP soc init to pass correct parameter in get_dp_cfg_param
API

Change-Id: Icbb8bd593d9bc3ad198ee63d66ce6c381c9954bb
CRs-Fixed: 2142458
2017-11-15 09:42:37 -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
a6bdfd8b46 qcacmn: Populate ppdu end timestamp
Populate ppdu end timestamp, received from FW into cdp tx structure.

Change-Id: I114b595bf0ad98469f095267b8d3e98017897514
CRs-Fixed: 2143073
2017-11-15 07:25:11 -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
Yun Park
fd269b5021 qcacmn: Remove kernel includes from datapath
To abstract kernel header inclusion, create a new QDF APIs for all IPA
APIs and redirect all IPA API calls through QDF interfaces.

Change-Id: I7bff975ad7cb32fc128320c124633594471e0a1f
CRs-Fixed: 2098907
2017-11-11 19:25:09 -08:00
Om Prakash Tripathi
3e166ff7e4 qcacmn: Add support for wide band scan
Add support for 40 MHz or wider channel bandwidth scan

Change-Id: I72f3cf42e6dc957ef56842d0c333c62169cb6d68
CRs-Fixed: 2139415
2017-11-10 17:41:00 -08:00
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
Venkata Sharath Chandra Manchala
c4a6b8480b qcacmn: Add Null checks in CDP Layer
Part-2: Add Null checks for all the API's in
CDP Layer.

Change-Id: I8a4628f79880aff1212dee132016e8e48fe721fc
CRs-Fixed: 2136173
2017-11-10 00:27:54 -08:00
Venkata Sharath Chandra Manchala
aa62ae7615 qcacmn: Add NULL checks within CDP Layer
Part-1: Add Null checks for all API's in the cdp
layer.

Change-Id: I283fa5e9ff7c5f2024ecbc91d7544469ab64fcaa
CRs-Fixed: 2136173
2017-11-10 00:27:52 -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
Anirban Sirkhell
428a19b594 qcacmn: Add pdev param to set firmware to use lower chains for tx
Add new pdev param with which firmware can be set to use
a lower number of chains without doing a reset. In response
to this firmware's ratecontrol will select only rates
which can be sent using a lower number of chains, and set
the h/w tx descpriptor's chain select to whatever value
has been configured using this command.

CRs-Fixed: 2123206
Change-Id: Ice713393958c2c2acedba0fe2e9354f3fe3bee75
2017-11-09 07:46:56 -08:00
chenguo
ab551a63c0 qcacmn: Remove duplicated API call
In the main data RX path, the API of geting MSDU description is
called duplciately repeatly. Because the input parameter is not
changed, unnecessary function calling is existed. Remove the
unnecessary API calling.

CRs-Fixed: 2137776
Change-Id: I11f3d83dd4045f6a353ca6b9b23c188e582672a6
2017-11-09 05:26:08 -08:00
Yun Park
4711ade7bb qcacmn: Fix memmory leak from dp_tx_ipa_uc_detach
IPA Tx buffers are allocated using qdf_mem_alloc_consistent,
so free using qdf_mem_free_consistent.

Change-Id: I0125189e1eec2a45f06bc7c2662d65c8745b3d3e
CRs-Fixed: 2135803
2017-11-08 11:41:00 -08:00
Karunakar Dasineni
a7ee2c65f7 qcacmn: WAR for wrong MSDU count in Rx descriptor
Due to a HW issue, msdu count received in REO entrance descriptor
could be wrong in case of some error packets received on RXDMA2SW
ring. Instead we should rely on Rx MSDU link descriptor entries
being non-null to pop MSDUs.

Change-Id: I1f4344752bdca13e9502aab79ee648b9b075d2e9
2017-11-08 07:41:28 -08:00
Karunakar Dasineni
87f0c5d850 qcacmn: Replenish Rx buffers on low threshold intr
Replenish buffers in RXDMA refill ring based on low threshold
interrupts in addition to regular Rx processing. Also increased
RXDMA refill ring size to 4096.

Change-Id: If1f4592c815fe2404c4952a96b721cb6d4fdfcd0
2017-11-08 07:41:26 -08:00
Pamidipati, Vijay
3379c74969 qcacmn: Fix descriptor leak issue in DP
In the DMA descriptor reap code, the check for NAPI quota is after
Tail pointer is updated. This is causing a descriptor leak in high load
conditions when loop is exited without processing the reaped descriptor.
This change moves the quota check to end of while loop.

Change-Id: I2f3432bf257947f85abc2216a0f2dfc44813c44c
CRs-Fixed: 2137017
2017-11-07 09:38:11 -08:00
Naveen Rawat
761329bbf2 qcacmn: Do not start unmap timer if send cmd to FW fails
Do not start unmap timer if peer delete couldn't be sent to
firmware.

Change-Id: Ie746bde046b76d8e136ebb4fd0b60088bf516d42
CRs-Fixed: 2116223
2017-11-06 21:52:16 -08:00
Basamma Yakkanahalli
51ddfbcbee qcacmn: iwpriv txrx_fw_stats support halphy stats
Added TXRX_FW_HALPHY_STATS to support txrx_fw_stats
for halphy stats.

Change-Id: I93a9c9e3199c7c163cd6e93d28acb4e757c1e3eb
CRs-Fixed: 2114152
2017-11-06 00:50:50 -08:00
Soumya Bhat
606fb3902c qcacmn: Parse received PPDU stats TLV appropriately
num_msdu, qos and ppdu_type were being parsed incorrectly.
Parse them appropriately.

Change-Id: I665285bc0b628fd1d9459473d18ef62577bbd54e
CRs-Fixed: 2133732
2017-11-04 06:09:11 -07:00
c_cgodav
bd9ecaee84 qcacmn: Add enum for ACS Ranking iwpriv
Added iwpriv ENUM for ACS Ranking feature enable/disable

Change-Id: I7a7289f458adacb7890bfbdbdaf5528c4016a7c0
2017-11-04 06:09:05 -07:00
Paul Zhang
66698093e1 qcacmn: fix spinlock paring issue
spin_lock/spin_unlock is not pairing.

Change-Id: Ib2cb73f542deee8bf4217daa731af49d07eaf7be
CRs-Fixed: 2105081
2017-11-01 13:17:26 -07:00
Edayilliam Jayadev
a9919d6e12 qcacmn: Changes to wext interface for external acs
Private ioctls for external acs operation like
set icm active, get channel load info, clear chan load info,
get nominal noise floor were transported and
handled by spectral module. We seperate this ioctls
from spectral by adding new IWPRIVs(get_icm_active,
set_icm_active, get_nominal_nf, clear_chan_info)and
moving their handlers out of spectral.

CRs-Fixed: 2126313
Change-Id: I8c6b56b85d566f5bc7f6217f6fbc99fa23171cdd
2017-10-30 01:39:07 -07: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
Sravan Kumar Kairam
786886b483 qcacmn: Management MGMT TXRX component over HTT
Currently there is no support for management MGMT TXRX
component over HTT endpoint and supports only over WMI.
As a result for platforms which does not support MGMT
over WMI will break other components which uses MGMT TXRX
component to send mgmt packets.

In this change implement changes to support MGMT TXRX
component over HTT.

Change-Id: I487aca3893aa21905a744e2e5dc7104e6c414fdc
CRs-Fixed: 2097694
2017-10-25 17:48:07 -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
Kai Chen
a0affa4174 qcacmn: Fix the packet capture issue on AMSDU/AMPDU
There is issue on receive RAW( Not Decap) long packet
that cross one skb in monitor mode. This issue is seen
to capture AMSDU/AMPDU packet that is use more than
on SKB.

Change-Id: Ic50b316818925b1d327634abc103430d8dde9f36
2017-10-24 23:50:25 -07:00
Yun Park
601d0d868a qcacmn: Fix IPA WDI3 Tx issues
Fix bug to enable IPA WDI3 Tx H/W path.

Change-Id: Ice691dccc649b38971985cd8da042719d943cec7
CRs-Fixed: 2085751
2017-10-23 22:08:28 -07:00
Kai Chen
1374d4b101 qcacmn: Remove buffer allocation for holding amsdu llc header
Remove buffer allocation for holding amsdu llc header. The
next amsdu llc header is copied to the end of previous msdu
skb buffer.

Check if monitor vdev pointer is NULL on packet delivery
on monitor mode to avoid crash.

Change-Id: I61dc53900c34f34d8dccb2e8b71cbdf5e005f61e
2017-10-23 22:08:27 -07:00
Venkata Sharath Chandra Manchala
3e8add86bb qcacmn: Propagate config parameters to datapath
Provide an API to accept the config parameters
from the upper layer and store them in wlan_cfg_ctx.
Enable/Disable the datapath features based on these
parameters.

Change-Id: Icbdc835a51a6fea87c06174e9fc63d5d007aec1d
CRs-Fixed: 2097229
2017-10-23 16:30:16 -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
Tallapragada Kalyan
0017291c13 qcacmn: return msdu link descriptors to wbm release ring
add support to return msdu link descriptors received on rxDMA error ring
to wbm release ring without freeing the nbufs (msdus).

Change-Id: Ic12c3f0531a639b61d3d77cee6266ce595e4d1c9
2017-10-23 10:05:40 -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
Pratik Gandhi
51b6b6d21b qcacmn: Control frame stats Rx BAR frames
Add Pdev level stats for Rx BAR frames.

Change-Id: I1cce56559fd1ffec11f873e35cb1c42b49c1c9ff
CRs-Fixed: 2110552
2017-10-23 01:55:58 -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
Aniruddha Paul
e3a0334ad0 qcacmn: Fix for interrput masking of NSS Tx/Rx rings
Added logic to reset the host interrupt mask bits for
NSS offloaded rings (WBM Tx completion ring and REO Destination ring)

Change-Id: I96ae29051b6294647cf0610d3cda6c2a995f77a8
CRs-fixed: 2121607
2017-10-17 06:44:19 -07:00
Tallapragada Kalyan
61cb97c58e qcacmn: choose proper REO destination ring for invalid hash
for cases where hash is invalid (non TCP/UDP) let us remap
the traffic to a configured REO DESTINATION ring instead of
using default ring 0.

Change-Id: I3d08f684f1914b60a2457bdcc5c184fc8a0068e7
2017-10-16 12:20:37 -07:00
Karunakar Dasineni
ead27fb613 qcacmn: Move packet log to HTT
Packet log messages be coming as HTT messages for Lithium. Temporary
change to bypass HTC connection for this new HIF pipe (CE 5), which
will be used for packet log and other high-priority HTT messsages.
Proper HTC connection to be added later once required FW changes
are available

Change-Id: I53361b4c28b838dacf62f435cc12051bb2eb65b6
2017-10-16 08:05:18 -07:00
Soumya Bhat
1c73aa673b qcacmn: Parse PPDU stats TLV
Parse PPDU TLVs provided by FW which are required to
capture TX data path stats

Change-Id: If91834aa94ff8893ba1f292d801f2c00ecdaea1f
CRs-Fixed: 2104488
2017-10-14 09:39:16 -07:00
Soumya Bhat
835033e388 qcacmn: Fix TX PPDU stats issues
1. Define bitmap array appropriately and expand ppdu per user
tx stats array to accomodate upto 8 users stats
2. Fix issue where even with 1 WLAN STA user_index was exceeding zero
3. Allocate 5 bits for ppdu_type variable

Change-Id: I969c929c3e16d4027a5e642a0a9195979c95e9cc
CRs-Fixed: 2121122
2017-10-12 14:22:42 -07:00
Karunakar Dasineni
ea027c5bf2 qcacmn: Adding back lost LMAC interrupt changes
Redo some of the LMAC interrupt mapping changes made in
Iec8e9f4a02cd618a3b244cfd6fc7ead1e7d993c3, which were lost
due to a recent change made to support MSI.

Change-Id: Ic566e7285feaeb9058defe01c5e704be3135ed2d
CRs-Fixed: 2113818
2017-10-12 14:22:27 -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
Dustin Brown
f653d16e6c qcacmn: Remove qdf_handle_t from unused qdf_defer APIs
There are many QDF APIs require a qdf_handle_t parameter. None of these
APIs actually use the qdf_handle_t parameter, meaning it can be
completely removed. As a step toward globally removing this unused
type, remove qdf_handle_t parameters from unsed qdf_defer APIs.

Change-Id: I0568aa7cbd430abc0d046143482a067d96bf6313
CRs-Fixed: 2112646
2017-10-12 14:22:02 -07:00
Venkata Sharath Chandra Manchala
5fd835b44b qcacmn: Cleanup unused typedef variables
Remove unused typedef rx_callback_fp in
datapath flow.

Change-Id: Ie40f8ab02a1437d2c86aadb2f35f5f548f00f1bc
CRs-Fixed: 2123478
2017-10-12 14:22:00 -07:00