Commit graph

3,262 commits

Author SHA1 Message Date
Venkateswara Swamy Bandaru
3f4e1c48cc qcacmn: Fix Key derivation for mesh rx stats
Fixed key derivation for mesh rx stats for received packet. Added cdp api
to get the key by passing key index and peer mac address.

Change-Id: I6a4c342b614ae85a5ad2fb047f2d8686aa068196
CRs-fixed: 2094335
2017-08-22 07:26:02 -07:00
Yun Park
e56aa7b89a qcacmn: Markings updated
Markings updated

Change-Id: I8f031513a2adf5005be26965f73d2e9e1f52a15f
CRs-Fixed: 2093948
2017-08-21 16:50:13 -07:00
Rajeev Kumar Sirasanagandla
a3f4a29130 qcacmn: Add support to include selective scan IEs only
qcacld-2.0 to qcacmn propagation

Add support to include only selective IEs in probe requests in
order to improve user's privacy.

Change-Id: I59cf4181f60f5b4cd87a32fbcf29160d87ca59c8
CRs-Fixed: 1105495
2017-08-19 01:27:07 -07:00
Liangwei Dong
7a3433459f qcacmn: add FW self recovery for SDIO
add hif_check_fw_reg implementation for SDIO
solution.

Change-Id: Ic6948cfc7400d93a53e27074a17d5ceac45b558b
CRs-Fixed: 2071352
2017-08-18 21:27:08 -07:00
Mukul Sharma
a17d5ecbf4 qcacmn: Add support of GCMP (128/256) support
Add support of GCMP (128/256) security ciper support.

Change-Id: I3c9cb3dc72cce0a2cae3e468d3c1f3c004e11adf
CRs-fixed: 2071087
2017-08-18 18:27:37 -07:00
Rajeev Kumar
7f679457e1 qcacmn: Add QDF rate limit logging API
Add QDF rate limit logging API such that logs are rate limited
on need basis.

Change-Id: I40949155a1938998bc73830929db5c2a07bc380d
CRs-Fixed: 2083921
2017-08-18 17:46:44 -07:00
Kiran Venkatappa
22046183ed qcacmn: Update chaninfo extract API for TLV target
FW implementation is updated to add more fields in chan info event.
Update host implementation to extract these fields.

Change-Id: I4935f3aa1c2e87d27a13a29651db8d8835cb4f91
CRs-Fixed: 2090787
2017-08-18 17:46:43 -07:00
Poddar, Siddarth
725e9f5a0d qcacmn: Add missing qdf_spinlock_destroy() to free debug cookie
Add missing qdf_spinlock_destroy() to destroy spin lock debug cookie
for SLUB build. For normal builds, qdf_spinlock_destroy() is a NO-OP
function.

Change-Id: If5a3843a468e460952dc64f0e6b5b1fba05ebbb3
CRs-Fixed: 2078940
2017-08-18 05:37:30 -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
Tushnim Bhattacharyya
f80cf0eccb qcacmn: Relax the check on nss field during HW mode table lookup
Relax the check on nss field during FW advertised HW mode table lookup.
Instead of looking for exact match look for less than or equal to the FW
advertised nss value.

Change-Id: I360d14282f03aad25f4338546cbcbfb3cbd3a76b
CRs-Fixed: 2090863
2017-08-17 17:25:19 -07:00
Tallapragada Kalyan
1c14d5d8e9 qcacmn: MEC loopback check even when sa_is_valid not set
There is a case when the multicast/broadcast frame gets loop backed
even before a MEC WDS entry gets added, in this case
the MEC check based on sa_is_valid will fail, hence added
another ast lookup check.

Also fix the ast entry iterator to use _safe option, since
we are deleting ast entries in the same iterations

Change-Id: I0567893783649d991c3623a61c60fbc63d1a24ef
2017-08-17 14:55:13 -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
tfyu
6c7625b2ca qcacmn: Add macro protection for HIF CE
Add macro protection for HIF CE, it shouldn't include the ce head file
when the module is usb or sdio.

Change-Id: Icc38ffaa24581141f86d41afe2db7c5aa944a1cd
CRs-Fixed: 2090621
2017-08-17 03:26:53 -07:00
Ashok Ponnaiah
b696221fd3 qcacmn: Fix wep-shared in sta mode
Add selfpeer setting in obj manager
moved handling peer wep keys during peer obj creation
addressed wep encap issue, added trailer bits.
Wep key length check fixed

CRs-Fixed: 2090497
Change-Id: I0a409e12941270dd65fcffabcbee2d5d06cc1f06
2017-08-16 22:46:20 -07:00
Varun Reddy Yeturu
947606fe4a qcacmn: Fill rssi_thresh_offset_5g in WMI
Fill rssi_thresh_offset_5g in WMI to configure this
value into the target

