Commit Graph

3989 Commits

Author SHA1 Message Date
Dundi Raviteja
fb9357aa38 qcacld-3.0: Create psoc in hdd_context_create just after cfg_parse
HDD config params are getting used before creating and storing psoc
in hdd context which may cause NULL pointer dereference of psoc.

To mitigate this create psoc and parse cfg ini params just after
cfg_parse() in hdd_context_create().

Change-Id: Ida2b81eef0ebbfba2749ca89b63980201830a5e2
CRs-Fixed: 2321959
2018-09-27 20:24:21 -07:00
Harprit Chhabada
1111aa3d6a qcacld-3.0: Fix the compilation after disabling CONFIG_CRYPTO_COMPONENT
wlan_crypto_set_vdev_param() used in hdd_populate_crypto_auth_type(),
hdd_populate_crypto_akm_type() and hdd_populate_crypto_cipher_type()
is not defined when CONFIG_CRYPTO_COMPONENT is disabled

Change-Id: I5bccf391886d4db48a79ba67b903180ea626ad37
CRs-Fixed: 2321455
2018-09-27 20:24:17 -07:00
Arunk Khandavalli
987c8d514a qcacld-3.0: cleanup the interface if it went down during SSR
If the interface down is issued during the SSR the driver simply
rejects the interface down and silently initializes during the
reinitialization. This can result in resource leakages and also
results in upper layer and driver out-of-sync.

Hence mark the adapter that interface went down during ssr and
cleanup the same during the end of reinitialization so we can
cleanup all the resources.

Change-Id: I426eff3be09abdbafeaf7501df551ea7c49a0f47
CRs-Fixed: 2256433
2018-09-27 16:36:41 -07:00
Pragaspathi Thilagaraj
84b728464a qcacld-3.0: Check for zero mac during hdd adapter open
When zero mac address is configured on nvram, the
hdd_open_adapter accepts the value and passes this zero mac to
csr_session_open where the self mac address is stored as zero
value mac and peer creation is done with the same. When peer
delete is sent to firmware with this mac, firmware asserts.

Add check to validate mac address value is not zero.

Change-Id: I077c29c98ef4e1b11e4c587224acd4405629fa83
CRs-Fixed: 2310499
2018-09-26 16:58:34 -07:00
Dustin Brown
05d8130311 qcacld-3.0: Remove hdd_context.hdd_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.

After I1aa67d0554400ed552dc488805ba3421531a26c3, replace the
remaining instances of hdd_psoc and finally remove hdd_psoc from
hdd_context.

Change-Id: If9a4941e18a75563f9ab978bd4b38bd1145e4ada
CRs-Fixed: 2312429
2018-09-26 16:58:31 -07:00
gaurank kathpalia
e5a17e4acb qcacld-3.0: Add MLME-CFG items for feature flags
Add these cfg mlme items for feature flags:-
1. ACCEPT_SHORT_SLOT_ASSOC_ONLY
2. HCF_ENABLED
3. RSN_ENABLED
4. 11G_SHORT_PREAMBLE_ENABLED
5. 11G_SHORT_SLOT_TIME_ENABLED
6. CHANNEL_BONDING_MODE
7. CFG_BLOCK_ACK_ENABLED

Change-Id: Id55299ece0169d40608df8508fbd768bb8aed741
CRs-Fixed: 2315584
2018-09-25 15:33:37 -07:00
Abhishek Singh
0b0105f565 qcacld-3.0: Enable logging for common mlme and vdev state machine
Enable logging for common mlme and vdev state machine.

Change-Id: I4b64101a66a4f19c6d84d1d0bb7f4927dd1e2c9b
CRs-Fixed: 2321730
2018-09-25 15:33:28 -07:00
Dustin Brown
1dbefe660e qcacld-3.0: Replace hdd_psoc with 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.

After the introduction of hdd_context.psoc in
I9971c478c0d1dc111bb20a7cd6614f73ffb0b15d, replace more instances of
hdd_psoc with psoc.

Change-Id: I1aa67d0554400ed552dc488805ba3421531a26c3
CRs-Fixed: 2315992
2018-09-25 13:52:40 -07:00
Sourav Mohapatra
b22d2691f6 qcacld-3.0: Correct the actual rate flags being sent to framework
Presently, in VHT case also, the HT MCS rate flag is being set when the
SGI is enabled. This is causing the kernel to misinterpret the rates.
Instead of getting the VHT rates, the kernel is enabling the HT rates.
This issue is not present in kernel 4.9 as the preference was given to
VHT rates. For kernel 4.14, the preference is given to HT rates thus
highlighting the problem.

To solve this issue, do not set the RATE_INFO_FLAGS_MCS for SGI enabled.

