Commit Graph

3948 Commits

Author SHA1 Message Date
Rohan Dutta
8b8f00f622 qcacmn: Add WPA/RSN IE from driver
Add WPA/RSN IE from Driver, when app/daemon does not program it.

Change-Id: I6d25d98d4da991c229ae560a5878edc21c9766ce
CRs-Fixed: 2158072
2017-12-27 09:25:13 -08:00
Karunakar Dasineni
65b626eb3d qcacmn: Monitor status PPDU ID wraparound handling
Check PPDU ID wraparound in monitor mode processing.

Change-Id: I9e1dcc7b22d4db8006e945e360b3744f548fb122
CRs-Fixed: 2160214
2017-12-27 01:26:16 -08:00
Sandeep Puligilla
1e1def7550 qcacmn: Spectral scan module initialization for MCL
Changes to support spectral module initalization
on MCL platform.

Change-Id: I968e199d0090d11480f111acca1240c3fb8117ba
CRs-Fixed: 2161633
2017-12-26 17:27:04 -08:00
Arif Hussain
5e7ad9b03f qcacmn: Add null pointer validation and fix initialization in dfs
Add validation check for memory allocation and initialize variable
before using.

Change-Id: If5215f4f034ea57884b252f8467c4e2ca227c952
CRs-Fixed: 2160749
2017-12-26 13:24:37 -08:00
Soumya Bhat
7422db894d qcacmn: PPDU stats
Add following changes in the context of PPDU stats
1. Mirror copy mode enhancements
2. Fix memory leak due to mgmt. TLV
3. Reset RX monitor lite ring when enhanced stats disabled

Change-Id: Ifb260929290bc483dc05b152a11cd675104f3a0d
2017-12-26 07:24:48 -08:00
Shashikala Prabhu
153b2881cf qcacmn: Do not allocate DFS object for 2GHz radio
DFS is applicable only for 5GHz radio. Therefore, do not
allocate DFS object for 2GHz  radio.

Change-Id: I5e8aec0c876e7862890fae689950bfbb4eae5255
CRs-Fixed: 2153493
2017-12-22 23:24:41 -08:00
Ruchi, Agrawal
d8532ff2a0 qcacmn: Raw Mode AMSDU msdu ext desc not working
For RAW Mode AMSDU when multiple fragments will come
address for first fragment getting updated but other
fragments were not getting updated properly.Fix updated
all the fragment address.

Change-Id: Ie450bcd4e467cca779d0280d76ce7b4ace1dffc2
2017-12-22 19:26:39 -08:00
Sandeep Puligilla
c6764593d5 qcacmn: Extend beacon parse util functionality
Beacon parse util API currently returns only one
scan cache entry to the caller.

Extended the beacon parse api to return list of
scan cache entries in scenarios like mbssid

Change-Id: Ia362cda4fdbc9955966696484869fee6ac2d0a22
CRs-Fixed: 2154753
2017-12-22 09:26:16 -08:00
Wu Gao
6942640c40 qcacmn: Cancel ROC if cancel tx MGMT
It do not cancel the roc for tx MGMT frame, then wait this ROC timeout
even if the next off channel tx is coming. This affact WLAN DPP test.

Change-Id: Iffdef35d137485d7b17b3671e6bbe35a228b0893
CRs-Fixed: 2155852
2017-12-22 03:20:04 -08:00
Chandru Neginahal
ccf1cbd063 qcacmn: Expose dp_rx_mic_error_process() to other modules
dp_rx_mic_error_process() api is needed for nss wifi offload mode also

Change-Id: I3666bf3133ea59d5d286931c205bd09b8f6d6c72
CRs-fixed: 2155250
2017-12-21 21:25:56 -08:00
Sathish Kumar
c34484f2a2 qcacmn: Direct Buffer Rx framework to facilitate DMA between tgt & host
Direct Buffer Receive provides the driver with a mechanism by which
target can transfer information directly into host memory via DMA.

In the Direct DMA mechanism, target will transfer information directly
into host memory via DMA. Host will allocate DMA target buffers and
place their addresses in one or more rings (circular buffers) to be
read by the target. Host will determine the features that will be
utilizing the Direct DMA service through the service bitmap obtained
from the target through service available event. Host will also
determine the Direct DMA capabilities such as the minimum number of
pointers, minimum buffer size and minimum alignment for the DMA
buffers through a separate TLV part of the extended service ready
event.