Change-Id: I0e5dde987fcc9fbb1f0556ec6f195d0a5ada4ffe
CRs-Fixed: 2093335
2017-08-16 17:36:53 -07:00
Kabilan Kannan
7419feb01e qcacmn: Fix the invalid MAC address config issue in TDLS
When an invalid mac address(all zeros 00:00:00:00:00:00) sent
to the host via user configuration, it triggers the crash in
the system.
Add checks to reject the invalid mac address configuration
in TDLS.

Change-Id: I340f581e7011f78faf5f58c10f7b6eec15ea2940
CRs-Fixed: 2068026
2017-08-16 09:56:10 -07:00
bings
ff86e37d20 qcacmn: Fix connection information deleting and restoring
Currently only one connection information corresponding to the
provided mode is deleted and restored, which causes channel
selecting failure in DFS testing with AP+AP concurrency mode.
When radar is found in AP+AP concurrency mode, a new valid channel
should be selected. Before selecting the channel, all existing
connection information of SAP mode should be deleted, otherwise
no valid channel can be selected.

All the connection information corresponding to the provided mode
should be deleted and restored.

Change-Id: Id363dbb2c31485fefcd6915696060923063079bb
CRs-Fixed: 2079597
2017-08-16 03:27:29 -07:00
Adil Saeed Musthafa
fe366639e9 qcacmn: fix a bug in qdf_trace_hex_dump
The for loop was wrongly written. buf_len was decremented but the
counter was compared against buf_len, leading to lost bytes in the dump
Now with this change we compare buf_len is compared with 0, i.e., when
buf_len reaches 0, the loop exits

CRs-Fixed: 2091891
Change-Id: Ic5276e964e08a7db757bfed0569b290d987ddf5f
2017-08-15 19:27:39 -07:00
Dustin Brown
56897ecb6c qcacmn: Remove membership check from list APIs
Getting the next node of a linked list should be a O(1) operation.
qdf_list_peek_next, however, iterates though the list first, checking
for node membership, before returning the next node. This makes the O(1)
operation a O(n) operation instead. Code that uses this API for list
traversal inadvertently performs a O(n^2) operation, causing unexpected
performance issues. Similar problems exist for qdf_list_remove_node as
well. Remove the membership checks in qdf_list_peek_next and
qdf_list_remove_node to prevent unexpected performance penalties.

Change-Id: If20825690ad861815c8164caebbf75318e572f0a
CRs-Fixed: 2091815
2017-08-15 19:27:37 -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
Karunakar Dasineni
09120790f8 qcacmn: Enable per TID AMPDU and AMSDU WMI params
Enable WMI PDEV parameters to configure per TID AMPDU and AMSDU in TLV implementation

Change-Id: I12982e78f880bf9bf8858aaa99aa416d7f775c17
CRs-Fixed:2089935
2017-08-15 16:27:54 -07:00
Varun Reddy Yeturu
8ee469b48e qcacmn: Add ldpc_rx_enabled to vdev start parameters
Add a field ldpc_rx_enabled to vdev start parameters so that
this information can be propagated from the upper layers to
WMI and further to firmware.

Change-Id: I25fd148f77d86eb646a0e40fef6ac99c4fbcdf22
CRs-Fixed: 2023893
2017-08-15 16:27:53 -07:00
Prashanth Bhatta
65b0eaa24b qcacmn: Change semantics of Runtime Lock APIs
Runtime PM lock init API right now returns pointer to a context
but this would cause confusion to the caller if feature is not
defined and dummy function return NULL as caller can't find real
failure versus dummy function returning because feature not being
enabled.

Fix declaring a data structure in QDF layer that caller can use
but it hides the internal details of HIF implementation for
Runtime PM locks.

CRs-fixed: 1116509
Change-Id: I4dcba604e803faa0e14fac6403610391895e382e
2017-08-15 13:27:07 -07:00
Pramod Simha
ccb15fbd29 qcacmn: Enable WBM scatter ring support
Program additional registers to enable the WBM scatter ring
support for providing link desc to HW.

Change-Id: I0d240150f81a333758a311af35c97e1f93ef4ed2
CRs-Fixed: 2068757
2017-08-15 13:27:05 -07:00
Rajeev Kumar Sirasanagandla
d8d18f187a qcacmn: Add support to randomize probe req SA and Seq number
qcacld-2.0 to qcacmn propagation

Randomize probe request's source address and sequence number to
improve user's privacy.

