Commit Graph

311 Commits

Author SHA1 Message Date
Venkata Sharath Chandra Manchala
8398563492 qcacld-3.0: TxRx statistics for Lithium datapath
Introduce a new iwpriv command txrx_stats to
print both host and firmware stats for Lithium
chipset

Change-Id: If37b798a117446e9fbb369823977fa312872ed48
CRs-Fixed: 2017426
2017-03-22 17:55:36 -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
Manjeet Singh
1a376cea13 qcacld-3.0: Pass proper values to bit manipulation methods to avoid panic
qcacld-2.0 to qcacld-3.0 propagation

Observed kernel panic due to improper arguments passed to kernel bit
manipulation functions (like set_bit, clear_bit etc.) i.e these
functions expects bit positions as its first argument but bit mask
values are being passed.

To fix these issues ensure below points:
   - Pass bit position as a first argument to bit manipulation
     functions.
   - Re-define MACROs which gives false impression of bit mask values
     with their naming convention.

Change-Id: Ief8cd83b05f01a0926f91c0e9fb461ddd498e05e
CRs-Fixed: 981050
2017-03-21 13:25:06 -07:00
Rajeev Kumar
662d75d26b qcacld-3.0: Purge shutdown notification before wma_close
WMA registers for shutdown notification and during wma_close
WMA events are destroyed which are accessed from WMA shutdown
callback. Hence make sure to purge shutdown notification 1st
before calling wma_close.

Change-Id: I868a835f3da52596c0451f9c99638dbc97ea6abe
CRs-Fixed: 2018911
2017-03-14 20:58:01 -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
Varun Reddy Yeturu
a578414c8a qcacld-3.0: Handle disconnect requests during LFR3 roaming
Propagation from cld3.0-1.1 to cld3.0-2.0

Upper layer can send cfg80211 disconnect command anytime in the life
of a connection. It arrive when firmware roaming may have started,
completed, failed, etc. Processing of roam events may collide with
processing of disconnect command in the host driver.

Defer the hdd disconnect command if roaming has started. Upon completing
roaming send the deferred disconnect command to sme which will
eventually complete the requested disconnect.

If disconnect is deferred during roaming, then do not send the
new roam event to supplicant since it is not expected and upon
honoring the disconnect later, a disconnect event would be
sent to supplicant.

Remove the earlier workaround done to send a try again error message
to upper layers upon receiving a disconnect request when roaming
is in progress

Firmware can now handle the ROAM_SCAN_OFFLOAD_STOP command even
if it is in the middle of roaming operation. Hence remove this
check in SME.

Add LFR3 roaming state to the cds_is_connection_in_progress API since
it currently captures only LFR2 roaming states.

Change-Id: Id352d94b41f0766889ceebd0b57b2c566ce3ca42
CRs-Fixed: 1114853
2017-03-12 21:40:17 -07:00
Nitesh Shah
c8c444042c qcacld-3.0: Add 160/80+80 MHz support for STA mode
Allow 160 MHz and 80+80 MHz support in concurrency mode.
Also add support for 160 MHz and 80+80 MHz in VHT Capabilities IE
in STA assoc request frame.

Change-Id: Id3aab3308c68d0a623d5c4916e1bd46c6deaedde
CRs-Fixed: 2014380
2017-03-10 18:30:56 -08:00
gbian
62edd7e2db qcacld-3.0: Add ini keys for WRR tx scheduler tuning
qcacld-2.0 to qcacld-3.0 propagation

Add below four keys to allow user to tune WRR TX scheduler params.
Each key is mapping to one AC defined in data path module through
OL_TX_SCHED_WRR_ADV_CAT_CFG_SPEC.
	gEnableTxSchedWrrBE
	gEnableTxSchedWrrBK
	gEnableTxSchedWrrVI
	gEnableTxSchedWrrVO

