Commit Graph

640 Commits

Author SHA1 Message Date
Venkata Sharath Chandra Manchala
71032b649b qcacld-3.0: Fix for supporting dump statistics
1. Avoid breaking compilation on legacy code
2. Rename dump stats macro options to CDP macros
   appropriately

Change-Id: If8594fad2145f29cb8f8f9f6bc3cd34633d0e9a4
CRs-Fixed: 2023386
2017-04-07 19:52:34 -07:00
Naveen Rawat
37f62c8796 qcacld-3.0: Implement NDP_INITIATOR_REQ
Add MCL changes for NDP_INITIATOR_REQ.

Change-Id: Idcf9df354dc24f7cf82a818833ff3c2c5e2da1e8
CRs-Fixed: 2014795
2017-04-07 11:58:41 -07:00
Naveen Rawat
cb5c540e7f qcacld-3.0: Implementation of NDI Create/Delete
Add MCL changes for NDI create and NDI delete commands.

Change-Id: I270cd213d89224f73ff2ce9fad784cec3e0f8fa3
CRs-Fixed: 2014795
2017-04-07 11:58:39 -07:00
Abhishek Singh
b20db96d64 qcacld-3.0: Add PNO changes for converged scan
Adds PNO related changes for converged scan.

Change-Id: Ie7194d15d2d6ad5e4327e3aadbb4e39a5bf576a8
CRs-Fixed: 2013212
2017-04-07 04:23:13 -07:00
Dustin Brown
8d2d0f57a5 qcacld-3.0: Expose WMI/Credit History debugging APIs via ioctl
Add an ioctl that allows a user to dump a specified number of records to
dmesg for WMI and Credit History.

Change-Id: I644dcf5edcb2f875af1e99e7b4677cde37081674
CRs-Fixed: 2028760
2017-04-06 10:58:54 -07:00
Naveen Rawat
9750035be6 qcacld-3.0: Compile out legacy NDP code
Compile out legacy code when NAN_CONVERGENCE is enabled.

Change-Id: I47ac6842ad6b195e623d9de95702e6089031335d
CRs-Fixed: 2014795
2017-04-06 08:52:10 -07:00
Arif Hussain
759a023602 qcacld-3.0: Add cac and phyerr processing offload support
In case of dfs offload, do not run cac timer, as cac will also be
offloaded in that case. Decide the same based of service bit info.

Change-Id: If4dd62628270ff0ba8632a9cd644a9d7ed6f31a4
CRs-Fixed: 2021357
2017-04-03 18:41:24 -07:00
Arif Hussain
671a190aa9 qcacld-3.0: Add cac duration and dfs region in vdev start
Add support to fill cac duration and dfs region in  vdev
start command, these values are used in firmware on phyerror
processing and cac timer offload cases.

Change-Id: I8bfbd4a3f59002f92ee2e5e321c15da849fce9ec
CRs-Fixed: 2021357
2017-04-03 18:41:22 -07:00
Krishna Kumaar Natarajan
d1cd56e731 qcacld-3.0: [11AX] Add support to update HE MCS
Add support to update HE MCS. lim_populate_he_mcs_set() is added to
take care of populating the rates and MCS values.

Change-Id: I12c0ab95cc566c906f1707010dfb2ef3ec4fa681
CRs-Fixed: 1073481
2017-03-31 22:37:21 -07:00
Krishna Kumaar Natarajan
b3a8f6289e qcacld-3.0: Update HE ops correctly in vdev start request
Update HE ops correctly in vdev start request. Currently the update
is done in a local copy and is not updating the vdev start request.
Fix is to copy the local he ops value into vdev start request.

Change-Id: Ife5b40a8df3d6a47c2f170efdb7aae009bb8be95
CRs-Fixed: 1073481
2017-03-31 16:07:55 -07:00
Himanshu Agarwal
df9c8ac2d7 qcacld-3.0: Decrement peer ref cnt incremented while getting peer
Decrement the peer ref cnt incremented while getting peer through
wlan_objmgr_get_peer() to pass it to wlan_mgmt_txrx_mgmt_frame_tx().

