Commit Graph

12321 Commits

Author SHA1 Message Date
nshrivas
2a2037028e Release 5.2.0.105R
Release 5.2.0.105R

Change-Id: I545c8880b5c4cc2e6d82de1b5e4db4bb361f328a
CRs-Fixed: 774533
2018-11-09 19:43:22 -08:00
Jeff Johnson
bfd2463a00 qcacld-3.0: Fix csr_get_current_band() context param
Currently csr_get_current_band() takes a tHalHandle context param.
However csr is internal to the UMAC, and hence it should be using the
"real" context pointer type instead of the opaque handle, so update
the API to expect a struct mac_context pointer..

This is part of an ongoing campaign to remove or replace all instances
of tHalHandle.

Change-Id: I93a3950b9ee26284ddfdf167b900d2f6983625f7
CRs-Fixed: 2347655
2018-11-09 19:43:22 -08:00
nshrivas
725ba40451 Release 5.2.0.105Q
Release 5.2.0.105Q

Change-Id: I1cca15061bde42951e14c9f2db28d4fddcfb0db0
CRs-Fixed: 774533
2018-11-09 18:21:58 -08:00
Jeff Johnson
6fea9da115 qcacld-3.0: Remove unused wlan_hdd_set_pre_cac_status() param
Change "qcacld-3.0: Remove wlan_sap_set_pre_cac_status() handle param"
(Change-Id I1c280be8c7c65a28267a9ab38d76fb8aa94e48af) removed an
unused handle param. As a result the handle param is now unused by
wlan_hdd_set_pre_cac_status(), so remove it from there as well.

Change-Id: Ida61a996b9203928af3a5636c219ab61c68d7d19
CRs-Fixed: 2347654
2018-11-09 18:21:57 -08:00
Jeff Johnson
6ccbec1f48 qcacld-3.0: Remove wlan_sap_set_pre_cac_status() handle param
Function wlan_sap_set_pre_cac_status() currently takes as one
parameter a tHalHandle handle.  This handle is converted into a MAC
context pointer. That MAC context pointer is then tested for NULL but
is otherwise unused.  Since the MAC context, and hence the handle, are
unnecessary, remove them.

This is part of an ongoing campaign to remove or replace all instances
of tHalHandle.

Change-Id: I1c280be8c7c65a28267a9ab38d76fb8aa94e48af
CRs-Fixed: 2347653
2018-11-09 18:21:53 -08:00
Jeff Johnson
2febb64e8f qcacld-3.0: Fix csr_init_operating_classes() context param
Currently csr_init_operating_classes() takes a tHalHandle context
param.  However this is a static internal function, and hence it
should be using the "real" context pointer type instead of the opaque
reference, so update the API to expect a struct mac_context pointer.

This is part of an ongoing campaign to remove or replace all instances
of tHalHandle.

Change-Id: Ib299d109489709b78a8d138987acf2379a341797
CRs-Fixed: 2347652
2018-11-09 18:21:49 -08:00
nshrivas
af8d7aa2f0 Release 5.2.0.105P
Release 5.2.0.105P

Change-Id: I49c61fe4c4480a439e2a33ec687b49287c22de7d
CRs-Fixed: 774533
2018-11-09 16:59:07 -08:00
Bala Venkatesh
fc0dfb7865 qcacld-3.0: Stop peer assoc confirm timer in case of peer assoc failure
As part of tdls peer assoc request, WMI_SERVICE_PEER_ASSOC_CONF is
checked and a timer of 6 sec is started. But, in case of any failure
for peer assoc in host, This is not stopped and waited for timer to
expire and sends the response with failure status.

Stop the peer assoc confirm timer and send the add sta response with
failure status in case of any failure in host.

Change-Id: If6ba6aa1297afaea1fd86bf406dcbb6e4e461d25
CRs-Fixed: 2345086
2018-11-09 16:59:06 -08:00
Dustin Brown
92bd838132 qcacld-3.0: Split psoc and vdev phases during probe
hdd_wlan_startup() does psoc create, psoc start, and vdev create phases.
Split the vdev create phase from the two psoc phases.