Host with the help of service and the DMA capabilities received,
will initialize and configure the ring of DMA buffers to be shared
with the target. Once the rings are initialized, host will send a
WMI command to inform the target of their locations. Target responds
to the host with an acknowledgment event for the shared configuration.

When the host requests for the data captured, target will read the
destination addresses from the rings configured and use the addresses
to perform DMA transfer. When a single or multiple DMA transfers are
complete, target will notify the host via a WMI event. This WMI event
will include information on the number of DMA transfers completed, and
the associated addresses of the buffer that was used to transfer the
data. When the host has finished processing the contents of the DMA
buffer, it will replenish the ring and place the buffer back on the
appropriate ring to make it re-usable.

Change-Id: I7542036636e62701839ef36beafb463909001853
CRs-Fixed: 2127045
2017-12-21 15:26:13 -08:00
Sathish Kumar
26190a142e qcacmn: Add support 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.

Add following support for direct buffer rx module -

1. Add UMAC component ID for direct buffer rx module to be utilized
   for object manager APIs
2. Add support for populating DMA capabilities shared by target in
   object manager maintained extended service ready event.
3. Add support for Tx Ops for direct buffer rx module.

Change-Id: I2fa60e8572cbcc0d1fa7830e7e94b6e486bdcc78
CRs-Fixed: 2158297
2017-12-21 15:26:10 -08:00
Sathish Kumar
85da7c5fdb qcacmn: Add WMI interface support 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.

Add support for the following service/events/commands -
1. WMI_SERVICE_SUPPORT_DMA
2. WMI_DMA_CAPABILITIES as part of WMI_SERVICE_READY_EXT_EVENTID
3. WMI_PDEV_DMA_RING_CFG_REQ_CMDID
4. WMI_PDEV_DMA_RING_BUF_RELEASE_EVENTID
5. WMI_DMA_BUF_RELEASE_ENTRY

Change-Id: I3949026b4542565c49bb538b9545ea607690c793
CRs-Fixed: 2158304
2017-12-21 15:26:08 -08:00
Pranita Solanke
fc2ff39199 qcacmn: Add multicast and unicast packets stats for BSS peer
Add support to display multicast packets stats. Also
avoid sending message to target-if layer for every MSDU
to update node statistics

Change-Id: I7bb73d97bd8a02a601d191040a9a5730a9584d3d
2017-12-21 15:26:05 -08:00
Pranita Solanke
d7e10baaa9 qcacmn: Change the BW mapping on host side according to FW
Stats counters for BW were not updated correctly
due to difference in mapping of BW on host and FW

Also fix the Rx Stats to account for TCP Ack count

Change-Id: I7e844a7032e7968c110c7a0f8c45b0349a5cb818
2017-12-21 15:26:03 -08:00
Yeshwanth Sriram Guntuka
b9e2f66377 qcacmn: Set passive dwell time
Set passive dwell time to 28msecs for active
scan when bt a2dp is enabled and hw is not dbs
capable and when sta is connected on 2G band.

Change-Id: I44f2e3d98f2d7ddc52e4902ba989131c256da4ef
CRs-Fixed: 2160963
2017-12-21 05:26:49 -08:00
Sandeep Puligilla
4fe1d4b0ee qcacmn: Fix spectral scan compilation errors
Fix spectral scan component compilation errors
on MCL build system.

Change-Id: I903431fba923859e796e0786354608cac2841b0c
CRs-Fixed: 2160819
2017-12-21 01:39:17 -08:00
Tallapragada Kalyan
9403463db3 qcacmn: refactor wbm_err_process function
In wbm_err_process function we are releaseing the sw rx
descriptors at the end and we are calling replenish after
we processed all the pkts in wbm_release ring. FW team said
that the re-fill ring is empty for high throughput scenarios.
To avoid re-fill ring being empty replenish buffers
first and then process the nbufs later. Also free any invalid
peer MSDUs during pdev detach.

Change-Id: I3e1088a3df3658965ffb31e0e0420a37203ba70e
2017-12-20 21:28:02 -08:00
chenguo
8d0c219dde qcacmn: Hook checksum offload INI key to DP TX path
Enable or disable TCP\UCP checksum offload for TX according
to the flag in wlan cfg module, which is determined by INI
(MCL) or initialization setting(WIN).

