Grafik Komit

3896 Melakukan

Penulis SHA1 Pesan Tanggal
nobelj
d124b749b7 qcacmn: Add support to set monitor filter dynamically
htt_h2t_rx_ring_cfg is invoked with suitable configuration based on
filter passed by wlan_set_monitor_filter.

Change-Id: I2fbb81e95903ae1bead92892fdb3165c8a515f14
2017-12-13 20:08:29 -08:00
Sathish Kumar
03d77e6590 qcacmn: Add source ring for direct buffer rx module
Direct Buffer Receive provides the driver with a mechanism by which target
can transfer information directly into host memory via DMA.

DMA rings must be initialized and configured before they can be shared
to the target for transfer ot data. Host driver will use the HAL SRNG
APIs to create, initialize and configure the DMA rings.

Change-Id: I43cd39ccbb5f5069c9a14092459d5c88ea514dca
CRs-Fixed: 2157986
2017-12-13 19:18:09 -08:00
Tallapragada Kalyan
2a5fc625d2 qcacmn: Add WDS Vendor Extension ECM Framework
Add WDS tx/rx policy checks in Tx and Rx datapaths.
In Rx path, check packets against rx policy configured
In Tx Reinject path, checks are to process or drop 4-addr/3-addr packets
to peers decisively

Change-Id: I0a6c01b7555fa5d369ab2c9baf454d49808857fc
2017-12-13 12:15:54 -08:00
jiad
9dee72a40c qcacmn: fix invalid vdev for group tkip mic error
In tkip mic error handler, addr1 (RA) is used to find vdev.
This is fine for unicast tkip mic error. But for group tkip
mic error, addr1 will be group address thus vdev will not
be correctly returned.

Fix is to use sw_peer_id in rx_mpdu_start tlv to find peer.
And use peer to find corresponding vdev and pdev.

Change-Id: I1e9e461318e25184ef7113132adaa7fe7853924d
CRs-Fixed: 2157532
2017-12-13 05:40:24 -08:00
Abhishek Singh
3f11bd6b0a qcacmn: Add logic to logically delete the scan cache node
When a beacon/probe resp is received the scan cache delete the
old node (N1) and adds a new node(N2) at the end of the list, If any
other process is using old node (N1), for some amount of time driver
will have 2 entry for the same AP. Now if driver again receive a
beacon/probe resp during this time, it end up deleting the older node
(N1) Again and thus making its ref count 0 and freeing it, even when
the process using old node (N1) hasnt freed it.

To fix this add a active state to the scan node, and mark it inactive
or logically delete the node as soon its deleted from ageout, entry update
or flush logic. Also do not use the inactive or logically deleted node
for any new operation. For this add a logic to return only active nodes in
scm_get_next_node.

CRs-Fixed: 2155538
Change-Id: I186d3a0b0540f0b572735e1d95239ddcd8c9bdc9
2017-12-13 05:40:22 -08:00
Soumya Bhat
5c60deba48 qcacmn: Send RX DESC WDI event with AM Copy mode
Add support to send RX PPDU metadata, when AM copy mode is
enabled.

Change-Id: I1971dcb7653421d25bd40c52e257d9b06ffaaf38
CRs-Fixed: 2157345
2017-12-12 21:27:35 -08:00
Soumya Bhat
f451d046d1 qcacmn: Fix bug in handling hal rx status tlv
Add missing break identifier in switch case of
hal_rx_status_get_tlv_info() used to parse hal rx status
TLV.

Change-Id: Ie913b6795d0a73fe8d28fefedd7ab799edda2619
2017-12-12 18:36:21 -08:00
Mohit Khanna
adfe908a35 qcacmn: Add peer APIs to get and release peer ref
The existing peer API cdp_peer_find_by_add does not maintain any peer
references. So a peer which is returned by the API may get deleted in a
different context. This may lead to access to a already deleted memory.

Fix the issue by introducing new APIs "peer_get_ref" and
"peer_release_ref" which make sure the peer is valid until it is
"released" (peer_release_ref is called).

Change-Id: Id04d13bc6a1b8a55c1ae9246077f64ffb86de3d8
CRs-Fixed: 2146742
2017-12-12 17:57:32 -08:00
Dustin Brown
f7fb76bd5e qcacmn: Add qdf_mc_timer_check_for_leaks API
Add a new  QDF MC Timer API for asserting that there are no active MC
Timers allocated. This is useful for detecting MC Timer leaks at
runtime.