Change-Id: I265f15476f1a23a268f159a44b6a3e4243fb9068
CRs-Fixed: 1105081
2017-08-14 20:07:22 -07:00
Kapil Gupta
b9abb628db qcacmn: Correct shash APIs calling
Add changes to correct shash APIs calling.

Change-Id: Ic1756311c3869c0b4881e1ac07a8d32be6e1e481
CRs-Fixed: 2089258
2017-08-14 19:26:22 -07:00
Arif Hussain
e22618a790 qcacmn: Change soc level pdev id as per new definition
soc level pdev id changed from zero to WMI_HOST_PDEV_ID_SOC (0xFF)
change pdev id in wmi_unified_dfs_phyerr_offload_en_cmd call
according to new definition.

Change-Id: I3c55dc8821c4186190515564b00f54f2427d5702
CRs-Fixed: 2090282
2017-08-14 14:58:11 -07:00
Arif Hussain
877f3236d8 qcacmn: Refactor dfs cac timer and other logic in dfs component
It is possible to use host based cac timer even for the dfs
offload, So make sure to do all initialization for cac timers.

Also store dfs offload flag in dfs component.

Change-Id: Id30730fb1f84285e225c4221fde9846fbfd960cc
CRs-Fixed: 2069362
2017-08-14 14:58:09 -07:00
Karunakar Dasineni
9a4ddd6a40 qcacmn: Compilation fix without FEATURE_NAPI
Fix compilation failures with NAPI disabled.

Change-Id: I5ebd122436b7fc2f85b09880eddd884ca114e121
CRs-Fixed: 2080092
2017-08-14 13:58:08 -07:00
Kiran Kumar Lokere
a78b4bfb67 qcacmn: Add support to process channel avoidance event
Add support to process channel avoidance event

Change-Id: I19ce742406a4778ac0f279faf0bf853bc9069eb0
CRs-Fixed: 2080241
2017-08-13 16:56:55 -07:00
Varun Reddy Yeturu
eea59a38ac qcacmn: Add vdev as argument to wlan_serialization_comp_info_cb
Add an additional argument to wlan_serialization_comp_info_cb to pass
the vdev information while filling the information required to apply the
rules.

Change-Id: I44dadc01108e746fd2ce6353a90cdf9401dd6d06
CRs-Fixed: 2090987
2017-08-13 16:16:06 -07:00
Rajeev Kumar
eca1b64d6c qcacmn: Add host initiated self recovery callback in qdf
Add host initiated self recovery callback in qdf such that
self recovery can be invoked from all layers.

Change-Id: Ied2a468019a2e27039686a4acb0e4c8b4577ba8f
CRs-Fixed: 2083099
2017-08-13 15:36:36 -07:00
Houston Hoffman
817ff7fc72 qcacmn: Add target type for adrastea chip
Add adrastea target type definitions to hif.h.

Change-Id: Id3183287ecd749577cfc1b71a0cfd96210073612
CRs-Fixed: 2066361
2017-08-11 19:38:21 -07:00
Manjunathappa Prakash
7ddb964c75 qcacmn: Use HOST_INTEREST_ADDRESS from targaddrs.h
WIN side code already uses the address FW interface header file.
No impact on MCL side as these are addresses are for WIN chips.

Change-Id: I540de3adf749d02aa9e56cca3f1f1baa39052dc7
CRs-Fixed: 2066361
2017-08-11 19:38:20 -07:00
Sandeep Puligilla
5c1cc50c22 qcacmn: Fix compilation errors
Fix compilation errors after updating
latest dbglog.h file from fw.

Change-Id: I3defd4242d922364849041b35bddb3cca4f9a39a
CRs-Fixed: 2066361
2017-08-11 19:38:18 -07:00
Om Prakash Tripathi
c3fcb680f1 qcacmn: Add support to update mlme info in scan db
Add missing support to update mlme related info in scan db

Change-Id: Ib69a07012536b9b423992f5f4199925febabcb91
CRs-Fixed: 2086351
2017-08-11 06:40:07 -07:00
Chris Guo
0d276aab16 qcacmn: Enhance t-put for SDIO bus WLAN
Because of wrongly using #ifdef instead of #if, DEBUG_BUNDLE is
always on after enable bus bunlde for SDIO bus WLAN.

CRs-Fixed: 2073795
Change-Id: I7b94dbc0a63dbea2384a455eed1e46d0eb60c530
2017-08-11 05:07:12 -07:00
Zhu Jianmin
682342a9ad qcacmn: Prevent memory violation with check
Check return value of cds_get_channel_enum

