Commit Graph

137 Commits

Author SHA1 Message Date
Yun Park
4afce84bee qcacld-3.0: Fix Datapath kernel checkpatch warnings in htt_internal.h
Fix Datapath kernel checkpatch warnings in htt_internal.h

Change-Id: Ided3e682646abd68909b9af7ba62e59f541fe892
CRs-Fixed: 2032874
2017-06-14 08:24:09 -07:00
Yun Park
56e32d9063 qcacld-3.0: Fix Datapath kernel checkpatch warnings in htt.c
Fix Datapath kernel checkpatch warnings in htt.c

Change-Id: I65db694e92a3194a15c6ce5c0e928b4957e6357a
CRs-Fixed: 2032874
2017-06-14 08:24:08 -07:00
Yun Park
39ea12aec5 qcacld-3.0: Fix Datapath kernel checkpatch warnings in htt_types.h
Fix Datapath kernel checkpatch warnings in htt_types.h

Change-Id: Id94b240612fcde52e6a4f3d5534b411e24fdc92d
CRs-Fixed: 2032874
2017-06-14 08:24:06 -07:00
Yun Park
a9319801ae qcacld-3.0: Fix Datapath kernel checkpatch warnings in htt_t2h.c
Fix Datapath kernel checkpatch warnings in htt_t2h.c

Change-Id: Ib8d870309ff534c2c658006df3598e559eb5fa41
CRs-Fixed: 2032874
2017-06-14 08:24:04 -07:00
Yun Park
f387e617ca qcacld-3.0: Fix Datapath kernel checkpatch warnings in htt_fw_stats.c
Fix Datapath kernel checkpatch warnings in htt_fw_stats.c

Change-Id: Ia6b62719abe9186af2e0a581d7d9a26552b7bba1
CRs-Fixed: 2032874
2017-06-14 08:24:03 -07:00
Yun Park
a63df43b92 qcacld-3.0: Fix Datapath kernel checkpatch warnings in htt_h2t.c
Fix Datapath kernel checkpatch warnings in htt_h2t.c

Change-Id: If590589ca3fdd0dde238ee540dc3435042665fce
CRs-Fixed: 2032874
2017-06-14 08:24:01 -07:00
Yun Park
bd259aec9c qcacld-3.0: Fix Datapath kernel checkpatch warnings in htt_tx.c
Fix Datapath kernel checkpatch warnings in htt_tx.c

Change-Id: I8c1b967feb742ce3a1acec437822720421e1b333
CRs-Fixed: 2032874
2017-06-14 08:24:00 -07:00
Yun Park
16cf32a688 qcacld-3.0: Fix Datapath kernel checkpatch warnings in htt_rx.c
Fix Datapath kernel checkpatch warnings in htt_rx.c

Change-Id: I922f58728c5b28afa147d6f6781356f4f5f37dc4
CRs-Fixed: 2032874
2017-06-14 08:23:58 -07:00
Nachiket Kukade
8003d257b9 qcacld-3.0: Add and use API to check FW Down indication bit during probe
When commands to Firmware fail during probe due to Firmware being down, in
most cases QDF_BUGs are hit, not allowing re-probing to take place. A new
API is defined to check if the failure is due to Firmware being down or not.
If so, return error gracefully allowing re-probing to take place

Change-Id: Ib2f21a6f1ced1c16e9d2bdbda810b160ff63e2c6
CRs-fixed: 2027444
2017-06-12 17:19:28 -07:00
Himanshu Agarwal
5f5e16692d qcacld-3.0: Fix buf replenish logic and handle error pkts
Fix replenishing logic by taking care of fragments as well
in monitor mode. Also drop the packets with mpdu_length_err
bit set in rx attention desc and don't send those packets to
upper layers.

Change-Id: Iaeeb0e40e4988ca5a2d4c5e7c98ed3f82dfca533
CRs-Fixed: 2037633
2017-06-10 23:30:56 -07:00
Venkata Sharath Chandra Manchala
1676defe7e qcacld-3.0: Enable TSO
Add FEATURE_TSO flag in Kbuild to enable the
TSO feature for Lithium based chipsets

Change-Id: Ie26b2b9a191828b3ce833000a7abbb09dd492713
CRs-Fixed: 2042950
2017-06-07 12:14:46 -07:00
Venkata Sharath Chandra Manchala
0b9fc63dd1 qcacld-3.0: Support for DPTRACE
1. Add an extra parameter pdev id to
   qdf_trace signatures to avoid compilation break.