Change-Id: I9e2be1e257f80c19f55ec25f809858c7e107f640
CRs-Fixed: 2343033
2018-11-09 16:59:02 -08:00
Dustin Brown
67d3041bcc qcacld-3.0: Integrate DSC (driver mode change)
The Driver Synchronization Core (DSC) is a set of synchronization
primitives for use by the driver's orchestration layer. It provides APIs
for ensuring safe state transitions (including bring up and tear down)
of major driver objects: a single driver, associated psocs, and their
associated vdevs.

As part of integrating the DSC APIs into HDD, protect driver mode
change.

Change-Id: I28ae8a61f9ffa7e129cf81ade539df8adc72d853
CRs-Fixed: 2347024
2018-11-09 16:58:59 -08:00
Dustin Brown
21a1d46d35 qcacld-3.0: Integrate DSC (driver insmod/rmmod)
The Driver Synchronization Core (DSC) is a set of synchronization
primitives for use by the driver's orchestration layer. It provides APIs
for ensuring safe state transitions (including bring up and tear down)
of major driver objects: a single driver, associated psocs, and their
associated vdevs.

As part of integrating the DSC APIs into HDD, protect driver load
(insmod) and unload (rmmod).

Change-Id: I37fba3ec4c4c59dedace0ce0f0421d2a442ab290
CRs-Fixed: 2346211
2018-11-09 16:58:55 -08:00
nshrivas
356909b4fb Release 5.2.0.105O
Release 5.2.0.105O

Change-Id: Iccecc3250c68bbc02f8a1e48d1a1ed46921d6a3c
CRs-Fixed: 774533
2018-11-09 15:25:02 -08:00
jiad
9d613a24eb qcacld-3.0: Fix WLAN IPA RM enablement
With IPA WDI unified API, IPA PM is used instad of IPA RM
for power/resource management. When checking if IPA RM is
enabled or not, HDD_IPA_RM_ENABLE_MASK is thus not applicable
for WDI unified API.

Fix is to always return true for IPA WDI unified API for power
efficiency.

Change-Id: I047b3156cf00002142dd3acb021cfb6ce64489ee
CRs-Fixed: 2283088
2018-11-09 15:25:01 -08:00
Jeff Johnson
d75a616eea qcacld-3.0: Remove CDS_GET_HAL_CB
Change "qcacld-3.0: Introduce sap_get_mac_context()" introduced a new
API for retrieving the MAC context. Since all instances of using
CDS_GET_HAL_CB have been converted, remove the macro.

Change-Id: Ib0ed67cf6af779d2805c3f7bb0cf3667c5d844f9
CRs-Fixed: 2346185
2018-11-09 15:24:57 -08:00
Kiran Kumar Lokere
efdbd0b267 qcacld-3.0: Add support to configure HE SU PPDU Tx
Add support to configure HE single user PPDU transmission.

Change-Id: I6bb2ead049f64c2ff2d28039f1658d66c4878f5f
CRs-Fixed: 2345247
2018-11-09 15:24:53 -08:00
Kiran Kumar Lokere
9463415ae2 qcacld-3.0: Add support for HE OM control configuration
Add support for configuring the HE OM control field

Change-Id: I2b934411d16f006f53d068a51af54a14dbd01a46
CRs-Fixed: 2311409
2018-11-09 15:24:48 -08:00
nshrivas
0284a3572c Release 5.2.0.105N
Release 5.2.0.105N

Change-Id: Ic522a24f10a6f27683fad96c657b0cf3e769128c
CRs-Fixed: 774533
2018-11-09 13:11:18 -08:00
Sourav Mohapatra
674925f00b qcacld-3.0: Register hdd callbacks before event registration
Presently the hdd callbacks registration for the events that
need to update data to HDD/SME/LIM from WMA are done after the
event registration is done. During the modules closing, the
callbacks are unregistered first and then the events gets
unregistered.