Change-Id: I5c34b604297d83673ea065243cc58c3f2180ff3e
CRs-Fixed: 1020141
2017-03-08 15:54:49 -08:00
Mukul Sharma
4c60a7ea5b qcacld-3.0: Add Suspend and Resume support in PMO
Add Suspend and Resume support in PMO.

Change-Id: Iba16643adf1cbd997138c740345e40c00c8e81f6
Crs-Fixed: 2015366
2017-03-08 13:00:46 -08:00
Srinivas Girigowda
0a3057e6d2 qcacld-3.0: Remove obsolete header file 'cds_pack_align.h'
Remove obsolete header file 'cds_pack_align.h'.

Change-Id: I26004b7b050554719dbd4cc8c193757345965727
CRs-Fixed: 1109855
2017-03-07 11:33:00 -08:00
Nitesh Shah
e635975954 qcacld-3.0: Teardown TDLS connection when TDLS not allowed
When TDLS exists and new virtual interface is added, then
TDLS gets teardown. But TDLS connection tracker is disabled
only when new connection comes up successfully. When STA
interface is present and TDLS is running and SAP is started,
TDLS gets teardown while adding new virtual interface. But
TDLS gets formed again if there is delay in starting BSS.
Thus, TDLS gets formed, but TDLS connection tracker gets
disabled.

The change is to teardown TDLS links if TDLS connection
tracker is disabled in cds_incr_active_session().

Change-Id: I0ae6526ad0aa321b666e62d09c2ca5b1be8f9157
CRs-Fixed: 2010694
2017-03-03 13:13:07 -08:00
Nitesh Shah
f5765beb37 qcacld-3.0: Avoid race condition to get pcl while stopping P2P GO
In the case of concurrency, considering STA+P2P-GO, if P2P-GO is
removed, then cds_decr_session_set_pcl() will be called from two
contexts mc_thread and supplicant. Thus, if race occurs, then
cds_store_and_del_conn_info() will remove STA temporarily for one
caller, and it simply returns for second caller. As
cds_conc_connection_info stores garbage values for the second
caller, thus, new interface is created with junk variable.

The change is to avoid the race condition for calling
cds_decr_session_set_pcl() in two contexts. The change is also
to initialize cds_conc_connection_info() with zero before simply
returning because of failure in cds_store_and_del_conn_info() to
avoid creating new interface with junk values.

Change-Id: I7bc4dcea6dfb66954f2cead607eef303df62e6d6
CRs-Fixed: 2009364
2017-03-03 13:13:05 -08:00
Yu Wang
c7db7117a4 qcacld-3.0: fix compile error caused by QCA_CONFIG_SMP
Some functions/structs are defined only when
QCA_CONFIG_SMP is enabled, however, they
are also used when QCA_CONFIG_SMP is disabled,
which will cause compilation errors.
Move the definition of these functions/structs
out of macro QCA_CONFIG_SMP.

Return type of cds_alloc_ol_rx_pkt() is not
void, but there is no return statement for
it when QCA_CONFIG_SMP is disabled.
Add 'return NULL' for cds_alloc_ol_rx_pkt().

Change-Id: If6f4298c27f0089219bbceb4a9d0ba1a295f8dcd
CRs-Fixed: 2010568
2017-03-02 19:59:03 -08:00
Arun Khandavalli
cc544b3909 qcacld-3.0: Add support in driver to do sap restart during SSR
qcacld-2.0 to qcacld-3.0 propagation

Presently, during subsystem restart Host is sending sap restart
indication to framework(via carrier off) to do SAP unload/load.
But SAP restart functionality is removed in framework when the
carrier off event is received, leading SAP fails to come-up
after subsystem restart.

Add support in driver to do SAP restart internally without sending
restart indication to framework, during subsystem restart.
This feature is controlled by ini param 'gEnableSapInternalRestart'
and by default it's enabled.