CRs-Fixed: 2155236
Change-Id: I0e30fc062a000c2d9c47674fe80da59a2ac0de51
2017-12-20 15:27:03 -08:00
Ruchi, Agrawal
4c1468fb23 qcacmn: RAW Mode EAPOL Frame Classification
Host CCE Classification changes for RAW Mode workaround
RAW Mode EAPOL frame classification for raw mode

Change-Id: I533c2e8bb55e3cd5088c6bff046e67066c784053
CRs-fixed: 2132295
2017-12-20 14:10:39 -08:00
Yuanyuan Liu
f67e197433 qcacmn: Remove unused ipa_connect/ipa_disconnect APIs
Remove unused ipa_connect/ipa_disconnect related APIs.

CRs-Fixed: 2160644
Change-Id: If45c60d8c73cc89719d1576171921c50261a23df
2017-12-20 13:25:53 -08:00
Kris Muthusamy
7e36889461 qcacmn: Adding vdev id for WDS add/del/update API's
- Update the WDS add/del/update dp api's with vdev context

Change-Id: I68bf5670232aaa4bb4cce6a6fe0f7b3b2e921143
CRs-fixed: 2133484
2017-12-20 11:45:07 -08:00
Soumya Bhat
f4cb93c5e7 qcacmn: Green AP framework
Add APIs for green AP convergence framework.

Change-Id: Icd4e676af1296843b0f64957e1d55db9b32f3e55
CRs-Fixed: 2142183
2017-12-20 09:25:08 -08:00
Nandha Kishore Easwaran
f832d98d72 qcacmn: Add NULL check for del igtk key
Add NULL check for deletion of igtk key to avoid
NULL pointer dereference

CRs-Fixed: 2149494
Change-Id: I365465233991e7c242bbd8d9b233f975d806dc05
2017-12-20 05:38:48 -08:00
Dustin Brown
47d702f693 qcacmn: Add qdf memory domain support
In order to support memory leak detection during a specific period of
time, add APIs to allow setting the current memory domain. Each
allocation is tracked against the current memory domain at the time of
allocation. Consumers can then check to ensure the memory domain is
empty before each transition to a different domain.

Change-Id: I3a8d18ea0700122a2425eacb6051c6188b9aa5d6
CRs-Fixed: 2113614
2017-12-20 05:38:45 -08:00
Om Prakash Tripathi
dbbb61a6cd qcacmn: Add support to append scan channel list
Add append bit in scan channel list command. If append bit
is set, new channels will be appended to existing channel
list else existing channel list will be over written
by new channel list.

Change-Id: I0b1ecd2b809aafe6e524a05aacd5b14c80640556
CRs-Fixed: 2159802
2017-12-20 01:39:00 -08:00
Kiran Venkatappa
111dcb8ef5 qcacmn: Allow NULL bssid get logically del peerlist API
Extend wlan_obj_psoc_populate_logically_del_peerlist_by_mac_n_bssid API
to provide peer across soc for NULL bssid.

Change-Id: I2e6ccccdedac30de4e38f840deb2507a811dc537
CRs-Fixed: 2159840
2017-12-19 23:24:18 -08:00
sumedh baikady
f7bbb3512f qcacmn: Add HE SU Radiotap Support
Keeping up with changes in radiotap header definitions
and spec. This change reads preamble info for HE SU from
phy tlv and populates the radiotap structure

Change-Id: I0663d1923f2a8277c62ab6c8378aaca026ce18db
Crs-fixed: 2144302
2017-12-19 21:25:03 -08:00
Kiran Kumar Lokere
91ad019921 qcacmn: Correct the log level for debug messages
Correct the log level for debug messages

Change-Id: I847d606ea28b382c1dd449221f72822cf37f2be8
CRs-Fixed: 2160779
2017-12-19 14:15:07 -08:00
Will Huang
a30dd10220 qcacmn: Rename wmi_do_wow_xxx to wmi_d0_wow_xxx
wmi_do_wow_disable_ack_event_id was named by mistake, rename it where
use it as wmi_d0_wow_disable_ack_event_id.