2. This variable allows to collect records per pdev
   for Lithium based chipsets.
3. Set this variable to a default value QDF_TRACE_DEFAULT_PDEV_ID
   for older chipsets.

Change-Id: I2f4c2e3525ac0d1d53f1af3db7e43acadf6ab835
CRs-Fixed: 2049412
2017-06-05 22:52:39 -07:00
Govind Singh
9785416998 qcacld-3.0: Handle HTT DATA2/DATA3 connect service failure
Handle error case if DATA2/DATA3 htt service connection
with fw fails.
DATA2/DATA3 connect service is done after FW ready indication.
Hence it's safe to handle the error scenarios.

Change-Id: If6f07f3c29cbc5f1486231a7897d1223ad1c24bb
CRs-Fixed: 2034843
2017-05-31 23:38:13 -07:00
Dhanashri Atre
1a6a4ce139 qcacld-3.0: Modify legacy LRO implementation to use QDF
Modify the legacy LRO implementation which is in HDD to
use the implementation in QDF instead. This is to avoid
code duplication and to unify the LRO implementations for
Napier and Helium.

Change-Id: Ie9d3bb6d3dcda5a7d1d5fda6e7cbdef92be30461
CRs-Fixed: 2042812
2017-05-26 16:11:27 -07:00
Dhanashri Atre
e08ba71363 qcacld-3.0: Do not typecast physical address to 32 bits
Do not typecast the physical address passed to hash list to
32 bits. The physical address maybe greater than 32 bits which
will lead to a mismatch during look-up.

Change-Id: I095e1e63c59da74bc8a2507273e7c6487d0b19e7
CRs-Fixed: 2044161
2017-05-08 15:41:34 -07:00
Manikandan Mohan
83c939c474 qcacld-3.0: Update for check patch refactoring
Host Target Communication module files are updated for check
patch warnings. Thus update dependent files.

Change-Id: Id37009ca13704beb0d8c4c28cc3eaff9cf930a0f
CRs-fixed: 2030824
2017-05-02 13:29:38 -07:00
Poddar, Siddarth
d63954e481 qcacld-3.0: Enable debug address marking only for 64 bit DMA address system
Limit the detection of non posted rx buffers from FW only to
64 bit DMA address system. For systems, where IPA has 32 bit
DMA address limitation, this debug feature should be disabled.

CRs-Fixed: 2010583
Change-Id: I9a26d0a423acedb068d99f39929029182f7c6fa1
2017-04-28 05:22:24 -07:00
Poddar, Siddarth
33faae85d7 qcacld-3.0: Fix memory leak in htt_tx_ipa_uc_attach
TX BUF POOL vaddr storage alloc is not freed in
htt_tx_ipa_uc_attach when paddr storage allocation fails.
Fix is to free memory in failure case.

CRs-Fixed: 2034943
Change-Id: Ifb26dfdcff19b3ab66f11a89b9c185777eeec535
2017-04-28 02:54:34 -07:00
Himanshu Agarwal
7c8ab88620 qcacld-3.0: Fill rate and bw info for HT/VHT frames in monitor mode
In monitor mode, while filling the radiotap header, rate and bw
info for HT and VHT frames was not filled correctly due to which
packets in tcpdump are showing incorrect rates and bw for HT/VHT
frames.

Fill rate and bw info for HT/VHT frames correctly in monitor mode.

Change-Id: If15708101ac123fbdba141b04aad881d988e6b43
CRs-Fixed: 2034455
2017-04-26 23:53:54 -07:00
Orhan K AKYILDIZ
4c878ed845 qcacld-3.0: Support > 32 bit paddrs in rx_hash
Currently, rx-hash calculation and hash look-up is performed only on
lower 32 bits. On some systems with a particular memory map, we have
observed that one could have buffers coming from memory map regions
that only differ at the higher (>32) bits.
For such systems, make sure that the hash entry storage and comparison
operations are done on the whole paddr range.

Change-Id: I279f673ee465a811d20606b260be084f984135d5
CRs-Fixed: 2024095
2017-04-21 18:48:39 -07:00
Orhan K AKYILDIZ
a652a60b37 qcacld-3.0: Add paddr support for 32-bit host arch
Add support for 32-bit host architecture where dma_addr_t
is 32 bits and  bus addresses are of 64 bits on MAC and IPA.