Change-Id: I2791075d63610d76fa1c70d3efe76df2b2618b01
CRs-Fixed: 2025052
2017-03-31 10:01:57 -07:00
Tushnim Bhattacharyya
9104963b0d qcacld-3.0: Register legacy callbacks with Policy Manager
Register legacy callbacks with Policy Manager.

Change-Id: I8cb60890ba41f8735f342cf20916dc53d268d609
CRs-Fixed: 2009818
2017-03-30 16:26:46 -07:00
Tushnim Bhattacharyya
45ed04f74c qcacld-3.0: Add correct header files in legacy code
After removing legacy policy manager header file had to add
correct header files from host common to allow the compilation
to happen successfully.

Change-Id: I566b8f09776520e8a43eb48cc944ce627dc0c5cf
CRs-Fixed: 2009818
2017-03-30 16:26:43 -07:00
Tushnim Bhattacharyya
51258a79c2 qcacld-3.0: change wma code for policy manager restructuring
Modify wma code to cope with the policy manager moving to host
common.

Change-Id: Ie75b3da1291fcf1126a9e269f7b3b7974f9992a1
CRs-Fixed: 2009818
2017-03-30 16:26:39 -07:00
Tushnim Bhattacharyya
9e81b4ca94 qcacld-3.0: legacy code change for policy manager restructuring
Modify legacy code to cope with the policy manager moving to host
common

CRs-Fixed: 2009818
Change-Id: Ifa27ecdf1e37eda6f929f89da603bc356e9cb7fd
2017-03-30 16:26:20 -07:00
Wu Gao
9a704f4540 qcacld-3.0: Enable p2p component of umac convergence
This is a change to enable P2P component of umac convergence.

Change-Id: I583d64af4451777dfb7656ed8fdb9fddb33f2932
CRs-Fixed: 2006267
2017-03-29 18:12:53 -07:00
Sandeep Puligilla
1fcdb7744b qcacld-3.0: Changes to support converged scan component
Changes to support converged scan component.

Change-Id: Ic91a437bcb0b3b0ca4dd6d4fe86fcc86f24dc15f
CRs-Fixed: 2013212
2017-03-29 12:29:20 -07:00
Mukul Sharma
6411bb8535 qcacld-3.0: Add vdev pause bitmap (Set/Clear/Update/Get) API's
Currently, Host modify the vdev pause bitmap
directly which may be problematic in scenario
where this value update information need to
notify to other components.

Hence as a part of this fix, Add (set/clear/update) API's
for vdev pause bitmap modification.

Change-Id: I5c8d6576d27076f697463b42632962327306902f
CRs-Fixed: 2013376
2017-03-28 13:01:01 -07:00
Selvaraj, Sridhar
a6e3ebad43 qcacld-3.0: Ignore LFR3 ROAM SYNCH indication if disconnect in progress
Currently, WMA is not checking whether the south bound disconnect
(deauth/disassoc from AP) is in progress before processing
LFR3 Roam synch indication which leads to FW out of sync with host.

Fix is to ignore LFR3 Roam Synch Indication if south bound disconnect
is in progress in host.

Change-Id: If3c78139cf1d1d0aa0f977bd2cbdca53c7b1a81c
CRs-Fixed: 2019702
2017-03-28 13:00:39 -07:00
Krishna Kumaar Natarajan
9a7638f181 qcacld-3.0: [11AX] Relocate kernel doc to header files in WMA
Relocate 11ax related functions' kernel doc from .c files to .h files in WMA.

Change-Id: I38bc95c7f9d8f19e1596803d5fd28113bd504f57
CRs-Fixed: 1073481
2017-03-28 13:00:34 -07:00
Krishna Kumaar Natarajan
150cd011a3 qcacld-3.0: [11AX] Add support to configure range extenstion
Add support to enable or disable range extenstion using
enable_range_ext iwpriv command. get_range_ext iwpriv is used
to check if range extenstion is enabled or not.