Change-Id: Ic11cb2a260b2ac65d0324d950d043988a7da6657
CRs-Fixed: 2160870
2017-12-19 13:37:42 -08:00
Krishna Rao
fcb834f3bc qcacmn: Add QCA vendor command and attributes for RROP
Add QCA vendor command and attributes for vendor specific
Representative RF Operating Parameter (RROP) information. This
information is intended for optional use by external ACS. It provides
guidance values for some RF parameters that are used by the system
during operation, so that external ACS can utilize these to compare
between channels, bands, etc.

CRs-Fixed: 2152786
Change-Id: I911a96ad860331ab7af718c166806ffc7d1c5052
2017-12-19 05:45:32 -08:00
Sathish Kumar
a9a42ebe04 qcacmn: Add module id for direct buffer rx module in QDF debug trace
Direct Buffer Receive provides the driver with a mechanism by which target
can transfer information directly into host memory via DMA.

Add module id and set default trace level for the module.

Change-Id: Id2c64a342867c499a1f5f10e46b40a2b53161d2e
CRs-Fixed: 2157978
2017-12-19 03:03:48 -08:00
psimha
9aec0b53dc qcacmn: Add NULL checks before accessing pldev
Add NULL checks before accessing pldev object in the pktlog module.

Change-Id: I7139480c028a54fab9d73d5b68494cc42ef6d427
CRs-Fixed: 2158642
2017-12-18 21:48:42 -08:00
Kabilan Kannan
529d3e8a7c qcacmn: Fix the TDLS command process map
TDLS command processing incorrectly fall through
to the wrong command, and it causes the crash
in the system.
Fix the mapping in TDLS process command
function

Change-Id: I296e10f92e283a813259e1f33143d09bcf3ab39b
CRs-Fixed: 2159351
2017-12-18 17:37:14 -08:00
psimha
223883fb88 qcacmn: Handle RX defrag in exception path
- Perform SW chaining of fragments.
- Reinject only the head fragment to REO.

Change-Id: I198db3ba4319b8a2e800eb7495cf190c5e86d4cd
CRs-Fixed: 2144197
2017-12-18 15:55:14 -08:00
sumedh baikady
e3947bd8d6 qcacmn: Add stats for BA per Tid
Adds stats for number of ADDBA, DELBA requests,
pn size and window size per tid.

Change-Id: Ib7e3a9b948439695afd9a952fe46ac42ac58c653
CRs-fixed: 2151863
2017-12-16 19:25:08 -08:00
Paul Zhang
8b7ea68fc0 qcacmn: Do sanity check of requester ID
If the requester id is 0 or other invalid values,
the function scm_scan_get_requester_event_handler
will get unexpected handler.

Change-Id: I505e2e1a1bdc9cec57aaa0c28abadf28d228ba5b
CRs-Fixed: 2147555
2017-12-16 14:08:10 -08:00
Paul Zhang
d1e56f9082 qcacmn: Correct the structure of rsn_mdie
The function util_mdie_match() will get the value of
mobility_domain. Since the structure is not right, it
will get the ie ID and length instead of the right
value.

Change-Id: I1d3d831ebf39fedc17c0f88a88d82114df9e6979
CRs-Fixed: 2147555
2017-12-16 14:08:08 -08:00
Surabhi Vishnoi
e7c1401cf0 qcacmn: Change the data type of message type id
The datatype of wd_msg_type_id was uint16_t which truncates the
upper bytes of msg id.

Changing the datatype of wd_msg_type_id from uint16_t to uint32_t.

Change-Id: I49b5eefd878660f6ba3d0b7da451df99661c59df
2017-12-16 14:08:06 -08:00
chenguo
8107b66d8f qcacmn: Fix NR_CPUS overflow for one byte data structure
For one byte data structure of unsigned type, it is expected that
the maximum value is 255. However, NR_CPUS is 512 in x86 setup of
Napier.

CRs-Fixed: 2158203
Change-Id: I057fb0cf3c11e687dfdd6cd2295b16743297d561
2017-12-16 13:27:46 -08:00
chenguo
2649554e73 qcacmn: Fix memory copy overflow in dp_process_htt_stat_msg
In dp_process_htt_stat_msg function, the stats message must be
interpreted one by one. It can't move to the next message unless
the current one is handled completedly. Or else it will cause a
memory copy overflow.