Move the callback registration before htc_start happens during
modules starting and similarly during modules stop, move the
deregistration of the callbacks after htc_stop.

Change-Id: Id779025188a65af6f08bfbcb15c35cd2be17b53c
CRs-Fixed: 2220895
2018-11-09 13:11:18 -08:00
nshrivas
30f781ebfe Release 5.2.0.105M
Release 5.2.0.105M

Change-Id: Ic57a05601224d94d00296ce85461d85ff034e429
CRs-Fixed: 774533
2018-11-09 09:49:48 -08:00
Tushnim Bhattacharyya
4bd8905cd4 qcacld-3.0: Replace QDF_BUG(0) with cds_trigger_recovery()
Replace QDF_BUG(0) with call cds_trigger_recovery() in
wma_remove_peer(), as it is a possible scenario for NDI
since the NDI vdev is managed by FW.

Change-Id: Ief8a37c732a1feebe3a78f2f03da791712398d43
CRs-Fixed: 2346252
2018-11-09 09:49:47 -08:00
Rajeev Kumar
a906529e9a qcacld-3.0: Safely reject sched scan requests in ftm mode
Sched scan start and stop requests are coming in FTM mode
and hence do not access dev->name and reject the request
if driver is in FTM mode.

Change-Id: Ia6a3b4dc2f7c491ecc3d2456238c6583d863c10d
CRs-Fixed: 2345908
2018-11-09 09:49:43 -08:00
nshrivas
d5665aa03e Release 5.2.0.105L
Release 5.2.0.105L

Change-Id: I69e57ba0a199def747f99ca8754d61303a9df9cd
CRs-Fixed: 774533
2018-11-09 06:56:26 -08:00
Jeff Johnson
689d522974 qcacld-3.0: Replace CDS_GET_HAL_CB in sap_module
Change "qcacld-3.0: Introduce sap_get_mac_context()" introduced a new
API for retrieving the MAC context. Update sap_module to use this API.

Change-Id: I906a57557d38b139728c7f2332e9580abf947d47
CRs-Fixed: 2346184
2018-11-09 06:36:15 -08:00
nshrivas
9193fae699 Release 5.2.0.105K
Release 5.2.0.105K

Change-Id: If866dd2b372199d0e576d7b4486ef3ab4b04e0e6
CRs-Fixed: 774533
2018-11-08 22:37:57 -08:00
Paul Zhang
624f88de81 qcacld-3.0: Avoid race when uplayer triggers reassoc
When supplicant tries to reassoc AP, it will set PSK
before issue connection. In driver, it invokes function
__wlan_hdd_cfg80211_keymgmt_set_key and then
__wlan_hdd_cfg80211_connect.

__wlan_hdd_cfg80211_keymgmt_set_key puts
eWNI_SME_ROAM_SCAN_OFFLOAD_REQ to PE queue, then puts
WMA_ROAM_SCAN_OFFLOAD_REQ to WMA queue.

__wlan_hdd_cfg80211_connect puts SIR_HAL_ROAM_INVOKE to
WMA queue directly.

If the command SIR_HAL_ROAM_INVOKE is issued to fw before
WMA_ROAM_SCAN_OFFLOAD_REQ, then roaming scan is canceled
because scan mode is set.

To avoid this race, send SIR_HAL_ROAM_INVOKE to PE queue,
and then to WMA queue as well.

Change-Id: I08624efc466085e49fa4201deb221276ec5c260f
Rs-Fixed: 2344710
2018-11-08 22:37:56 -08:00
nshrivas
b9d31767bb Release 5.2.0.105J
Release 5.2.0.105J

Change-Id: I883b7b56abdcbe30d8dcf892083835706a293b12
CRs-Fixed: 774533
2018-11-08 21:03:21 -08:00
Jeff Johnson
eb7b4babcc qcacld-3.0: Remove crda_regulatory_entry_default() prototype
Function crda_regulatory_entry_default() no longer exists, but the
prototype is still present, so remove the obsolete prototype.

