Commit Graph

3960 Commits

Author SHA1 Message Date
Ashish Kumar Dhanotiya
8ed432bbaa qcacld-3.0: Cache last connection info correctly
Currently copy of the last connection info is done
incorrectly inside hdd_save_bss_info api.
To address this issue update the memcopy with the
correct structure.

Change-Id: Ibc604650cd1d39c7b19619057427955ba3e4026f
CRs-Fixed: 2307526
2018-09-18 16:17:40 -07:00
Wu Gao
ca416ff63a qcacld-3.0: Apply mlme lfr configuraions
Since refined mlme lfr configures based on converged cfg component,
apply mlme lfr configurations, remove related legacy codes.

Change-Id: Iebda5bbb3c5c68b922b7f6ac1adaf25cccf903a6
CRs-Fixed: 2316494
2018-09-18 12:49:00 -07:00
Dustin Brown
76cd293220 qcacld-3.0: Introduce hdd_contex.psoc
The name 'hdd_psoc' is misleading, since it is not actually an HDD psoc
context. Rather, it is the Object Manager psoc context. Rename hdd_psoc
to psoc for consistency, and to make room for HDD to have its own psoc
context.

As a first step towards this large renaming, introduce a union in
hdd_context such that such both names can exist during the transition
period.

Change-Id: I9971c478c0d1dc111bb20a7cd6614f73ffb0b15d
CRs-Fixed: 2315990
2018-09-18 12:48:50 -07:00
Sourav Mohapatra
49ce4cec0f qcacld-3.0: Add support to send RX stats to framework
As a part of the cfg80211_get_station command, the driver sends TX stats
(tx rate, MCS index, NSS and flags). Currently there is no support to
send the similar RX stats.

Add support to send RX stats to the framework.

Change-Id: Ic66596d118ad1395706db7638da1b4fdef7dc2d5
CRs-Fixed: 2303306
2018-09-18 12:48:47 -07:00
Pragaspathi Thilagaraj
cd6aef0bd3 qcacld-3.0: Add MLME CFG items of MBO INI configs
Add the MBO ini configs to mlme for the following:
1. CFG_MBO_CANDIDATE_RSSI_THRESHOLD
2. CFG_MBO_CURRENT_RSSI_THRESHOLD
3. CFG_MBO_CUR_RSSI_MCC_THRESHOLD
4. CFG_MBO_CAND_RSSI_BTC_THRESHOLD

Change-Id: I9e779c912538973c8281170ec8c212a4f05b7e2e
CRs-Fixed: 2314168
2018-09-18 06:17:05 -07:00
Dustin Brown
4b9dbe62c7 qcacld-3.0: move registration to end of driver load
An upcoming change will add synchronization to the driver load
operation. Effectively, driver load and psoc probe will need to be
exclusive operations. Because driver registration can synchronously
invoke psoc probe, move this registration to the end of the driver load
function. This prepares the way for adding synchronization around the
bulk of the load logic, and releasing it just before registration. This
avoids issues where driver load and psoc probe would otherwise execute
at the same time.

Change-Id: I3a617673ea0d4a56e2c08b2ef2f98f8cbdf42205
CRs-Fixed: 2315976
2018-09-17 17:53:37 -07:00
Dustin Brown
f0f7056644 qcacld-3.0: Refactor __hdd_module_init/exit
In preparation for additional work in this area, refactor the
__hdd_module_init and __hdd_module_exit areas.

* Rename __hdd_module_init to hdd_driver_load
* Rename __hdd_module_exit to hdd_driver_unload
* Add missing error handing in hdd_driver_load
* Address symmetry issues between hdd_driver_load and hdd_driver_unload
* Remove redundant call to hdd_sysfs_destroy_version_interface
* Update hdd_set_conparam to take a signed integer
* Address various other style issues