Change-Id: Icce5b661c3fee21fa4522f06ff54827238e0d255
CRs-Fixed: 2317669
2018-09-25 08:31:29 -07:00
Rajeev Kumar Sirasanagandla
9770bbac0a qcacld-3.0: Add ETSI13 SRD channels info in dump_survey
Currently, in __wlan_hdd_cfg80211_dump_survey(), ETSI13 SRD channels
169 and 173 are not considered for filling channel survey info.

To fix this, consider ETSI13 SRD channels when WLAN_FEATURE_DSRC
is not defined.

Change-Id: I71307d58548304df6c1dcfa377dfe677a15db89f
CRs-Fixed: 2319454
2018-09-25 07:01:53 -07:00
Dundi Raviteja
47ac70974a qcacld-3.0: Relocate thermal info cfg items
Relocate thermal info config items to FW offload component.

Change-Id: If03507a44041b53aa81837f687914931e8a05ec8
CRs-Fixed: 2316595
2018-09-24 18:55:07 -07:00
Dundi Raviteja
3b63709be9 qcacld-3.0: Add ini params for three antenna BTC mode
Add below ini parameters for three antenna BTC mode and send
them to firmware using WMI command WMI_COEX_CONFIG_CMDID.
1. gSetBTCMode
2. gSetAntennaIsolation
3. gSetMaxTxPowerForBTC
4. gSetWlanLowRssiThreshold
5. gSetBtLowRssiThreshold
6. gSetBtInterferenceLowLL
7. gSetBtInterferenceLowUL
8. gSetBtInterferenceMediumLL
9. gSetBtInterferenceMediumUL
10. gSetBtInterferenceHighLL
11. gSetBtInterferenceHighUL

Change-Id: I69030b6e80ee99912e2f3baced883894d18db0b6
CRs-Fixed: 2298652
2018-09-24 18:55:03 -07:00
Bala Venkatesh
a0cd1f14e2 qcacld-3.0: Fix return status in wlan_hdd_set_powersave
Return correct status in wlan_hdd_set_powersave.

Change-Id: I20226e903cd4f3f3e4197b7a3bc30775e3c30890
CRs-Fixed: 2305859
2018-09-24 15:37:40 -07:00
Karthik Kantamneni
24f71bcfbf qcacld-3.0: Add MLME CFG items of RTT and PMF
Add CFG items of RTT and PMF as generic items based
on converged cfg component.

Change-Id: Ic95d1e7b052259149704d9faf65ebe5f51536fdf
CRs-Fixed: 2313281
2018-09-24 15:37:23 -07:00
Karthik Kantamneni
2231a23f44 qcacld-3.0: Add MLME OCE CFG items
Add OCE CFG items based on converged cfg component,
remove related legacy code.

Change-Id: I976981048be2df3f429003fc5db13f48a6ad27d0
CRs-Fixed: 2313157
2018-09-24 15:37:16 -07:00
Dustin Brown
32ffab3d24 qcacld-3.0: Reorganize SoC-level PLD handlers
Reorganize the SoC-level PLD callback handlers for improved consistency
and clarity. This includes the following changes:
 * Remove wlan_hdd_probe()
 * Rename wlan_hdd_remove() to hdd_soc_remove()
 * Rename hdd_soc_reinit() to hdd_soc_recovery_reinit()
 * Rename wlan_hdd_shutdown() to hdd_soc_recovery_shutdown()
 * Add documentation to probe, remove, shutdown, and reinit handlers
 * Avoid irq disable if load/unload in progress (in shutdown)

Change-Id: I8212f1cbbeac8cc431e3008097f62196911efdeb
CRs-Fixed: 2320582
2018-09-24 15:37:05 -07:00
Yeshwanth Sriram Guntuka
d777eeaef6 qcacld-3.0: Enable FILS discovery in SAP by default
Enable FILS discovery in SAP mode by default.

Change-Id: Id21042172db59900814d3cbc557327c7b55a3ef2
CRs-Fixed: 2317667
2018-09-21 14:42:55 -07:00
Pragaspathi Thilagaraj
1ee7600f9f qcacld-3.0: Remove legacy CFG macro definitions
Remove the legacy macro definitions that are related to the
mlme cfg.
Move them to wlan_mlme_public_struct.h

Change-Id: I64f474512463d3ba7ac238b2efd0f4cf2e36999b
CRs-Fixed: 2317750
2018-09-21 05:28:32 -07:00
Qun Zhang
4a83a46fab qcacld-3.0: update changes for fully supporting MULTI_IF_NAME
Currently, driver don't fully support MULTI_IF_NAME when two wlan
cards are supported by using two drivers:
1. if two wlan cards are all PCIe, driver can't distinguish
two PCIe cards firmware path.
2. When create hdd sysfs file upper folder, it will repeatly create the
same folder if not use MULTI_IF_NAME to distinguish them. It's not
necessary to distinguish the sub-folder once upper folder is different.