Change-Id: I76cb73c1887d4d8124cd9a1c29b9aac47642072a
CRs-Fixed: 1105651
2017-03-02 12:22:27 -08:00
Sreelakshmi Konamki
b53c629c0f qcacld-3.0: Generate bug report if scan rejected by driver
qcacld-2.0 to qcacld-3.0 propagation

Driver will not allow scan if connection is in progress.

Add driver changes to generate bug report and trigger SSR
if current session id, rejected reason matches with last rejected
sesssion id, reason and time delta between current time and
last rejected timestamp is greater than 5 mins

Change-Id: Ic64a6fd443104b291b5b7f6cda3bfbe8273c671a
CRs-Fixed: 1081489
2017-03-02 10:03:43 -08:00
Archana Ramachandran
cc0ffb1f56 qcacld-3.0: Skip moving to single MAC mode after 2.4 Ghz connection for 2x2 DBS
Since 2.4 Ghz connection is by default on MAC1 for 2x2 DBS, skip the
optimization of moving to single MAC mode after 2.4 Ghz connection.

Change-Id: I09c2491f59b020e9c691c74c613e39fa250844f4
CRs-Fixed: 2008744
2017-02-21 22:33:11 -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
Nitesh Shah
a3dfea3ebb qcacld-3.0: Avoid new connection while HW mode change is issued
In the case of concurrency, when the session decrements, the
opportunistic timer is started. After a while, when the
opportunistic time is expired, and the hw mode change for SMM
is issued, and the same time new interface comes up, then the
new forms MCC with the existing connection instead of forming
DBS.

The change is to avoid the race condition to form MCC instead of
DBS.

Change-Id: I977039138509676b964ba089e3cb479cd16968bb
CRs-Fixed: 2006350
2017-02-15 06:35:20 -08:00
Agrawal Ashish
e69b45e530 qcacld-3.0: Fix max Tx power to 22
Hardware support max tx power as 22 instead of 30.
Fix this by supporting max power as 22.

Change-Id: I3645b47a575ffa8b8bcc85fe0dcbba4a630b078b
CRs-Fixed: 2005749
2017-02-14 12:04:09 -08:00
Kapil Gupta
086c6206de qcacld-3.0: Add changes to collect channel info from regulatory
Vendor ACS requires regulatory channel info for each channel.

Add changes to collect channel information of each channel
and save it in sap config.

Change-Id: Ib96c3f7ddfc8476306e9a13127472be9dd0a9488
CRs-Fixed: 1110061
2017-02-13 23:01:19 -08:00
wadesong
9b81907d27 qcacld-3.0: Add conditional check for SAP key clearing
qcacld-2.0 to qcacld-3.0 propagation

SAP keys should be retained at HDD layer when wlan driver
performs internal restarting due to MCC to SCC switch

Change-Id: I5458f7602a0e3851d678981e107ef3b5bda17dd7
CRs-Fixed: 1095584
2017-02-10 08:09:57 -08:00
Sameer Thalappil
ec2e9c7553 qcacld-3.0: Add NULL check in cds_trigger_recovery()
Add a NULL check before de-referencing CDF context pointer.

CRs-Fixed: 2004243
Change-Id: I0aa644d9ad2d154526ee015e57e9132c26c5fd91
2017-02-09 15:50:17 -08:00
Krunal Soni
e3399904cc qcacld-3.0: Deregister legacy & target queue callbacks upon scheduler down
Driver is missing couple of deregister handler while bringing down the
scheduler

Change-Id: I8fc181e621d56290623419bfc0fde896522e91e4
CRs-Fixed: 2001133
2017-02-07 15:02:34 -08:00
Hanumanth Reddy Pothula
e3fafb4bbb qcacld-3.0: Remove unnecessary log in cds_get_log_indicator
There is a possibility of excessive logging by logging thread
(cds_get_log_indicator) if SSR is in progress, which may lead
to thread stuck and thereby WD bark may happen.