Change-Id: I8ea936a493bb262abf7d43a816dbf72530efa424
CRs-Fixed: 2315840
2018-09-17 14:24:48 -07:00
Dustin Brown
d585cb3396 qcacld-3.0: Add error handling to component init
During insmod, the various driver components are initialized. HDD,
however, does not pay attention to any of the return statuses. Add error
handling for component initialization in HDD.

Change-Id: Ia8e3114685086964acacdee481a9fec8b7ef8a00
CRs-Fixed: 2314569
2018-09-17 14:24:45 -07:00
Harprit Chhabada
6c641bada4 qcacld-3.0: Populate crypto params
Translate the legacy auth type to crypto auth type.
Set the crypto auth type under vdev object.
Use APIs to translate NL param type to crypto
param type from common.

Change-Id: I7073d35fe1724d37467bf970cf6bac7bc40045d1
CRs-Fixed: 2285045
2018-09-17 12:39:02 -07:00
Wu Gao
93816217da qcacld-3.0: Apply mlme sta configuraions
Since refined mlme sta configures based on converged cfg component,
apply mlme sta configurations, remove related legacy codes.

Change-Id: Ia5989a29378bf33e3c9550a0ae26338aeb966592
CRs-Fixed: 2312079
2018-09-17 10:44:54 +08:00
Rajeev Kumar
1f3e99ad73 qcacld-3.0: Add timer manager and memory debug string
Add timer manager and memory debug string in driver version
global variable such that in offline tool analysis team can
easily find wlan build and version type.

Change-Id: Ie7283d86c0ca38f0b81d407c30da393ff666e51d
CRs-Fixed: 2315915
2018-09-15 03:35:01 -07:00
Rakshith Suresh Patkar
d9f4e610c6 qcacld-3.0: Enable wbuff module
wbuff is a module which maintains a pre-allocated pool of
skbs for each registered module and allocates skbs when
requested.

Change-Id: Ia4d13479d8a1342227a2ecbaf29cc7a89bc5e30b
CRs-Fixed: 2313446
2018-09-14 23:14:48 -07:00
Pragaspathi Thilagaraj
48d273cbf0 qcacld-3.0: Remove legacy INI items of QOS aggregation configs
Remove the legacy INI code from hdd_cfg. Replace the existing
access from hdd_config with new mlme api.

Change-Id: Iddde15330c1ad39a59bd9a3c7ea86af971df61b5
CRs-Fixed: 2313296
2018-09-14 03:12:25 -07:00
Ashish Kumar Dhanotiya
04cc7c2128 qcacld-3.0: Avoid NULL pointer access in apf read memory cb
Add a check to validate hdd adapter to avoid NULL pointer
dereference.

Change-Id: I06d883c213e10b620d8af3f61baaeb483b078bf1
CRs-Fixed: 2240482
2018-09-14 03:12:17 -07:00
Jinwei Chen
ffaa467dff qcacld-3.0: support HE STS Caps setting by INI
Currently user can not configure HE STS capability through
INI, use gTxBFCsnValue that share same INI with VHT to achieve
it.

Change-Id: Ia83462113cdf06e0af8b9f00c968745363aba9b4
CRs-Fixed: 2306083
2018-09-13 07:58:35 -07:00
Wu Gao
d8f3db0fb5 qcacld-3.0: Refine mlme obss ht40 configurations
Refine mlme obss ht40 configurations based on converged cfg component.
Remove related legacy codes.

Change-Id: If4f061a16e9a2a0bba81d1d24aa1f52bbeadacf5
CRs-Fixed: 2311907
2018-09-13 04:52:15 -07:00
Abhishek Singh
5cd19f35d2 qcacld-3.0: Remove SAP FSM dependency from CSA
CSA req changes the SAP FSM state to STOPPING.

Remove this state manipulation by CSA.

Change-Id: I76e78824cdc7acad87e60310d53225596630ea94
CRs-Fixed: 2309229
2018-09-12 22:27:13 -07:00
Lin Bai
ad80a20204 qcacld-3.0: Check channel_count in DCC_GET_STATS command
Invalid channel_count may be sent to driver with
QCA_NL80211_VENDOR_SUBCMD_DCC_GET_STATS vendor command, and may also
pass the sanity check with get_stats_param->request_array_len as
integer overflow, in send_dcc_get_stats_cmd_tlv().
Then it will finally lead to heap overflow when initializing
TLV header for each channel.