Change-Id: I2231ef9641cfa669dd4b1e820a3b7ec00546a9a3
CRs-Fixed: 1073481
2017-03-28 13:00:32 -07:00
Krishna Kumaar Natarajan
1a71ec7115 qcacld-3.0: [11AX] Add support to configure DCM
Add support to enable or disable DCM using enable_dcm
iwpriv command. get_dcm iwpriv is used to check if
DCM is enabled or not.

Change-Id: I9d81bba92d227a238faf2e705132c80c8e91de86
CRs-Fixed: 1073481
2017-03-28 13:00:30 -07:00
Krishna Kumaar Natarajan
f567650ade qcacld-3.0: [11AX] Add support for vendor commands
Add support for vendor commands to query HE capabilities.

Add support to include HE capabilities in wma_handle as received
from FW to be sent to userspace when queried via vendor sub command.

Change-Id: Icbf141bd1e0646346c2b18aabf3dfb3590d853d7
CRs-Fixed: 1073481
2017-03-28 13:00:23 -07:00
Dustin Brown
3e61982239 qcacld-3.0: Fix FEATURE_AP_MCC_CH_AVOIDANCE compilation error
Fix a compilation error when FEATURE_AP_MCC_CH_AVOIDANCE is defined,
introduced by a previous commit.

Change-Id: Ic85b805f590ce5acc5cd0caeff107b8315baefaf
CRs-Fixed: 2019332
2017-03-23 21:33:21 -07:00
Jeff Johnson
560dc56d97 qcacld-3.0: Fix "no space before tabs" style errors
Automated code style checker detected multiple instance of "no space
before tabs," so fix those issues.

Change-Id: I93248e3cfafa047c4fa8c9553769f9457086d01a
CRs-Fixed: 2021507
2017-03-23 17:00:48 -07:00
Jeff Johnson
fe074c21c6 qcacld-3.0: WMA: Remove obsolete support for Class B stats
WMA currently has legacy code to support the tCsrGlobalClassBStatsInfo
data structure. However these stats were specific to the WDI firmware
API used by older generations of hardware, and this interface is not
supported by WMI. In addition the support for these stats has been
removed from HDD.  So remove support for these stats from WMA.

Change-Id: I2e152cd55b54ed9f68bf85411fcfa4b95b5325a0
CRs-Fixed: 2021533
2017-03-23 17:00:44 -07:00
Jeff Johnson
19498d7e57 qcacld-3.0: WMA: Remove obsolete support for Class C stats
WMA currently has legacy code to support the tCsrGlobalClassCStatsInfo
data structure. However these stats were specific to the WDI firmware
API used by older generations of hardware, and this interface is not
supported by WMI. In addition the support for these stats has been
removed from HDD.  So remove support for these stats from WMA.

Change-Id: I0614ed2660c886c7e61b0e87058a2f2e522580f3
CRs-Fixed: 2021526
2017-03-23 17:00:39 -07:00
Jeff Johnson
ad0b2c642f qcacld-3.0: Fix nonsense Class A stats field names
The qcacld-3.0 driver inherited the tCsrGlobalClassAStatsInfo data
structure from a prior version of the driver. This structure was based
upon the WDI firmware API used by older generations of hardware, and
this interface is not directly supported by the WMI interface used by
current generations of firmware. However "glue" code was introduced
which converts between the WMI data and this WDI-based representation.

When the glue code was introduced there were some parameters which
were supported by WDI but not WMI, and there were some parameters
which were supported by WMI but not WDI. Rather than remove the fields
for parameters not supported by WMI and add new fields for the
parameters only supported by WMI, for some reason the existing
WDI-only fields were repurposed. This fact is captured in WMA:
	/* rx_frag_cnt and promiscuous_rx_frag_cnt
	 * parameter is currently not used. lets use the
	 * same parameter to hold the nss value and mcs
	 * rate flags */
	classa_stats->rx_frag_cnt = node->nss;
	classa_stats->promiscuous_rx_frag_cnt = mcsRateFlags;