CRs-Fixed: 2156792
Change-Id: I8a3784cd17f2a68b16c4f47c6b1a24e12d23aaa5
2017-12-15 23:19:45 -08:00
Om Prakash Tripathi
8509483038 qcacmn: Add option to wait for target scan cancel
Current scan cancel API frees scan request and notifies internal
scan complete event to registered scan event handlers.
Add option to wait for target scan cancel event before freeing
scan request.

Change-Id: I9ccd753595b3467f6b4e668e9cac876a1105bba0
CRs-Fixed: 2145484
2017-12-15 21:25:19 -08:00
Govind Singh
11c7f8b00e qcacmn: Dump WMI work queue stack for watchdog bite
In the event of an WMI work queue watchdog bite, dump the stack
trace to aid in debugging.

Change-Id: I7f3df5a56904748fb80afb1aef1aed90d20fbbc0
CRs-Fixed: 2145913
2017-12-15 19:26:25 -08:00
Dustin Brown
e0c9f6699f qcacmn: split scheduler init/deinit
A commonly used and robust life-cycle pattern consists of the following
4 steps:

	1) create (allocate resources)
	2) start (mark resources as safe for use)
	3) stop (mark resources as unsafe for use)
	4) destroy (deallocate resources)

This pattern effectively prevents access to uninitialized and freed
resources. While the dispatcher psoc life-cycle follows this pattern,
the global life-cycle is condensed into steps 1 and 4. Unsurprisingly,
this led to uninitialized and freed resource access problems, especially
in regards to the scheduler thread.

Split the scheduler init and deinit life-cycle functions into init,
enable, disable, and deinit. Create new global enable and disable
dispatcher functions, and call the new scheduler APIs as appropriate.
This brings the global dispatcher life-cycle in line with the existing
psoc life-cycle, and prevents many scheduler related resource access
issues.

Change-Id: I58b65be0611f48e48354f28c221185f6f490f30c
CRs-Fixed: 2153283
2017-12-15 05:25:35 -08:00
Naveen Rawat
c3b7a68d54 qcacmn: Add SYS_MSG_ID_UMAC_STOP system message
Add SYS_MSG_ID_UMAC_STOP to allow umac close to be done in
mc thread context.

Change-Id: I11946ce7aa21ce96f71d604244b9981dcae9704a
CRs-Fixed: 2156189
2017-12-15 03:42:16 -08:00
Lin Bai
ebf8d63835 qcacmn: Fix athdiag regression caused by boundary check
for QCA6290/QCA8074, input offset value will include memtype as well,
which not covered by current boundary-check, and will fail it.

Limited current boundary-check for legacy chip currently.

CRs-Fixed: 2157285
Change-Id: Id1e1fd10b4539288c461c6403fd8110fd5056dd5
2017-12-15 03:42:14 -08:00
nobelj
2c3db26446 qcacmn: passing correct argument to qdf_mem_set api
qdf_mem_set api parameter switched!
old
qdf_mem_set(void *ptr, uint32_t value, uint32_t num_bytes)

new
qdf_mem_set(void *ptr, uint32_t num_bytes, uint32_t value)

Change-Id: I4ebbc222d32e6fe18c28f2446102c95bfc734c8e
2017-12-14 17:45:20 -08:00
Lin Bai
fca7640032 qcacmn: Fix memory leak when failing to delete RX TID
During RX TID deletion, if FLUSH_CACHE REO cmd fail to be sent,
the required callback function won't be invoked, hence
local allocated REO desc and related TID queue desc will leak.

Do clean up when REO cmd failed to be sent.

CRs-Fixed: 2155929
Change-Id: I02ff4a2340ad32986c30b935a376924bb75edb67
2017-12-14 17:45:18 -08:00
Ravi Joshi
54ee5e48db qcacmn: Enable support for HE radiotap headers
radiotap has updated HE (11ax) radiotap header extensions.
The change enables the support for those headers in the
driver.

CRs-Fixed: 2133532
Change-Id: I42c4f13e157ea981d6a276582553893921a70758
2017-12-14 11:25:18 -08:00
Nandha Kishore Easwaran
b0ac369215 qcacmn: Delete igtk keys: key_idx 4 and 5 for PMF
Delete igtk keys of index 4, 5 if PMF configuration
is changed

Change-Id: I5f0de09fb713864a0e2cb3036633bf5c131e1f8c
2017-12-13 23:38:14 -08:00