Change-Id: I1d81b5fc4de80829433f2a0ab41c964c41f750c3
CRs-Fixed: 2300516
2018-09-12 22:27:10 -07:00
Harprit Chhabada
e8155d3e50 qcacld-3.0: Enable EXTSCAN based on converged extscan component
Enable EXTSCAN based on converged cfg component and remove
legacy codes.

Change-Id: Ia4af89c6a898a936c89c6f3f155609a9c3d98541
CRs-Fixed: 2302197
2018-09-12 17:56:55 -07:00
Liangwei Dong
ac3ddde459 qcacld-3.0: Set drop_bcn_on_chan_mismatch to Scan
Set ini drop_bcn_on_chan_mismatch configuration to
Scan component.

Change-Id: I60acddd69fc99791651def587b90243898ec60e9
CRs-Fixed: 2308731
2018-09-12 17:56:52 -07:00
Yeshwanth Sriram Guntuka
35bc5ccf91 qcacld-3.0: Enable few OCE STA ini by default
Enable oce_enable_probe_req_rate, enable_esp_for_roam
and oce_enable_probe_req_deferral ini by default.

Change-Id: I84aaceb468bac54c97c30f681981296a0666063c
CRs-Fixed: 2312013
2018-09-12 15:55:55 -07:00
Srinivas Girigowda
09625b0222 qcacld-3.0: Fix embedded function name checkpatch warnings
Logging macros already print function name by default,
there is no need to print the function name again as part of the log.

Hence, remove the function name or
wherever required use '"%s...", __func__'

Change-Id: Ib6dc6cc03ef148146b1c626271d5ac3b7345c4bb
CRs-Fixed: 2312593
2018-09-12 11:58:26 -07:00
Vignesh Viswanathan
8c207396ff qcacld-3.0: Set gAutoBmpsTimerValue to 30 seconds by default
Currently gAutoBmpsTimerValue is set to defaut value of 5 seconds
so that after 5 seconds from association completion, the device would
go to power save. However, this would lead to issues if an ADDTS req is
received from the supplicant. The ADDTS req would be sent to the AP but
the AP would not send the ADDTS response immeidately and would buffer it
as the device is in power sleep.

Ideal way is for the framework to control the device power save where
the framework should push the device to power save after connection and
should disable power save before sending an ADDTS request.

However, to avoid cases where the framework fails to send the power
cfg ops to the host after connection leading the FW to the stuck in
full power mode, setting the gAutoBmpsTimerValue to 30 seconds by
default.

Change-Id: Idc8af26174a56cd1afee3c7a4353b4d7ebeac2d7
CRs-Fixed: 2313913
2018-09-12 11:58:22 -07:00
Sandeep Puligilla
b7beb478db qcacld-3.0: Add legacy VDEV manager callbacks
Add legacy VDEV manager callbacks framework.

Change-Id: I8529a54382b3ffdecd25e54a97fc69d6a6a68177
CRs-Fixed: 2312724
2018-09-12 07:08:13 -07:00
Sourav Mohapatra
113685f379 qcacld-3.0: Add support for FW Offload component
This is for adding support for FW offload component. It is responsible
to offload all the ini params that are needed by the firmware. To have
this component, the new files added are

components/fw_offload/dispatcher/inc/cfg_fwol.h
components/fw_offload/dispatcher/inc/wlan_fwol_ucfg_api.h
components/fw_offload/dispatcher/src/wlan_fwol_ucfg_api.c
components/fw_offload/core/inc/wlan_fw_offload_main.h
components/fw_offload/core/src/wlan_fw_offload_main.c
components/fw_offload/dispatcher/inc/wlan_fw_offload_public_struct.h