Change-Id: Id4a4763ed388973297c63df290b578effdc5b284
CRs-Fixed: 2006548
2017-04-21 18:48:37 -07:00
Orhan K AKYILDIZ
3d926d8698 qcacld-3.0: Allocate rx_buf_debug from BSS
As kernel was complaining an order-5 (2^5 * page-size(=8K)) allocation,
change the allocation of rx_buf_debug memory debug structure to be done
from BSS instead.

Change-Id: I78658f2f723d230cc6443c0897a6a4b31c753849
CRs-Fixed: 2011052
2017-04-21 18:48:35 -07:00
Mohit Khanna
c68622e61b qcacld-3.0: Enhance htt_rx_ring_fill_n processing
Enhance htt_rx_ring_fill_n by:
- Start timer in case the function is not able to find memory to fill rx
  buffers.
- Handle case where one stream can starve the other stream by constantly
  adding to the debt.

CRs-Fixed: 2001325
Change-Id: Idff33d9c28daaf7a00334134459a3633f5ccde7c
2017-04-21 18:48:33 -07:00
Orhan K AKYILDIZ
4900e1d357 qcacld-3.0: Fix 32-bit crash on markings
The offending code did not get the order of operations right.
It was: shift 16, cast 64,shift 16 and should have been:
cast, shift 16, shift 16.

CRs-Fixed: 2000844
Change-Id: I65cf4aaf0c20535070eb63b15d77b8c3c7dcb4e4
2017-04-21 18:48:30 -07:00
Orhan K AKYILDIZ
c8c27be649 qcacld-3.0: Add detection of non-posted rx buffers
Add detection of non posted RX buffers from FW (rx_in_order_ind msgs)
by marking the higher(16) unused bits of the 64-bit physical addresses.
On reception, if the paddr received does not have the markings, assert,
otherwise clean the markings and proceed.

Duplicate rx-buffers will be detected in the FW.

CRs-Fixed: 2000844
Change-Id: I9c50cce182a12f3edd3c5b2606836d62f684f816
2017-04-21 18:48:28 -07:00
Orhan K AKYILDIZ
fdd74de850 qcacld-3.0: Debug enhancements for rx_buffer history
Add the following:
- Global cumulative counters for posted and received.
- CPU for each individual records
- Counters for refill timer starts
- iwpriv support (dumpStats 10) to dump the counters

CRs-Fixed: 2001331
Change-Id: I66a8a818ffa0b2522358bab404c92a3cdaa603f7
2017-04-21 18:48:26 -07:00
Orhan K AKYILDIZ
adf0610a93 qcacld-3.0: Fix rx_starvation on multiple-rx case
In case of parallel rx execution, fill_count was being updated
by multiple threads and this was causing fill_count to be incorrect
in parallel rx execution cases. This was causing rx ring to be under
filled and in time was causing rx starvation (data stall).

Fix this by:
- making sure that we always fill the right number of buffers based
  on the msdu_count in the in_order_indication message.
- making sure that only one execution thread fills the ring
- making sure that the lock holder (filling the ring) does not
  run too long by introducing a max fill limit, in which case the
  filler will give up and the contender (the other rx execution
  thread) takes the lock and fills the ring itself.

CRs-Fixed: 1103851

Change-Id: I59ee2903d51877afc112a1a76b7a5529f1c6a5c0
2017-04-21 18:48:24 -07:00
Orhan K AKYILDIZ
ba81c51032 qcacld-3.0: Fix USR variant build error
There was a typo in USR variant of the DEBUG_RX_RING_BUFFER
featured code, which caused a symbol not defined in the header
file, triggering an implicit function definition warning/error.

Fixed typo.

CRs-Fixed: 1104718
Change-Id: I6573904add1453d8c3765f030349a214b058e2c0
2017-04-21 18:48:22 -07:00
Orhan K AKYILDIZ
0c1b6bfae8 qcacld-3.0: Enhance rx_ring buffer history
Enhance rx ring buffer history to include both post and recv
time-stamps. Add a new event for alloc-index updates.

Change-Id: I061afdcda5d2d41c016be9d3b12e5c4a1cda0c65
CRs-Fixed: 1098656
2017-04-21 18:48:18 -07:00
Dhanashri Atre
170855e137 qcacld-3.0: Lithium LRO Support
Add changes needed to support Receive Offload (LRO) on Lithium.