Remove unnecessary log in cds_get_log_indicator, to stop excessive
logging, due to which thread is stuck.

Change-Id: I1747d92b23e208903452ad43b8c84c7b444db922
CRs-Fixed: 2001035
2017-02-03 04:49:45 -08:00
Rajeev Kumar
39ff01fc84 qcacld-3.0: Remove obsolete cds_mq.h and cds_mg.c files
After control path scheduler componentization cds_mq header and
source files are not needed hence delete obsolete cds_mq.h and
cds_mq.c files.

Change-Id: I9cef1086e805d0e5ea7b377d0a2de3512b452572
CRs-Fixed: 2000240
2017-02-02 18:38:56 -08:00
Rajeev Kumar
e406d65d70 qcacld-3.0: Move legacy UMAC posting API to legacy file
After control path scheduler componentization cds_mq.[ch]
needs to be deleted hence remove legacy UMAC message posting
API to WMA legacy file.

Change-Id: I781a7586cb6dbf635e283eacd38c768a6b7f6d3e
CRs-Fixed: 2000234
2017-02-02 18:38:55 -08:00
Rajeev Kumar
149787189e qcacld-3.0: Remove obsolete macro HIGH_PRIORITY
After control path scheduler componentization cds_mq.h
HIGH_PRIORITY macro is no longer used hence remove it.

Change-Id: Ied7a2078753686ee2d885b072f2f03a1fd810e9c
CRs-Fixed: 2000214
2017-02-02 18:25:34 -08:00
Rajeev Kumar
0acd92503e qcacld-3.0: Remove obsolete macro LOW_PRIORITY
After control path scheduler componentization cds_mq.h
LOW_PRIORITY macro is no longer used hence remove it.

Change-Id: I633e0eb8097eb1d035a4200018f3d96d6f34b59b
CRs-Fixed: 2000211
2017-02-02 18:25:16 -08:00
Dhanashri Atre
8f044ed72a qcacld-3.0: Add callback to query for DBS
Add a callback to query the control path from
the data path on whether DBS is supported

Change-Id: I4e757624ec0229c5fb8d05862b4c3035f5b00f2f
CRs-Fixed: 1116939
2017-02-01 16:23:31 -08:00
Rajeev Kumar
a88b2dcf85 qcacld-3.0: De-Register target_if_message queue properly
Currently target_if_message queue is registered using target if
module id but de-registered using legacy WMA module ID. Add changes
to de-register target_if_message queue using target if module ID.

Change-Id: I6bc24e4be102ef17da27f09cfb2655465dd3b1e2
CRs-Fixed: 2000203
2017-02-01 14:18:40 -08:00
Selvaraj, Sridhar
a7dc2381e7 qcacld-3.0: Fix memleak in psoc create sequence
After psoc create is successful, destroy and release
psoc if cds open fails.

Change-Id: Ia0bf593511d0b90a4a21510ec8e80d85f126443c
CRs-Fixed: 1116856
2017-02-01 03:22:22 -08:00
Houston Hoffman
1a77757b42 qcacld-3.0: Initialize lock-stats feature
The lock stats feature will keep track of all initialized spinlocks.
The initialization and deinitialization functions are needed for
creating the tracking structures.

Change-Id: I69e08e85cb5105c9d5f3dae8b24121e2cb5726ff
CRs-Fixed: 1117098
2017-01-31 18:53:23 -08:00
Kabilan Kannan
5ce85b8ac2 qcacld-3.0: Remove TDLS tracker update from concurrency functions
All TDLS connection tracker toggle operations is moved into policy
manager. Moreover concurrency functions set_concurrency() and
clear_concurrency() is going to be deprecated soon, so remove
TDLS connection tracker update from those functions.

Change-Id: I13d41d2a5dab154239d88249ea1d2a652ac5e6c7
CRs-Fixed: 1113457
2017-01-31 14:03:05 -08:00
Houston Hoffman
57c36d7997 qcacld-3.0: Support QDF_MODULE_ID_TXRX in cds_set_context
We should use the context id instead of directly referencing
the context pointer name from the cds context.