Change-Id: I1713ae66489da0deee95d165b704bce31dcc111a
CRs-Fixed: 2345153
2018-11-08 21:03:20 -08:00
Jeff Johnson
cc7776d636 qcacld-3.0: Refactor WE_SET_QPOWER_* processing
One of the HDD functions with the highest cyclomatic complexity is
__iw_setint_getnone(). In order to reduce the complexity there is a
plan to replace the existing switch with a vtable. As part of that
goal refactor the WE_SET_QPOWER_* ioctl handling into separate
functions.

Change-Id: Ied945040f1c055e261b611f7265e237c76d5f518
CRs-Fixed: 2345117
2018-11-08 21:03:16 -08:00
Jeff Johnson
682a14e5e9 qcacld-3.0: Replace CDS_GET_HAL_CB in sap_fsm
Change "qcacld-3.0: Introduce sap_get_mac_context()" introduced a new
API for retrieving the MAC context. Update sap_fsm to use this API.

Change-Id: Id4f81e12d2544e1de5d35b0360b6a7dd0e3b3c0b
CRs-Fixed: 2346183
2018-11-08 21:03:12 -08:00
Jeff Johnson
53c3827251 qcacld-3.0: Replace CDS_GET_HAL_CB in sap_api_link_cntl
Change "qcacld-3.0: Introduce sap_get_mac_context()" introduced a new
API for retrieving the MAC context. Update sap_api_link_cntl to use
this API.

Change-Id: Icb5cfb0db4acaf7ee58e9527feded83c88bcb8d3
CRs-Fixed: 2346182
2018-11-08 21:03:08 -08:00
Jeff Johnson
03d1e2c428 qcacld-3.0: Introduce sap_get_mac_context()
Currently the macro CDS_GET_HAL_CB() is used throughout the SAP to
retrieve an opaque handle for the MAC context. This name is an
anachronism given that the HAL layer was moved to firmware many
generations ago. In addition, since the SAP module is internal to the
UMAC, it should normally not be dealing with the opaque handle but
should instead be dealing directly with the MAC context. Finally, per
the coding style, "inline functions are preferable to macros
resembling functions."

To address these issues introduce sap_get_mac_context(), a new inline
function, to replace the current usage of CDS_GET_HAL_CB().

Subsequent changes will actually perform the replacement.

Change-Id: I53160f7f5a315516f5348baea8cc7945483431bd
CRs-Fixed: 2346181
2018-11-08 21:03:03 -08:00
nshrivas
3d07edaed5 Release 5.2.0.105I
Release 5.2.0.105I

Change-Id: I29e5956af2ed260ec9f3760682c5bbf32ab4d89e
CRs-Fixed: 774533
2018-11-08 13:39:34 -08:00
Dustin Brown
c2a156e17b qcacld-3.0: Mark target not ready in hif disable path
Currently, the target-not-ready flag is only ever cleared in the event
of a firmware down notification from the platform driver. However, we
know that the target is not ready after a certain point in the hif
disable path. Additionally, the hif enable path does not clear this flag
during error handling. Address these issues.

Change-Id: I02555940dfba35874768aa453a24121a101354e5
CRs-Fixed: 2339361
2018-11-08 13:39:33 -08:00
Dustin Brown
af8fea0bc9 qcacld-3.0: Move fw down handling to psoc shutdown
As time goes by, more and more logic gets added to the firmware down
indication handler. Generally, there isn't a good reason why this logic
can't or shouldn't be handled with the rest of the subsystem restart
(SSR) cleanup code during the psoc shutdown phase. Additionally, the
firmware down indication can come in hardware interrupt context on some
platforms. This is incompatible with the current mutex-grabbing design.

On order to unify the SSR cleanup logic and support platforms which send
the firmware down indication in hardware interrupt context, move
processing currently done during firmware down handling to psoc shutdown
instead.