The fw_offload_main.h is to take care of the public APIs for the
component. The corresponding .c file implements the init/deinit of
the component. The fw_offload_public_struct.h is to define the public
structures needed. The ucfg files are for the APIs that can be called
from other components. The cfg_fwol stores the INIs and CFGs.

Change-Id: I4405b87e6dec15aa94146f8ec550078c3d03b1e6
CRs-Fixed: 2307837
2018-09-12 02:19:15 -07:00
Dustin Brown
ef5fc2d3f2 qcacld-3.0: Invert hdd_alloc_station_adapter()
The bulk of hdd_alloc_station_adapter() sits under the scope of a NULL
check. Invert the conditional to reduce nesting, and address a few other
style issues while we are at it.

Change-Id: Id2e147bc15ede62408ddf7d90245be069a3bff33
CRs-Fixed: TBA
2018-09-12 00:14:06 -07:00
Lin Bai
05195a5483 qcacld-3.0: Fix incompatible pointer compilation error in OCB
Typecast adapter->hdd_vdev to pointer of struct cdp_ctrl_objmgr_vdev
when invoking cdp_vdev_register().

Change-Id: Idc284726e1008ef69ec6ab0b53bc984f2bbb16b5
CRs-Fixed: 2313265
2018-09-12 00:14:03 -07:00
Kiran Kumar Lokere
f1a96f4fa3 qcacld-3.0: Add support to configure the HE OM control support
Add support to configure the HE Operating mode control support.

Change-Id: I97720465109b3b4f2462142901ddbc8a02951723
CRs-Fixed: 2305762
2018-09-11 16:42:01 -07:00
Kiran Kumar Lokere
1f96b4af34 qcacld-3.0: Add support for 11ax draft3.0 spec
Add support for 11ax draft3.0 spec.

Change-Id: I272d9f4ec6b3a2a23ad708265dd0afaf289c1b95
CRs-Fixed: 2294255
2018-09-11 16:41:57 -07:00
Ashish Kumar Dhanotiya
9f72df00fd qcacld-3.0: Add mtrace logging for P2P module
We are transitioning to new logging infrastructure
by using existing mtrace functionality.

Add new logging for complete P2P module.

Change-Id: If49d66ea42a48be0ac6c7a8b4c91d69ebd5fcef9
CRs-Fixed: 2308618
2018-09-11 12:01:40 -07:00
Pragaspathi Thilagaraj
00bd8bc47f qcacld-3.0: Remove legacy ini for chainmask configs
Remove the legacy ini config values defined in hdd_cfg.
Call the mlme cfg get api to retrieve chainmask config values.
Remove the tx_chainmask_cck from cds_config as mlme object is
not initialized during cds_open. Call mlme cfg api during
wma_open to populate the tx_chainmask_cck value.

Change-Id: If48aeb62cf35e2e604be2b72845b8e98c5c313dc
CRs-Fixed: 2310382
2018-09-11 12:01:28 -07:00
Qiwei Cai
ba95ce632f qcacld-3.0: Featurize BUILD_DIAG_VERSION
Featurize BUILD_DIAG_VERSION to compile out to save memory.

Change-Id: Ib6b6c8d197556a9457e600dd5e802f7e50f6242d
CRs-Fixed: 2301487
2018-09-11 08:44:03 -07:00
Dundi Raviteja
04037a171f qcacld-3.0: Scanning failed due to reassociation is in progress
If driver gets connect command with bssid hint, fast reassoc command
is sent to FW and roaming_in_progress is set to 1. In another thread
while disconnecting, vdev down is sent to FW. As vdev is down fast
reassoc command fails in FW and host will not get response, so
roaming_in_progress will never set to 0.

To address this issue, set roaming_in_progress to 0 after disconnection.

Change-Id: If9c64568353ed01a161cc47c6261f4190c0fb93c
CRs-Fixed: 2305830
2018-09-11 08:43:59 -07:00
Kiran Kumar Lokere
427a20f452 qcacld-3.0: Set the aggr size to FW during BA buff size config
Set the aggregation size to FW with BA buffer size value to
update the number of packets in aggregation.