Change-Id: I80f4822b37c920f37b70162890c02369b2972ee9
CRs-Fixed: 2000089
2017-01-30 17:33:19 -08:00
Houston Hoffman
e5ec049121 qcacld-3.0: Fix double free of ol_txrx pdev
Converged pdev_detach is responsible for freeing the context.
Legacy api needs to conform.  Now the removal of the pdev from
the cds context needs to be done with the api that does not free
the context.

Change-Id: I4430a3bae1658e4e1accc457a572c67c9ce6f58f
CRs-Fixed: 2000089
2017-01-30 17:33:18 -08:00
Mahesh Kumar Kalikot Veetil
319dbcde3d qcacld-3.0: Initialize debugfs support in QDF
Invoke QDF debugfs API from CDS to initialize and cleanup.

Change-Id: I8b67f46e94b08babee04102d65b7803e4db1da00
CRs-Fixed: 1083792
2017-01-25 18:33:10 -08:00
Houston Hoffman
9e06e54d26 qcacld-3.0: Do mem_init before calling qdf_spinlock_create
Doing mem_init first allows other qdf_features to allocate
memory for profiling and tracking using the qdf_mem_alloc
apis.

Change-Id: Id4f830a83a745763058ff2f05138b80558fe1d1f
CRs-Fixed: 1100552
2017-01-25 18:33:08 -08:00
Yuanyuan Liu
10fc3d328d qcacld-3.0: Switch to new recovery APIs
Swith to new recovery APIs with dev instance and recovery reason.
As recovery could have different mode and be target specific.

Change-Id: I26a1a2a0d23a687a5babcaf4ba4e5c6e788fedac
2017-01-23 14:36:08 -08:00
Rajeev Kumar
229f1d3cc0 qcacld-3.0: Remove obsolete CDS mq APIs reference from CDS module
After control path scheduler componentization CDS message queue
APIs are no longer used hence remove obsolete CDS mq APIs from CDS
module.

Change-Id: I7d83783d9fd126bb8b17a5c3292eac91c0966280
CRs-Fixed: 1114375
2017-01-23 13:06:14 -08:00
Rajeev Kumar
8eaedf65a1 qcacld-3.0: Remove obsolete CDS mq APIs reference from SME module
After control path scheduler componentization CDS message queue
APIs are no longer used hence replace CDS mq APIs in SME by
scheduler mq APIs.

Change-Id: I645209741a602798fc077a50ac66de198e292038
CRs-Fixed: 1114363
2017-01-21 22:01:01 -08:00
Nitesh Shah
a5ba4e1445 qcacld-3.0: Call cdp_update_mac_id after hw_mode change in fw
When MAC0 is in 2.4G and new connection is coming in 5G, then MAC0
connection is shifted to MAC1, and new connection comes in MAC0.
But in this process, cdp_update_mac_id() is not called while
shifting from MAC0 to MAC1.

Fix is to call cdp_update_mac_id() after hw_mode change occurs
in the firmware, thus updating mac_id and corresponding vdev_id for
the interface whose mac_id or vdev_id get shifted.

Change-Id: I294c26f7d5054e42cdc116e8ae878954904056b5
CRs-Fixed: 1109511
2017-01-21 04:18:54 -08:00
Abhishek Singh
562aad6cf8 qcacld-3.0: Enhance 5/10 MHz feature logging
Add logs to enhance 5/10 MHz feature logging

Change-Id: Ied2489185721e3c547ee392a9c46b5a3d733ad74
CRs-Fixed: 1108818
2017-01-19 02:42:07 -08:00
Rajeev Kumar
9fdfbe06ee qcacld-3.0: Remove obsolete CDS message queue init/deinit APIs
After control path scheduler componentization CDS message queue
init/deinit APIs are no longer used hence remove them.