Change-Id: Ie1dea835eca5bad1ac3647a0da544d2c51c24194
CRs-Fixed: 2345287
2018-11-08 13:39:30 -08:00
Dustin Brown
8f05f65391 qcacld-3.0: Remove PLD_RECOVERY handling
The platform driver uevent handling in WLAN handles both the firmware-
down and "recovery" events. However, the recovery event on snoc
platforms is actually the firmware-crashed event. Recovery _is_ a valid
uevent for pcie platforms, but I20db3698602ea273038a3f024b4e5f61639f6d74
is adding support for the firmware down event.

Additionally, there is no good reason to handle both events, and the
various handling logics are spread across both events with little rhyme
or reason. Remove handling of the "recovery" platform uevent, and move all
associated logic to the firmware-down uevent handling.

Change-Id: I36b6f607438c930dff1936f372af80be311dfe49
CRs-Fixed: 2339357
2018-11-08 13:39:26 -08:00
Dustin Brown
93abc2cb79 qcacld-3.0: Enable excessive logging detection
Excessive logging detection was recently added via
If83c6dfccb9d191b02a3a7166b065c0a0704f969. While we would like to enable
this feature with a maximum number of logs per second of 100, there are
still a few outstanding problem areas, like dumping stats via IOCTL.
Instead enable the feature with a max of 500 to catch egregious
regressions, and plan to decrease this to 100 or less once the problem
areas are addressed.

Change-Id: I5b880c2354ec4828e1773eeb43de43a4649d4803
CRs-Fixed: 2340011
2018-11-08 13:39:22 -08:00
nshrivas
5c6db8de0b Release 5.2.0.105H
Release 5.2.0.105H

Change-Id: I8c2b0b86393992876613fdc466c7118a51630f5b
CRs-Fixed: 774533
2018-11-08 01:30:46 -08:00
Wu Gao
e4c142d0d8 qcacld-3.0: Fix potential OOB read when dump dbs hw mode
It doesn't update wma_handle->num_dbs_hw_modes after event
WMI_SERVICE_READY_EXT_EVENTID comes and re-allocate hw_mode_list,
which will cause potentially OOB read hw_mode_list.

Change-Id: I8e4aa13120bfe185fba3e0000cf289406b6bcfce
CRs-Fixed: 2336889
2018-11-08 01:30:45 -08:00
nshrivas
df73ee3380 Release 5.2.0.105G
Release 5.2.0.105G

Change-Id: Ib31f7db4b9a5a470c2d24720ab694363eb136743
CRs-Fixed: 774533
2018-11-08 00:11:44 -08:00
Jeff Johnson
61c999d5cd qcacld-3.0: Replace tAniSirGlobal with the underlying struct
Change "qcacld-3.0: Rename struct sAniSirGlobal to mac_context"
(Change-Id Ibaaeb5296e42a24c66d4adf4f720d32a9ae41888) introduced a new
name for the global MAC context. In addition, the Linux coding style
document tells us "In general, a pointer, or a struct that has
elements that can reasonably be directly accessed should never be a
typedef."

To align with the new name, as well as to align with the guidance from
the Linux coding style, replace all instances of typedef tAniSirGlobal
with the underlying struct mac_context.

Change-Id: Ibb6c1f69fecbe00a17f4cc98a28706d859fa2928
CRs-Fixed: 2346156
2018-11-08 00:11:43 -08:00
nshrivas
074eb41155 Release 5.2.0.105F
Release 5.2.0.105F

Change-Id: I011f42fd92c5d2e30eb0053f247c6e8feab44439
CRs-Fixed: 774533
2018-11-07 10:52:16 -08:00
Ashish Kumar Dhanotiya
a6a4f5e444 qcacld-3.0: Reject any invalid MAC address from mac.bin
If driver gets all 0s as MAC address from mac.bin, it considers
this as valid address and proceed to derive remaining addresses.
this zero MAC is assigned to any of the interface resulting in
undefined behaviour.