Change-Id: I5d120b60c3dfb4b6953222da5516e793dd3fb40d
CRs-Fixed: 2301335
2018-09-10 20:41:10 -07:00
Dustin Brown
1a20b08cd1 qcacld-3.0: Remove DRIVER_MODULES_OPENED
The "open" state only comes into play once, when the wlan driver is
first loaded. It represents a driver state that is neither fully up, nor
down, as the soc has been probed, but many internal data structures have
not been initialized yet. After the first interface up operation,
however, the driver moves to the "enabled" state, and can never re-enter
the "open" state.

This half-up driver state causes a number of difficult to deal with side
effects, without adding much value. Simply remove the state, instead moving
straight into the "enabled" state on wlan load instead. Thus, moving
into the idle "closed" state after wlan load will look exactly the same
as it does  after the last interface is downed.

Change-Id: I4ec1268eb491fec04a78b90e51c6e616d95e019e
CRs-Fixed: 2295921
2018-09-07 23:23:44 -07:00
Srinivas Girigowda
3dce784021 qcacld-3.0: HDD: Fix checkpatch return void warnings
Fix checkpatch return void warnings.
void function return statements are not generally useful.

Change-Id: I62f8720940a455345becdfa4043f1f5fdac9769d
CRs-Fixed: 2311614
2018-09-07 23:23:40 -07:00
Srinivas Girigowda
d241288a14 qcacld-3.0: HDD: Fix checkpatch braces issues
Fix checkpatch braces issues.

Change-Id: I0019cd51e9df1c99b67220b44fb1044d46747c9f
CRs-Fixed: 2311614
2018-09-07 23:23:36 -07:00
Srinivas Girigowda
a19eafd1ba qcacld-3.0: HDD: Fix checkpatch open brace issues
Fix checkpatch open brace issues.

Change-Id: Ia7590ad80e03b7abb2ae7d6ca364a04ef198c3c3
CRs-Fixed: 2311614
2018-09-07 23:23:32 -07:00
Srinivas Girigowda
5033534f74 qcacld-3.0: HDD: Fix checkpatch line spacing issues
Fix checkpatch line spacing issues.

Change-Id: Ib107ef27c2d39c84113b50c5d6cd4fb778f62ed4
CRs-Fixed: 2311614
2018-09-07 23:23:28 -07:00
Srinivas Girigowda
683726a56b qcacld-3.0: HDD: Fix checkpatch code indent issues
Fix checkpatch code indent issues.

CRs-Fixed: 2311614
Change-Id: Iee0010a4a78f7da094a7459fd60a952277edec4b
2018-09-07 23:23:24 -07:00
Dustin Brown
07901ecb55 qcacld-3.0: Rename hdd_pdev to pdev
The name 'hdd_pdev' is misleading, since it is not actually an HDD pdev
context. Rather, it is the Object Manager pdev context. Rename hdd_pdev
to pdev for consistency, and to make room for HDD to have its own pdev
context.

Change-Id: Ie27e4b21d83865474bd464ba2c3948a0684de29b
CRs-Fixed: 2311497
2018-09-07 19:02:23 -07:00
Dustin Brown
89fa06ec3a qcacld-3.0: Rename hdd_vdev to vdev
The name 'hdd_vdev' is misleading, since it is not actually an HDD vdev
context. Rather, it is the Object Manager vdev context. Rename hdd_vdev
to vdev for consistency, and to make room for HDD to have its own vdev
context.

Change-Id: I6186d010404c0a7b1e25590d87e5350195faba80
CRs-Fixed: 2311435
2018-09-07 17:22:45 -07:00
Dustin Brown
6470aba31f qcacld-3.0: Cancel iface_idle_work in HDD exit
The interface idle timeout work is started at the very end of the SoC
probe process. During rmmod, this timer is proactively canceled, but a
race between probe and rmmod means this cancel is not deterministic. The
mirror operation to probe is remove, so cancel this work at the
beginning of the remove process. This preserves symmetry between probe
and remove, and also deterministically cancels the work, since probe and
remove are properly synchronized.