CRs-Fixed: 1107169
Change-Id: I2fb00fa83a52b039e6ad9aea9a98576f2c36d6fa
2017-04-17 14:52:24 -07:00
Yun Park
637d6486f2 qcacld-3.0: Add interface to WDI-stats and quota limit
Add structure changes for querying WDI-stats, register the callback
functions for IPA to query WDI stats and sets the quota limit

Change-Id: I05d9d50fad735fa0a57c4de23c81461f6e12b648
CRs-Fixed: 1095710
2017-04-12 19:02:07 -07:00
Poddar, Siddarth
1452179368 qcacld-3.0: TXRX: Reduce the log spam in Kmsg
Introduce different ol_trxrx print apis based on log levels.
Move the logs to appropriate log levels to reduce
the log spam in kmsg.

CRs-Fixed: 2019261
Change-Id: I14dfedb1a71b10043571112f05965935dd91a90e
2017-04-10 02:11:57 -07:00
Houston Hoffman
13f4be5fb8 qcacld-3.0: increase htt_htc_misc_pkt_list_trim trim level
2048 packets could be pending in the ce and the tx_queue
depth could be pending in the htc queue.

Change-Id: I2eedd9dd7300058a4b3024dd97c826c08f8c44bd
CRs-Fixed: 2019589
2017-04-09 13:08:50 -07:00
Poddar, Siddarth
16264472d9 qcacld-3.0: HTT: Reduce the log spam in Kmsg
Move the logs to appropriate log levels to reduce
the log spam in kmsg.

CRs-Fixed: 2019261
Change-Id: I7e7d8c6f90f8f9feefbfb72217886fcd812cf39c
2017-04-07 07:12:18 -07:00
Srinivas Girigowda
35e65f8322 qcacld-3.0: HTT: Reduce the log spam in kmsg
Move the logs to appropriate log levels to reduce
the log spam in kmsg.

Change-Id: I6572cb109ff752eba764f671770d9754024a4b31
CRs-Fixed: 2014745
2017-04-07 06:02:08 -07:00
Himanshu Agarwal
69d8466003 qcacld-3.0: Handle failure scenario for qdf_nbuf_map()
Handle failure scenario for qdf_nbuf_map() by freeing
allocated memory, returning failure/error etc.

Change-Id: I94b2ebbffc230f87804ad37a1f0a16c5ffeadbea
CRs-Fixed: 2028534
2017-04-05 05:21:52 -07:00
Poddar, Siddarth
76ac7280c3 qcacld-3.0: Fix memory leak in htt_rx_attach
Rx buffer hash table memory is not freed in htt_rx_attach
when target index allocation fails.
Fix is to free memory in failure case.

CRs-Fixed: 2025050
Change-Id: Ibbe238dc7d2f6dc2c31fe94569c9aa744714e930
2017-04-05 04:42:19 -07:00
Tushnim Bhattacharyya
12b4874f33 qcacld-3.0: Replace policy manager header file included in data path
Replace policy manager header file include as part of policy manager
moving to host common.

Change-Id: Ie1f9d6675cc373c3325c9e76514f48299932cdda
CRs-Fixed: 2009818
2017-03-30 16:26:36 -07:00
Yun Park
eea1c9ca84 qcacld-3.0: Fix an htt memory leak
qcacld-2.0 to qcacld-3.0 propagation

With ATH_11AC_TXCOMPACT defined, host to target message send-completion
won't be called and messages are stored in htt_htc_pkt_misclist after
sending to HTC layer which will be freed upon htt_detach. This list
doesn't have a size limit and outgrow with more messages.
Add a fix to limit the size of this list which gives enough time for
firmware to process these messages before releasing it.

Change-Id: I6feb2d5700abe81a21dd93303163202616c739f5
CRs-Fixed: 902909
2017-03-24 03:39:08 -07:00
Himanshu Agarwal
289e40b30f qcacld-3.0: Use magic pattern to avoid double free of packets
Some of the packets like configuration messages and ipa stat
messages to fw are added in htt misc list. If these packets
fail to be transmitted, they are added in endpoint tx queue as well.
When driver is unloaded, as these packets are present in misc list
as well as in endpoint tx queue, double free will happen and crash
will be observed.

Use magic pattern to distinguish the packets that are stored in
endpoint tx queue as well.