And leads to nonsense code such as the following in HDD:
	nss = pAdapter->hdd_stats.ClassA_stat.rx_frag_cnt;
	rate_flags = pAdapter->hdd_stats.ClassA_stat.promiscuous_rx_frag_cnt;

Rename these fields so that they match the data they hold, and remove
other legacy fields which are unused.

Change-Id: If04a8943ad90d796968c817ff5e634eec23c97f0
CRs-Fixed: 2021520
2017-03-23 17:00:35 -07:00
Krishna Kumaar Natarajan
0103ef8f7c qcacld-3.0: [11AX] Add changes for peer association
Add changes for 11ax peer association.

Add support for the following
 - update data structures to hold HE capabilities
 - setting up HE capabilities in the session
 - updating sta context with correct HE config
 - intersecting self and peer capabilities
 - update derivation of peer phymode to handle 11ax phymode

Change-Id: I46c7a7328d09e74bc0c5b25a67f6273d7eb04d30
CRs-Fixed: 1073481
2017-03-23 12:15:39 -07:00
Krishna Kumaar Natarajan
4f1d7724a8 qcacld-3.0: [11AX] Add dot11mode changes to support 11ax
Add new dot11mode and update the utility functions to derive
the dot11mode based on the userspace config, INI config and
FW capability.

Change-Id: I5780120ef7bc2b78fd596e937fe14a2c8ad88348
CRs-Fixed: 1073481
2017-03-22 09:09:29 -07:00
Sreelakshmi Konamki
075431a9f8 qcacld-3.0: Remove redundant MTRACE logs
This change includes to remove redundant MRACE logs
which are seen very frequent in MTRACE dumps and
remove multiple definition of WMA_SET_TX_POWER_REQ.

Change-Id: Ic5ac780ba3d31a8f2c6e4c10f7af5051864e7f3e
CRs-Fixed: 2020491
2017-03-21 16:15:12 -07:00
Archana Ramachandran
92b4bf1196 qcacld-3.0: Fix SBS is set to true by policy manager in SCC mode
SBS is always set to true by the policy manager. so for the second
connection, if the mode is not DBS, then SBS HW mode is selected.
Since SBS is not supported the second connection fails with invalid
HW mode error.

Change-Id: I817e83cbac194cdfde73a586491d645631692f12
CRs-Fixed: 2021512
2017-03-21 12:31:12 -07:00
Jeff Johnson
72f47475ef qcacld-3.0: WMA: Remove obsolete support for tCsrPerStaStatsInfo
WMA currently has legacy code to support the tCsrPerStaStatsInfo data
structure. However these stats were specific to the WDI firmware API
used by older generations of hardware, and this interface is not
supported by WMI. In addition the support for these stats has been
removed from HDD.  So remove support for these stats from WMA.

Change-Id: I42ba6535ccfaed99df46d389cbb8ddd9d0f9261b
CRs-Fixed: 2020066
2017-03-21 09:47:59 -07:00
Jeff Johnson
dfd360e0fa qcacld-3.0: Redesign wma_get_stats_rsp_buf() buffer length logic
Currently wma_get_stats_rsp_buf() uses a loop to determine which mask
bits are set, and based upon the loop iteration count it determines
the size of the associated buffer. This calculation is fragile,
however, in that it tightly couples the loop iteration count and
eCsrRoamStatsClassTypes enumeration values. Since code under
development will be removing some of the eCsrRoamStatsClassTypes
enumerations, update this logic to remove the tight coupling.