Change-Id: I945eae56a0f2d1eeeb9b37d46f03a09e60f259fb
CRs-Fixed: 2061117
2017-08-11 05:07:11 -07:00
Agrawal Ashish
42a1dc0596 qcacmn: Trigger copy of pktlogs to SD Card on basis of ring ID
For fatal events , driver sends EVENT_WLAN_LOG_COMPLETE
to userspace. But there can be multiple events for each
ring id like connectivity, driver , frimware, wakelock etc.
Cnss diag has to trigger copy of pkt log to /sdcard only for
one bug report, so send ring id in log complete event so
that it can trigger copy for driver ring id.

Change-Id: I3b06bed52509e58ac4d79698c95ba5eb1baa3bb3
CRs-Fixed: 2053770
2017-08-10 06:12:51 -07:00
wadesong
31d77bc18a qcacmn: Fix a NULL pointer dereference issue
In htc_send_data_pkt, netbuf will not contain a valid pointer for
TX packet count updating unless pPacket is not NULL. Move the TX
packet count updating code into the code block where pPacket is
containing a valid pointer.

Change-Id: I5cf6787b731df36c41c0c12a585e816e54ffb904
CRs-Fixed: 2053354
2017-08-10 06:12:50 -07:00
Shashikala Prabhu
c4f7f445a6 qcacmn: Add support to enable or disable channel 144
By default channel 144 is enabled. Support added to disable
channel 144 through iwpriv command.

Change-Id: I0a193571c2ca36e0cedcac19851459448fc141cf
CRs-Fixed: 2076792
2017-08-10 04:25:51 -07:00
yeshwanth sriram guntuka
1276a11b8e qcacmn: Fix excessive logging
kmsg is flooded with excessive logs from wmi_control_rx.

Fix is to change log level to debug.

Change-Id: I327463387a5dac318ecc0ad7e773006cfc09b42a
CRs-Fixed: 2073718
2017-08-10 04:25:49 -07:00
Venkateswara Swamy Bandaru
9b8dcb46d9 qcacmn: Fix race condition issue with enabling interrupts
Add lock before disabling and enabling group interrups to avoid race
condition between enabling and disabling group interrupts. Avoid mutiple
enabling/disabling of interrupts by maintaining the irq enabled information.

Change-Id: I79afc987e3853de84aaa05321cfcee72cdc0acb0
CRs-Fixed: 2087792
2017-08-10 03:11:59 -07:00
Himanshu Agarwal
740f30f614 qcacmn: Do netif_rx_ni() for frames received before peer assoc
While processing of frames received before peer is registered in process
context, tcp_v4_rcv() is called which takes a spinlock and in between the
processing before spinlock can be released, it is getting preempted by
hif_napi_poll() as it gets executed in softirq context. It tries to take
the same spinlock in tcp_v4_rcv() resulting in deadlock.

Do netif_rx_ni() for frames received before peer is registered.

Change-Id: I563ba5bccb94ea4084ecfd5d31045a5715bbfef4
CRs-Fixed: 2034991
2017-08-10 01:49:23 -07:00
Will Huang
82e91e0541 qcacmn: Check pointer tbuffer always before access it
Pointer tbuffer is allocated from heap or get from other module, it
is checked in some if branch but not every possible NULL branch.

Adding NULL check of tbuffer in every possible branch.

Change-Id: Id3c9f941623995ff73a993e29c53f3b9ce66f10e
CRs-Fixed: 2064350
2017-08-09 19:36:58 -07:00
Poddar, Siddarth
0efe289db5 qcacmn: Perform napi state comparison before releasing napi lock
Release napi spinlock only after performing napi state
comparison to avoid any race condition.

Change-Id: Icd7b713e474a818dfc6d0fa402496bbe06a3af66
CRs-Fixed: 2078294
2017-08-09 19:36:57 -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
Will Huang
2411f76c2b qcacmn: Check pointer before dereference it
sync_completion_queue pass to function hif_dev_issue_recv_packet_bundle
may be NULL when asyncProc is true, and this queue pointer will be
dereferenced in HTC_PACKET_QUEUE_ITERATE_ALLOW_REMOVE.

Add checking before dereference this pointer.

Change-Id: I7e6f7923c819a7af8ed5444853ee74ffe1dd1a76
CRs-Fixed: 2071228
2017-08-09 19:36:55 -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
Will Huang
408ae4c430 qcacmn: Fix possible NULL pointer dereference access
In multiple functions of hif_sdio_recv.c and hif_scatter.c, there is
A_ASSERT to check NULL pointers which might null operation if it is
not debug build.

Fix it by adding proper error handle if pointer is NULL

Change-Id: Ib183366d4a1193a3cf22aae2f3431efa761d1d35
CRs-Fixed: 2058905
2017-08-09 16:07:49 -07:00