Change-Id: Idfd68c0ed638dbe810db72d64f301018db45d522
CRs-Fixed: 2309533
2018-09-07 13:57:25 -07:00
Qiwei Cai
1c52ef67ba qcacld-3.0: Optimize struct reg_table_entry definition
Optimize struct reg_table_entry definition by means of
alignment and data type declarations to save memory.

Change-Id: Ib97541b0868416d1d797d8326e265e9789a040da
CRs-Fixed: 2301744
2018-09-07 09:25:26 -07:00
Rajeev Kumar Sirasanagandla
4f20b67e7a qcacld-3.0: Add debugfs support for roam scan stats
Add debugfs entry to get last five roam scan stats info which includes
old bssid, new bssid, roaming candidates etc., for STA interface.

Change-Id: Ied66beb270d97b6e17a6116c1be0e82783094519
CRs-Fixed: 2203885
2018-09-07 04:43:53 -07:00
Ashish Kumar Dhanotiya
12f682166b qcacld-3.0: Add ini to enable/disable Mtrace logging
Add ini to configure Mtrace log level for all the Modules.

Change-Id: I7b2a2d7c4ebeb9731365bd3a33c340ca74717944
CRs-Fixed: 2310401
2018-09-07 03:04:01 -07:00
Dundi Raviteja
1b469fdd1a qcacld-3.0: Remove iwpriv support for set ppdu duration
Remove iwpriv support for set_ppdu_duration.

Change-Id: Id80dc1938875ae55bd8ed6bf9a0b6841644aba6f
CRs-Fixed: 2301988
2018-09-07 03:03:58 -07:00
Pragaspathi Thilagaraj
f4cc58b320 qcacld-3.0: Add MLME CFG items of sap/sta erp protection
Add the following SAP/STA protection ini and cfg parameters to MLME cfg:
CFG_PROTECTION_ENABLED       - CFG
CFG_FORCE_POLICY_PROTECTION  - CFG
CFG_IGNORE_PEER_HT_MODE_NAME - INI

Change-Id: I3763d62c6aa4ae79a5a31dfac248e8367b6369ad
CRs-Fixed: 2310378
2018-09-07 01:29:17 -07:00
Dustin Brown
ad698aef12 qcacld-3.0: Update country code from features init
hdd_reg_set_country() validates the hdd context, which returns an error
if start_modules_in_progress is true. This was the motivation behind
I4378438873ffa72c0fce415ade65b91b90e2c84a, which effectively moves the
call to hdd_reg_set_country() to after start modules is complete.
However, all of the callers to hdd_reg_set_country() already validate
the hdd context, so this check is redundant. This means
I4378438873ffa72c0fce415ade65b91b90e2c84a was unnecessary. As this
change also brought with it some technical debt in the form of
additional driver_status checks, simply remove the validate hdd context
check from hdd_reg_set_country(), and replace the original call site.

This change is also necessary to enable the removal of the
DRIVER_MODULES_OPENED state (I4ec1268eb491fec04a78b90e51c6e616d95e019e).

Change-Id: I5a0d8a8407969275f023431095ff6205ef515b62
CRs-Fixed: 2310446
2018-09-06 22:22:33 -07:00
Jeff Johnson
0c8dbc37c4 qcacld-3.0: Refine the extscan reset significant change logic
Make the following updates to the extscan reset significant change
logic:
1) Exclusively use the Unified WMI data structures.
2) Update the HDD<=>SME interface to enforce the contract that SME
   must not make any assumptions about the buffers provided by HDD.

Change-Id: I9b63924f4219f6d3567e3ee2b1a31e1a9ce3bc29
CRs-Fixed: 2309570
2018-09-06 20:34:23 -07:00