Change-Id: I511de46eec98e736d4e97d5c94ab22592d33f347
CRs-Fixed: 2311137
2018-09-20 22:24:21 -07:00
Nijun Gong
104ccc7742 qcacld-3.0: In SSR, clear flow control flag
When TX queues stopped by flow control right before SSR, corresponding
TX complete event used to clear the pause_map bit never come.
Flow control should reset its state during SSR, so clear this bit.

Change-Id: I462de1e20c9e2fc40476fc6b2d999c10e6396d8c
CRs-Fixed: 2274955
2018-09-20 22:24:18 -07:00
Dustin Brown
a2a39dcfd5 qcacld-3.0: Move QDF init to HDD from CDS
QDF is effectively the driver's library for base primitives and data
structures, especially logging. As such, we want to initialize it as
early as possible in the driver loading process such that various
components can leverage this library code as much as possible. To this
end, move QDF init functionality into HDD from CDS, and invoke it first
thing in hdd_driver_load().

Change-Id: I769126ec293f741dced50c0dccc2f49e600aea43
CRs-Fixed: 2317861
2018-09-20 16:40:18 -07:00
Dustin Brown
25843ad715 qcacld-3.0: Move pld_init just before pld_register
The PLD data structures initialized in pld_init() are not used before
PLD registration, and do not need to be the very first thing initialized
in the driver. Move the call to pld_init() to immediately before these
data structures are used for the first time in the PLD registration
process.

Change-Id: I5bee6b03eddfd749758f48a82f5c7f0a870b1504
CRs-Fixed: 2317859
2018-09-20 16:40:15 -07:00
Alok Kumar
ea70b1c815 qcacld-3.0: Enable NUD tracking feature by default in driver
By default enable the NUD tracking within driver.

Change-Id: I0501ae4f90934139a3610c2cd74464e97a1100d8
CRs-Fixed: 2317572
2018-09-20 14:54:43 -07:00
Sravan Kumar Kairam
657f89e1e5 qcacld-3.0: Send IPA UC disconnect events during SSR
Currently during SSR IPA events such as AP DISCONNECT/
STA DISCONNECT are not sent and also wlan ipa interafces
are not deregistered. After SSR when host sends AP CONNECT/
STA CONNECT and register interafce IPACM will reject as for
previous events before SSR there are no disconnect events.
This leads to data come via exception path instead taking
IPA HW route as interface headers are not registered.

In this fix send IPA UC disconnect events and deregister
interafces during SSR.

Change-Id: I6e617261ec53b7d572023613d212eae057b13b03
CRs-Fixed: 2315828
2018-09-20 14:54:40 -07:00
Bala Venkatesh
2fde2c61db qcacld-3.0: SAP CFG Items part 2
Add support for the sap cfg items in new mlme component

Change-Id: I80f3f00a85720fe7bec11575fe67dd2f6b9d44b2
CRs-Fixed: 2316643
2018-09-20 10:30:08 -07:00
Vignesh Viswanathan
987f0bba09 qcacld-3.0: Use MLME CFG for BSS Scoring Items
Implement the usage of MLME CFG infra for BSS Scoring related INI Items
and remove the older INI definitions from HDD.

Change-Id: I0db69138f0439131916a38176b5b21b706ff3671
CRs-Fixed: 2318320
2018-09-19 23:15:15 -07:00
Alok Kumar
016a1aca3a qcacld-3.0: In nud_reset_tracking, flush NUD work based on flag
Race condition occurs when NUD failure happens and NUD work is
scheduled and at the same time within driver csr disconnect
issued because of Roam Sync failure.

Disable flush of NUD work in hdd_nud_reset_tracking during
hdd_dis_connect_handler()

Change-Id: I3d24073c5c8047fad42309e878f3741c7a2d268e
CRs-Fixed: 2315973
2018-09-19 21:04:36 -07:00
Yuanyuan Liu
e470977e9f qcacld-3.0: Call icnss API to check if WLAN FW is down
If modem crashed during wlan driver unloading, icnss driver
will call driver uevent callback to set FW down status in
driver side when it receives BEFORE_SHUTDOWN notification.
If wlan driver is de-initialized just before the callback
is called, kernel will panic as driver's context is freed.
This can be avoid by not setting FW status in host driver.
Instead, icnss driver provides an API to host driver to
check FW status and host driver calls this API before any timeout
assert or accessing HW registers.

CRs-Fixed: 2161431
Change-Id: I8331367dd41dd0cedfa65c63f1bb3ffcb535e1c9
2018-09-19 19:32:46 -07:00
Rajeev Kumar
e555e2d15c qcacld-3.0: Remove timer debug and memory debug string
Remove timer debug and memory debug string from hdd_module_init
since g_wlan_driver_version already has timer and memory debug
string levels.

Change-Id: I8ef9f43d971df18b5184d76c5a3f4628feb8d12d
CRs-Fixed: 2316929
2018-09-19 14:45:55 -07:00
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