Change-Id: Ia6cda4c8181c44d25a9da27acffe6bd10ca3b4ed
CRs-Fixed: 2020056
2017-03-21 09:47:56 -07:00
Krishna Kumaar Natarajan
d0bbb3c52f qcacld-3.0: [11AX] Add support in WMA to receive HE Capabilities
Add support in WMA to receive and store HE capabilities coming
from extended service ready event.

Add support to receive HE capabilities, convert into OTA type of
internal host structure and pass it to the uppper layer as target
config. Add utility funciton for the conversion as well.

Change-Id: If0ceeb3db74be6cf6893b8e74c710863bab8b41b
CRs-Fixed: 1073481
2017-03-18 16:00:03 -07:00
Abhishek Singh
cfb4448302 qcacld-3.0: Fix compile errors when WLAN_FEATURE_11W is disabled
Fix compilation errors when WLAN_FEATURE_11W is disabled.

Change-Id: I5bed89f0077a51117c57e176568f849293d40ee5
CRs-Fixed: 2019223
2017-03-17 04:59:16 -07:00
Varun Reddy Yeturu
1ce7affdda qcacld-3.0: Handle roam synch propagation failure
Handle Roam synch propagation failure properly.
Disable the roaming in progress flags in HDD.
Send a ROAM STOP command to firmware immediately.

Change-Id: I5f014ab79db553a1df758bf639362f26272a6a23
CRs-Fixed: 2020168
2017-03-16 11:21:33 -07:00
yeshwanth sriram guntuka
945b621a79 qcacld-3.0: Fix memory leak in lim_del_sta
Memory is not freed in lim_del_sta API when response
required is not enabled and wmi service
(WMI_SERVICE_SYNC_DELETE_CMDS) is enabled.

Fix is to free memory in wma peer delete handler.

Change-Id: I8d8a799935ad6199357b4a534e58d54dcbea8d2c
CRs-Fixed: 2015973
2017-03-16 00:55:48 -07:00
Arif Hussain
15115cb9b8 qcacld-3.0: Add support for delay_start_time in scheduled scan request
Add support to pass delay_start_time to firmware, this delay will be
used before starting the first scan cycle.

Change-Id: Ia3043eecc38507b1581fa85b8787b2e7786017de
CRs-Fixed: 2014142
2017-03-15 15:22:41 -07:00
Varun Reddy Yeturu
88f123c804 qcacld-3.0: Ignore RSI if disconnect is initiated
Ignore the Roam Synch Indication from firmware if the
user space has already issued a disconnect before
receiving ROAM_START from firmware.

Disconnect might have cleared the roam profile and will be
sitting in the queue for the PE processing to happen.
If the disconnect is in the queue and a roam synch indication
is received, then check the CSR state from the first callback
of roam synch propagation and bail out there itself.

Disconnect will eventually send a ROAM_STOP command to the
firmware and it will cleanup

Change-Id: I528f552cd601dc9d23f709410115fb0af944899d
CRs-Fixed: 2018928
2017-03-14 23:40:51 -07:00
Selvaraj, Sridhar
4f684bbaf2 qcacld-3.0: Add "g_enable_bcast_probe_rsp" INI and pass it to firmware
Add "g_enable_bcast_probe_rsp" INI and pass the configured value
to firmware for STA vdev as part of vdev attach. Based on this INI,
firmware will send the dwell time IE in probe request.

Change-Id: I446c7d7589534688e04579ed434de0803ed8b4ff
CRs-Fixed: 1113498
2017-03-14 12:57:54 -07:00
Dustin Brown
d5f1294562 qcacld-3.0: Acquire wakelock before sending VDEV_START
The host driver should not attempt to power collapse while pending
VDEV_START commands are in flight. Acquire a wakelock before sending a
VDEV_START request to firmware, and release it upon receipt of
VDEV_START response.