Change-Id: I272ce806111b01b5c7f6b0dfef2e992c27b83529
CRs-Fixed: 2125800
2017-12-12 15:56:48 -08:00
Tallapragada Kalyan
c5ac638d51 qcacmn: Save first msdu and last msdu flags in NULL queue handler
We need to save the first msdu and last msdu flags in nbuf cb
so we can do WDS source port learning only for the first msdu
even in the null_q_handler. Without this fix we observed traffic
stops when WMM is disabled.

Change-Id: Ic7870354519ebebb8a5025b3e6c9741064686199
2017-12-12 03:24:38 -08:00
Dustin Brown
f4c76f9329 qcacmn: Refactor Scheduler init/deinit paths
There are many minor discrepancies in the scheduler module's init and
deinit paths. Refactor the scheduler init/deinit code paths to address
any discrepancies between the two. Also ensure error path cleanup cleans
up all the resources that were previously created.

Change-Id: Ib392f41a887031cd710aebaca32eb653952550a4
CRs-Fixed: 2153210
2017-12-11 22:08:32 -08:00
Dustin Brown
91abaccb45 qcacmn: Use sched logging helpers in scheduler_api.c
A set of logging helpers for the scheduler component were previously
added to reduce boilerplate logging code. Update scheduler_api.c to use
the new logging helpers.

Change-Id: I45715e40dbdd5a94d064ca4c64290a443cacea34
CRs-Fixed: 2152575
2017-12-11 22:08:30 -08:00
Paul Zhang
d6d1635ec8 qcacmn: Implement interface to set WLM level
WLAN Latency module (WLM) is added by fw to gain latency
because of schedule out of service like power saving,
scanning, roaming etc. per the level set by framework.

Change-Id: I6b8775e5f492b6f287d60d39610a544114185a23
CRs-Fixed: 2152290
2017-12-11 22:08:28 -08:00
Alok Kumar
ebdb2daf68 qcacmn: Replace instances of unadorned %p
Replace instances of unadorned %p which violates security guidelines.

Change-Id: I0b00fb9f997d3ed6a2824c2bb133c343fc92caef
CRs-Fixed: 2133330
2017-12-11 11:25:12 -08:00
Kiran Venkatappa
ca1b9f8769 qcacmn: Increase WMI event ring size for HK
WMI event pipe is shared between multiple pdev and it needs be big
enough to support events from 16+16 vaps. Increase it to 256 considering
128 used in older chipsets to support 16 VAPs for single pdev.

Change-Id: I7a1d8915c7c9a1916fb10408678f49e42147b189
CRs-Fixed: 2153720
2017-12-11 11:25:08 -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
Venkata Sharath Chandra Manchala
09adf5336c qcacmn: Enable Packetlog
Enable Packetlog for Lithium Based chipsets by:
Replacing ol_txrx calls with equivalent cdp calls

Change-Id: Ibf4431daca23c23c9e1c1a5e1ebb2579079e4969
CRs-Fixed: 2117063
2017-12-09 23:27:27 -08:00
Venkata Sharath Chandra Manchala
5a6f4296cd qcacmn: Add timer to reap monitor rings
Add polling timer to reap monitor status rings
until PPDU end interrupts are enabled.

Change-Id: I742b0df6fd5a369d9664b5c2e09a70916585174b
CRs-Fixed: 2117063
2017-12-09 23:27:22 -08:00
Poddar, Siddarth
7055c33bdb qcacmn: Fix potential buffer overflow in process_tx_info
Check for buffer overflow for pktlog messages in process_tx_info
function before doing mem copy.

Change-Id: I5d34bfdecb4fd9dad1741da2256873ef3e9e708c
CRs-Fixed: 2154974
2017-12-09 15:44:41 -08:00
Karunakar Dasineni
ce24321384 qcacmn: Fix bug in recent NAPI scaling change
Fix issue in reverse mapping of scaled NAPI budget.

Change-Id: I61e54122b406eed2189c9c857ca8423a61d38090
CRs-Fixed: 2156349
2017-12-09 15:08:29 -08:00
Linux Build Service Account
42f0350da1 Merge "qcacmn: Fix ext Tx descriptor pool lock issue" 2017-12-09 03:33:26 -08:00
Manjunathappa Prakash
ddf07405c5 qcacmn: Fix ext Tx descriptor pool lock issue
Replace internal spin_lock macros with qdf_spin_lock APIs for lock
operating on TSO/EXT descriptor pools.
TX_DESC_LOCK_* APIs are used only by the flow_control V2 support
to by pass them.

Change-Id: I926c279de3878b6f48efd798194fa896072c1f6d
CRs-Fixed: 2142815
2017-12-08 06:22:32 -08:00
Chaithanya Garrepalli
30927c532c qcacmn: changes for httstats application
Added a cdp call back to indicates HTT stats response
to ol layer