Change-Id: I65c14872bf20412eb1014deac0172f2bfacc0f0f
CRs-Fixed: 1111033
2017-01-18 13:33:18 -08:00
Krunal Soni
a6e505bc7b qcacld-3.0: Fix compilation error and disable unit test framework
for policy manager component, unit test framework has been created.
this unit test framework can be enabled or disabled through Kbuild
flag. As policy manager is matured, unit test framework needs to
be disabled.

While disabling unit test framework, couple of compilation errors have
been observed. Fix those compilation errors.

Change-Id: I2a3ee57cc082e5ebc598f0aea2d05f31fb878732
CRs-Fixed: 1110876
2017-01-17 11:12:37 -08:00
yeshwanth sriram guntuka
310b3ac34c qcacld-3.0: Add support for vendor abort scan
Add vendor abort scan which takes adapter and scan
id as input. Supplicant may abort a scan if a
preferred AP or P2P peer device is found.

Change-Id: Ia9cbf4bb38d2111b1fcf42a1e1f51d1049f5a9ab
CRs-Fixed: 1090800
2017-01-16 11:31:07 -08:00
Krunal Soni
4274f36bcd qcacld-3.0: Allow full spectrum scan when agile & aDFS scan supported
Traditionally full spectrum scan on STA/CLI is not allowed when SAP/GO is
already present on DFS channel.

With new generation of hardware, agile scan and agile DFS scan features
are supported which will allow hardware to do full spectrum scan even if
SAP/GO is present on DFS channel.

Change-Id: I7e5a21601642e0d6afef73beeecf80a3e0475909
CRs-Fixed: 1103730
2017-01-12 13:12:51 -08:00
Tushnim Bhattacharyya
d07dc906c7 qcacld-3.0: Fix for 2x2 DBS capability
Fix the way DBS capability is read from FW dev cap. Also, add HW mode
request for 2x2 DBS.

Change-Id: I935a2d0f4a7eed1517a3263fb8b29838f135f91e
CRs-Fixed: 1068000
2017-01-11 20:54:30 -08:00
Naveen Rawat
b56880cd83 qcacld-3.0: Match the timeout values at HDD with SME cmd timeout
Change the timeout values at HDD to match sme cmd timeout in all the
instances where HDD is sending cmd via SME command queue.

Change-Id: I00337169804b9ce71562cb114e4c2b92a7534dba
Crs-Fixed: 1100854
2017-01-11 09:06:29 -08:00
Arunk Khandavalli
cfe32d1cd7 qcacld-3.0: Validate if tlds is enabled before setting connection tracker
In the present scenario driver checks for  eTDLS_SUPPORT_DISABLED
before enabling the connection tracker for tdls mode. But if the
tdls is disabled from the ini or disabled in the firmware eTDLS_SUPPORT_NOT_ENABLED
is set in the tdls_mode. Checking for only eTDLS_SUPPORT_DISABLED is resulting
in enabling the connection tracker which tries to access the tdls_ctx
which is NULL.

To mitigate the issue also check for eTDLS_SUPPORT_NOT_ENABLED in the tdls_mode
before enabling the connection tracker.

CRs-Fixed: 1096830
Change-Id: I1e13af6b63aa058c19117efa99563540aa02da0b
2017-01-11 09:06:15 -08:00
Poddar, Siddarth
a78cac3fe6 qcacld-3.0: Relocate and rename cds_flush_cache_rx_queue()
API cds_flush_cache_rx_queue() is added as part of propagation
from qcacld-2.0. This function does not belong in CDS but
instead belongs in TXRX because corresponding function in
qcacld-2.0 is tl_shim_flush_cache_rx_queue() which is a datapath
function.

CRs-Fixed: 1106306
Change-Id: I6ca10fa9ebb7ad7cdc0b54ff7ed2cc0595b7d82d
2017-01-10 23:08:47 -08:00