Change-Id: Iccca8ce4213b7527421f6b93fc4e08be9c31f471
CRs-Fixed: 2018066
2017-03-14 11:26:58 -07:00
Dustin Brown
13995f0efc qcacld-3.0: Add gActiveBpfMode ini item
Active Mode Berkeley Packet Filter (Active BPF) is a new feature that
allows firmware to apply BPF even while the Apps processor is active.
There are 3 modes:
 * Disabled: do not apply BPF in active mode
 * Enabled: apply BPF to all packets in active mode
 * Adaptive: apply BPF up to some threshold to avoid performance impact

Add an ini item called gActiveBpfMode to configure the Active BPF Mode
in firmware.

Change-Id: I6cf60d67238802fe1e1662c040910091f5c25bec
CRs-Fixed: 1111400
2017-03-13 14:41:00 -07:00
Dhanashri Atre
09828f1c91 qcacld-3.0: Hash based rx steering
This change includes adding hooks in the data path to
send WMI command to enable LRO or/and configure a hash
seed value

Change-Id: I3f068307f7669c4ff8baa5102e9fb7729d4a348d
CRs-Fixed: 1094775
2017-03-13 14:01:55 -07:00
Nitesh Shah
77442574ca qcacld-3.0: Allow burst scan when SAP is on DFS channel
When SAP comes up on DFS channel, then scan windows scans
only limited APs since NL scan cache will be flushed every
7 secs and scan results shall be read by the wpa_supplicant
only after the scan done indication.

The change is to allow burst scan when SAP is on DFS channel.

Change-Id: Ia1458cf4f4f868f2d0c36b2679118016fd966528
CRs-Fixed: 2017252
2017-03-11 23:21:23 -08:00
Abhishek Singh
e6857812fe qcacld-3.0: Fix for ROC cmd timeout issue with new scan module
When converged scan is enabled all the scan commands are queued to
serialization module from scan module and use struct
scan_start_request pointing to umac_cmd pointer.

Due to this if there is already an scan req going on and ROC is
queued driver fails to find ROC request in csr_get_active_scan_entry()
as the CSR try to interpret umac_cmd pointer as tSmeCmd.
And thus sometime ROC cmd times out.

Fix this by interpreting umac_cmd as struct scan_start_request for
scan cmd instead of tSmeCmd.

Change-Id: I6674a54b60d28d799188261b1e56b0c657c1ac19
CRs-Fixed: 2013212
2017-03-11 12:11:02 -08:00
Nishank Aggarwal
f3f2284d74 qcacld-3.0: Set different scan priority for p2p search and p2p listen
The p2p search should be preempted if there is p2p listen
requested by action frame tx. So p2p listen should always
have high priority than p2p search.

Change-Id: I551e95ab3381bcbf002e67478a82f8ef31b56b5b
CRs-Fixed: 2011260
2017-03-10 16:53:04 -08:00
Kapil Gupta
5cda2251d6 qcacld-3.0: Changes for PER based roaming
DUT should be able to roam to a better access point if current
AP is having congestion/packet error.

This roam also devise a new selection logic for candidate
selection which considers channel congestion and AP capabilities.

Change-Id: I39594e37bd209be2603a4636514e2c9b1a907761
CRs-Fixed: 1090934
2017-03-10 07:19:17 -08:00
Kapil Gupta
e92d91f8df qcacld-3.0: Fix invalid memory access issue in wma_tx_packet
tpSirMacFrameCtl points to tx_frame however after deletion of
tx_packet, tpSirMacFrameCtl pointer is not updated which is
causing invalid memory access.

Add changes to update tpSirMacFrameCtl once tx_frame got deleted.

Change-Id: Ifb10899f0a518a935641af88a7ef45b0a6fd293c
CRs-Fixed: 1103839
2017-03-10 05:14:12 -08:00
Kiran Kumar Lokere
7006e0ad76 qcacld-3.0: Disable Qpower with UAPSD or max ps-poll enabled
Disable Qpower when UAPSD is enabled or if the max ps poll is
configured by user.

Change-Id: If9c747406d65a6f89fa123592c3f9d79724b8ae0
CRs-Fixed: 2017432
2017-03-09 17:09:31 -08:00