To resolve this issue, validate all the MAC addresses provided by
mac.bin and reject all the addresses if any of the MAC is invalid.

Change-Id: Ia1db8249dd4ca58612b6f9eae5903bc809fed493
CRs-Fixed: 2333912
2018-11-07 10:52:15 -08:00
nshrivas
9f9af74753 Release 5.2.0.105E
Release 5.2.0.105E

Change-Id: I026e060a3f313454f65a088f68842da83b070f48
CRs-Fixed: 774533
2018-11-07 06:33:00 -08:00
Paul Zhang
cb573e0592 qcacld-3.0: Fix false alarm scan reject issue
Currently, the scan is rejected if connection is in progress. And
it uses last_scan_reject_timestamp and reset scan_reject_cnt to
avoid scan stuck issue. last_scan_reject_timestamp and
scan_reject_cnt reset when the next scan issues successfully.

If:
1\ Scan happens and connection is in progress. Initialized
   last_scan_reject_timestamp and reset scan_reject_cnt;
2\ Maybe no scan happens for a long time;
3\ scan happens but unfortunately connection is in progress again.

Then false alarm may happen because the time has already expired and
scan_reject_cnt >= 15.

Reset scan reject params if connection is success or it receives
final failure from CSR after trying with all APs.

Change-Id: Icd72d1d2c0adee8bb5b5b9c6537e1c48e37a7121
CRs-Fixed: 2333283
2018-11-07 06:33:00 -08:00
nshrivas
f37b43f290 Release 5.2.0.105D
Release 5.2.0.105D

Change-Id: I816460266a42baccad8c48fa68758c05d3bff0b2
CRs-Fixed: 774533
2018-11-07 01:35:45 -08:00
Arunk Khandavalli
890f6d9c7e qcacld-3.0: Move power stats from debugfs to sysfs
Move power stats from the debugs to sysfs. Also previously
power stats was maintained per vdev but the data received
from the firmware is per pdev. Hence move the power stats
implementation from vdev to pdev.

Change-Id: I10df003fe8f79d35d0758b56d971f4973d27750b
CRs-Fixed: 2345097
2018-11-07 01:35:44 -08:00
nshrivas
451b81cd89 Release 5.2.0.105C
Release 5.2.0.105C

Change-Id: Ic650bc04bdba2c02418b9ad6e04e1ad184e86e45
CRs-Fixed: 774533
2018-11-06 22:39:52 -08:00
Jeff Johnson
009c40f1b7 qcacld-3.0: Rename struct sAniSirGlobal to mac_context
The primary data structure used within the protocol stack is currently
named sAniSirGlobal. This naming is problematic for two reasons.
First, the "Ani" and "Sir" are archaic references that should be
replaced throughout the driver. Second, camelCase is frowned upon by
the Linux coding style. In order to address these issues, rename
sAniSirGlobal to mac_context.

Change-Id: Ibaaeb5296e42a24c66d4adf4f720d32a9ae41888
CRs-Fixed: 2345128
2018-11-06 22:39:51 -08:00
nshrivas
d2eac151b8 Release 5.2.0.105B
Release 5.2.0.105B

Change-Id: Ia02b0b87149bd91e3eeef567a545085bbd0d940e
CRs-Fixed: 774533
2018-11-06 21:07:42 -08:00
Lin Bai
f5e8cc2dba qcacld-3.0: Fix compiler error on UP target
QCA_CONFIG_SMP defined to support some thread scheduling features on
SMP target, while some variants defined only for SMP purpose are
referred out of this MACRO, like is_ol_rx_thread_suspended,
ol_rx_event_flag and ol_suspend_rx_event.

Defines separate functions for SMP/UP target to avoid it.

Change-Id: I01884644b7b77e55514cf00426609643386480e8
CRs-Fixed: 2344683
2018-11-06 21:07:41 -08:00