Change-Id: I5d327049d0a2a1598f55ef3ec8a5628f9a01ccee
CRs-Fixed: 2016412
2017-03-24 02:19:07 -07:00
Poddar, Siddarth
28014e9769 qcacld-3.0: Handle error condition when dma map fail
Change the return type to QDF_STATUS of htt_tx_desc_init function
to handle dma map and other error condition.
Free the tx descriptor if this function returns error.

CRs-Fixed: 2021634
Change-Id: Ib9154de308154c43c202ad8a88ecdfff04be47a2
2017-03-20 07:47:44 -07:00
Himanshu Agarwal
18d6b8c19b qcacld-3.0: Replace HELIUMPLUS_PADDR64 with HELIUMPLUS
Replace HELIUMPLUS_PADDR64 preprocessor macro with already
existing preprocessor macro HELIUMPLUS.

Change-Id: I4f109fc939e12323565bc05c89cc51dff3f3a7f3
CRs-Fixed: 2006551
2017-03-05 21:26:23 -08:00
Himanshu Agarwal
d4fe5f748f qcacld-3.0: Avoid NULL pointer dereferencing of mpdu_buf
Avoid NULL pointer dereferencing of mpdu_buf by putting NULL
check before using it in htt_rx_restitch_mpdu_from_msdus func.

Change-Id: I726891d4fc1f6928cbda911932dbbcd2ec681b63
CRs-Fixed: 2008901
2017-03-01 23:58:04 -08:00
Venkata Sharath Chandra Manchala
0d44d455fa qcacld-3.0: Handle void pointer declarations for pdev and vdev
Replace void pointer handles for pdev and vdev
with abstract structure handles

Change-Id: Idd9a2521249e30faf1143f671c4d2d924fe231e8
CRs-Fixed: 1109835
2017-02-15 12:26:46 -08:00
Yu Wang
053d3e7009 qcacld-3.0: fix compilation errors for HL target
For HL target, CONFIG_HL_SUPPORT is enabled, which
cause sevaral compilation errors.
1. Couldn't find the definition of adf_xxx APIs.
   Replace adf_xxx APIs with qdf_xxx APIs.

2. ol_tx_msdu_id_storage() return a wrong value,
   implementation and definition mismatch.
   Correct the return value to: pointer to tx desc_id.

3. Some of CONFIG_HL_SUPPORT/FEATURE_WLAN_TDLS feature
   related code are not embraced by the macro properly.
   Embrace the code with right macro for each feature.

Change-Id: Ibf09fd78f85327200dede8c32bc215208e54b798
CRs-Fixed: 2004340
2017-02-14 16:28:14 -08:00
Himanshu Agarwal
cf9ecfafab qcacld-3.0: Use functions directly for cloning instead of a func. pointer
Use functions directly for cloning instead of a func. pointer as
qdf_nbuf_clone API has different signature when MEMORY_DEBUG is
enabled and when it is not.

Change-Id: I95fa6e7b2789dd97c0c500d0854210240feaac17
CRs-Fixed: 1114632
2017-02-09 13:46:46 -08:00
Houston Hoffman
54f465a80b qcacld-3.0: reduce spinlock time in htt_rx_hash_deinit
12ms is too long to hold a spinlock bh.

Change-Id: Ie57c94c20f81dd060185728901b1d14119609825
CRs-Fixed: 1100552
2017-01-31 18:53:22 -08:00
Houston Hoffman
eb2f80b685 qcacld-3.0: reduce spinlock time in htt_rx_hash_init
12ms is too long to hold a spinlock bh.

Change-Id: I498fc89c6bbaffeda988db9a37f0099767016c7e
CRs-Fixed: 1100552
2017-01-31 18:53:21 -08:00
Houston Hoffman
2eac7c4033 qcacld-3.0: Add lock destruction for several locks
rx_buff_list_lock, hdd_roc_req_q_lock, lim_frame_register_lock.
Adding lock stats print upon spinlock & mutex destroy.  Without
the destroy api invoked the lock stats are not printed.

Change-Id: I26cad72e3f55b9ff5f1383d617859ff2b30d74f7
CRs-Fixed: 1100552
2017-01-31 18:53:19 -08:00
Dhanashri Atre
06c7e365f0 qcacld-3.0: Change due to R102 hardware headers for QCA6290
Changes needed for compiling Napier with the new header files.

Change-Id: I8089c66a3485de04ac4134c10bd5874f2491cc44
CRs-Fixed: 1105853
2017-01-18 20:05:43 -08:00