Change-Id: I90024469a7877419508c230358fdebe4c1525ee7
CRs-Fixed: 2133000
2017-12-08 00:21:23 -08:00
Varun Reddy Yeturu
e0883edf1d qcacmn: Define BAND_UNKNOWN in enum band_info
Define BAND_UNKNOWN in enum band_info

Change-Id: Icae4576b5c511fb8d74fd2bcef95642b416a56e4
CRs-Fixed: 2154595
2017-12-07 23:19:04 -08:00
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
Ashish Kumar Dhanotiya
33608d1e94 qcacmn: Add a wakelock reason for monitor mode
Add a wakelock reason for device entering monitor
mode.

Change-Id: I27ba2d43fd7b84bc1ae7e6046ab635065872b2d2
CRs-Fixed: 2150162
2017-12-07 22:34:07 -08:00
Kris Muthusamy
f1db3f4b21 qcacmn: WMI changes for target scheduler policy
WMI changes for target scheduler policy

Change-Id: I80407695af4bd8c9c57ae0bf33d0f03bac879c84
CRs-fixed: 2152448
2017-12-07 17:25:30 -08:00
Dustin Brown
53acad9180 qcacmn: Add dispatcher enable/disable stubs
In preparation for splitting dispatcher init/deinit into init, enable,
disable, and deinit, add stubs for the new enable/disable dispatcher
calls. This will ease the transition for code that will leverage the new
APIs.

Change-Id: Ideee2db05f87978d5ad0796fba5e46042d5b4d41
CRs-Fixed: 2153871
2017-12-07 15:39:14 -08:00
Alok Kumar
967af27196 qcacmn: Add a delay before sending WMI message
Add a delay of 20ms before sending WMI message.

A delay of 20msec was added to slow down sending of WMI message
to give time for processing WMI in Napier FPGA platform.

Change-Id: Ib64972a92e638f2fe92f669657a5ab9eb326e744
CRs-Fixed: 2087330
2017-12-07 15:39:12 -08:00
Jeff Johnson
f23c714cf3 qcacmn: Rename enum tQDF_GLOBAL_CON_MODE
The name tQDF_GLOBAL_CON_MODE is a poor name on many levels:
-  The "t" prefix implies it is a typedef when it isn't.
-  The "t" prefix makes this a mixed-case identifier which is "frowned
   upon" in the Linux coding style guide.
-  The term "CON_MODE" is MCL-specific and is not suitable for
   converged code.

Therefore rename enum tQDF_GLOBAL_CON_MODE to enum QDF_GLOBAL_MODE to
better align with with the Linix coding style and the converged
nomenclature.

Change-Id: I57933a62f6ce02b6594d97198be8132e61e8d1f6
CRs-Fixed: 2152503
2017-12-07 14:06:17 -08:00
psimha
6d62ef4e59 qcacmn: Change HAL APIs for the new 11AX header
Change some HAL API to correspond to the header changes that got
modified for the Napier 11AX HW.

Change-Id: I514b18bc2a92ad11d95c1079ba8ef4b96b7bc6eb
CRs-Fixed: 2124274
2017-12-07 13:27:19 -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
Dustin Brown
74587948ff qcacmn: Use try_get_ref API in wlan_util_get_vdev_by_ifname
wlan_util_get_vdev_by_ifname currently uses the unconditional vdev ref
grabbing API, wlan_objmgr_vdev_get_ref. Using this API outside of objmgr
core is very dangerous, as a reference to a destroyed vdev can be
obtained, leading to double-free and use-after-free scenarios. Use the
conditional wlan_objmgr_vdev_try_get_ref API instead, and return a NULL
vdev if a reference cannot be obtained.

Change-Id: I44484b664577e6d9a79057ee35150abfb60ca0b3
CRs-Fixed: 2150257
2017-12-07 03:38:36 -08:00
Srinivas Girigowda
0a297e1b14 qcacmn: clang: Remove unnecessary NULL check for address of array
Clang generated the following warning in various places:

warning: address of array 'weight->pcl_list' will always evaluate
to 'true' [-Wpointer-bool-conversion]
        if (weight->pcl_list) {
              ~~ ~~~^~~

Remove the unnecessary NULL check for address of array.

Change-Id: Ibc82b4d7135a0425748c0fb7f065435ccd28ad6f
CRs-Fixed: 2150493
2017-12-07 01:25:25 -08:00
Abhishek Singh
bcec8a775d qcacmn: Split the filter and bss score logics in different files
Split the filter and bss score logics in different files

Change-Id: Ic346ac7758ec6bbc1b62cda067f9e0bd4d0fcadc
CRs-Fixed: 2148889
2017-12-06 21:27:14 -08:00
Linux Build Service Account
7a44531ee3 Merge "qcacmn: Add HE beamforming capabilty mask" 2017-12-06 19:06:39 -08:00
Gyanranjan Hazarika
ca79a651c8 qcacmn: Add HE beamforming capabilty mask
To be able update the target with user preferred HE beamforming
capablities we need corresponding commands exposed to the user
space. Add HE beamforming capabilty mask in order to set or get
these capabitlites in the destination variable to enable these
commands.

Change-Id: I0f7f86fa53a3f6629299808042d05e78ecc489bd
CRs-fixed: 2126717
2017-12-06 17:25:18 -08:00
Linux Build Service Account
cd23a3eaf6 Merge "qcacmn: Add validity check in tdls deinit path" 2017-12-06 16:34:42 -08:00
Kabilan Kannan
7efa6e4ab7 qcacmn: Add validity check in tdls deinit path
Add validity check in TDLS deinit path to avoid the
crash.

Change-Id: Id1b782c22346182e182e55557aa41dda99aa4c43
CRs-Fixed: 2151078
2017-12-06 15:25:38 -08:00
Linux Build Service Account
c5f3c2415b Merge "qcacmn: Add support for vdev delete response handler" 2017-12-06 13:51:22 -08:00
Om Prakash Tripathi
a917863e62 qcacmn: Add support for vdev delete response handler
Add support for vdev delete response handler

Change-Id: I7944064857ee2a1c8c8c1dcb739d692a7f463a13
CRs-Fixed: 2149401
2017-12-06 13:27:31 -08:00
Linux Build Service Account
51ddee343e Merge "qcacmn: Add QDF timer multiplier in qdf_wait_for_event_completion APIs" 2017-12-06 10:33:38 -08:00
Rajeev Kumar
9368d4e645 qcacmn: Add QDF timer multiplier in qdf_wait_for_event_completion APIs
Add QDF timer multiplier in qdf_wait_for_event_completion APIs such that
for emualtion setups timeout values are adjusted accordingly.

Change-Id: I661cf63a963938b2d61377980335b2f209656b4e
CRs-Fixed: 2151194
2017-12-06 10:06:12 -08:00
Ruchi, Agrawal
d1e8e496eb qcacmn: Add CCE disable param in WMI resource cfg
CCE param disable is required for RAW Mode AMSDU cases,
RAW AMSDU frames causes CCE to crash, to avoid crash
disable cce component using CCE param.

Change-Id: I1b221e12ac69a873e995485c56a6ea5b310e727c
CRs-Fixed: 2132295
2017-12-06 06:57:04 -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
Kiran Venkatappa
75ba86ec7c qcacmn: Add status and num_extra_peers in wmi ready extract API
Add status recieved as part if WMI ready event into wmi_ready host param
structure to enable the removal of seperate API to extract status. Add
new param introduced by FW to indicate number of extra peers FW is
allocated for its internal use.

Change-Id: I7a9ed64d4a9d1f38397197c4c4a4114d8365eef7
CRs-Fixed: 2149878
2017-12-06 06:57:00 -08:00
Linux Build Service Account
4f14fc8f4e Merge "qcacmn: Handle late tx ack in P2P component" 2017-12-05 18:29:29 -08:00
Wu Gao
002e799c94 qcacmn: Handle late tx ack in P2P component
In some special case, ota tx ack of P2P action frame comes more than
2 second and tx context is free due to tx time out, than crash happens
since of invalid pointer access. Solution is search tx context by nbuf,
do not process the ota tx ack if not find tx context from waiting for
ack queue.

Change-Id: I0778d0f22d963b00af5212b9d6080a95a4888e73
CRs-Fixed: 2142870
2017-12-05 17:37:16 -08:00
Wu Gao
648a1cfc7d qcacmn: Use qdf API instead of linux function
Replacing linux function with qdf API in P2P conponemt.

Change-Id: Ibf4e8acef0b2f4be113dbecb9ac2a685f456fd53
CRs-Fixed: 2148472
2017-12-05 17:37:14 -08:00
psimha
2ab65cbbd5 qcacmn: Pass dev strcut to qdf_mem_free_consistent
Pass dev info to the qdf_mem_free_consistent so that the kernel can track
the memory & prevent false double free detection.

Change-Id: I82a00ce9adc3638caee3f1ae325ec041fb2bd1fe
CRs-Fixed: 2144237
2017-12-05 17:37:12 -08:00