Commit Graph

297 Commits

Author SHA1 Message Date
Ashish Kumar Dhanotiya
aa9fdbb777 qcacld-3.0: Add support for new regulatory files
Regulatory component is getting updated to reduce the
code size based on different regulatory features. In this
process new regulatory files are getting added and some
of the files are getting removed.

To compile the newly added files update the required changes
in driver Kbuild file.

Some of the functins which are not supposed to be invoked from
outside the component directly, replace those function calls
with the appropriate wrapper functions.

Change-Id: I31a25268250b99f4f156c4f149966213746d999e
CRs-Fixed: 2373780
2019-01-23 15:14:09 -08:00
Yuanyuan Liu
755671ed02 qcacld-3.0: use fixed length for array
Fix error of "variable length array ‘duration’ is used ". Use fixed
length for array.

CRs-Fixed: 2383040
Change-Id: I4aee165cd626e56592c18b2211dc7c81e97d4cd4
2019-01-22 23:41:45 -08:00
Wu Gao
9d117fbfc2 qcacld-3.0: Refactor three INI in PMO
Based on cfg framework, refactor below INI:
 - CFG_RA_RATE_LIMIT_INTERVAL_NAME
 - CFG_ACTIVE_UC_APF_MODE_NAME
 - CFG_ACTIVE_MC_BC_APF_MODE_NAME

Change-Id: I3b1ee6254de158ad6408dc8c61e83be571e180af
CRs-Fixed: 2379743
2019-01-13 18:45:51 -08:00
Alok Kumar
ac74177daa qcacld-3.0: Avoid access of deleted peer during RX thread close
During SSR case in wlan_hdd_stop_modules(), ol_txrx_pdev_pre_detach()
cleanup the peer forcibly. Later RX Thread is getting closed as part
of cds_sched_close(). So chances of accessing deleted peer is there.

Shutdown RX thread before doing ol_txrx_pdev_pre_detach() to avoid
the chances of accessing deleted peer.

Change-Id: Iae27262396d8245eeb7a9b39cb678fad14815260
CRs-Fixed: 2349994
2019-01-02 12:04:27 -08:00
Jeff Johnson
a50ab22d4a qcacld-3.0: Remove cds_crypto_init()/deinit()
Functions cds_crypto_init() & cds_crypto_deinit() are unused,
so remove them.

Change-Id: If33ee8874b65a5b3e7d5f853b943d12bb1bbb84f
CRs-Fixed: 2371098
2018-12-21 15:10:10 -08:00
Jeff Johnson
6f3506eecc qcacld-3.0: Remove cds_upper_to_lower()
Utility function cds_upper_to_lower() is unused, so remove it.

Change-Id: I27464377fd10f0d3c4172ef4e3fe59ff6310aa61
CRs-Fixed: 2370775
2018-12-20 09:13:32 -08:00
Jeff Johnson
1fca7b0507 qcacld-3.0: Remove cds_get_monotonic_boottime()
Utility function cds_get_monotonic_boottime() is unused, so remove it.

Change-Id: I85ab8be34b2fde61f710384acb2b727456adf760
CRs-Fixed: 2370774
2018-12-20 09:13:32 -08:00
lifeng
0b46ae503e qcacld-3.0: Refine mlme reg configurations
Refine mlme reg configurations based on converged cfg component.
Remove related legacy codes.

Change-Id: I524b29d2d03e60111fa1759d11e32236bb3aa3fa
CRs-Fixed: 2357961
2018-12-19 04:56:44 -08:00
Mohit Khanna
8141877926 qcacld-3.0: changes for GRO for TCP packets
Add support for GRO functionality for TCP packets.

CRs-Fixed: 2346997
Change-Id: I9d38c926af4114e90427f5b5c632cd02b9eb3160
2018-12-18 00:07:46 -08:00
Jeff Johnson
51a8052b29 qcacld-3.0: Replace cds_rand_get_bytes()
The functionality provided by cds_rand_get_bytes() replicates
functionality provided by qdf_get_random_bytes(), so use
qdf_get_random_bytes().

Change-Id: I0b855556c9a9861c7067dfadaf0b8a4cdaf8709e
CRs-Fixed: 2366960
2018-12-17 13:12:01 -08:00
Jeff Johnson
b77c0e3843 qcacld-3.0: Use MAX_PMKID_LEN in cds_fils_connection_info
Currently in cds_config.h the macro MAX_PMKID_LEN is not used, and the
pmkid field in struct cds_fils_connection_info uses the "magic number"
16, so replace the magic number with the macro.

Change-Id: I11e7f55d43e5cdd3f222f54434a33c94654f2384
CRs-Fixed: 2366959
2018-12-17 13:12:01 -08:00
Bala Venkatesh
cd9decb3f0 qcacld-3.0: Modify the MAX_TX_PWR_CAP to 30dbm
Modify the max tx power value form 22db to 30db
to cover regulatory power requirements.

Change-Id: Id24ed354ed364037ba0ff5dea9de9810fb255962
CRs-fixed: 2362060
2018-12-13 23:21:29 -08:00
Jeff Johnson
6606fe5561 qcacld-3.0: Remove unused DP CFG from struct cds_config_info
Previously change If7ad0e02c65e04ea13a308e680c9ba3b3d84ae25,
("qcacld-3.0: Add legacy DP CFG items and APIs") relocated support for
some datapath INI items from HDD to the legacy data path. As part of
this change some fields in struct cds_config_info are no longer being
used, so remove those fields.

Change-Id: I2ebcb5bd3964af7847b55d3d7300efd4823dc198
CRs-Fixed: 2363230
2018-12-10 02:07:01 -08:00
Jeff Johnson
10c50c4f99 qcacld-3.0: Remove CDS fw_state handling
Previous change I8331367dd41dd0cedfa65c63f1bb3ffcb535e1c9
("qcacld-3.0: Call icnss API to check if WLAN FW is down") relocated
the source of firmware status from the wlan driver to the platform
driver. The legacy fw_state handling in CDS is no longer used, so
remove it.

Change-Id: Id8de0bd9441ecf7bb7e5931c503e16b62cbcfbf8
CRs-Fixed: 2363229
2018-12-10 02:06:57 -08:00
Jeff Johnson
56bc912552 qcacld-3.0: Remove struct cds_sme_cbacks
The functionality previously provided by struct cds_sme_cbacks has
been incorporated into the policy manager, and the struct is now
unused, so remove it.

Change-Id: Ia30cc18b5338073b9c96a29ca12b1383d31b4990
CRs-Fixed: 2363228
2018-12-10 02:06:53 -08:00
Jeff Johnson
85cd2e7c65 qcacld-3.0: Remove ol_rx_queue_len from cds_sched_context
The cds_sched_context contains an ol_rx_queue_len field that is
unused, so remove it.

Change-Id: Ib2a03a61a19424f3cb41c975a886b12f674de247
CRs-Fixed: 2362714
2018-12-06 21:03:43 -08:00
Jeff Johnson
21724f4455 qcacld-3.0: Remove obsolete struct hdd_context_s reference
In CDS there is a forward reference to struct hdd_context_s, However
this forward reference is not used, and in fact that struct name is no
longer in use in the driver, so remove it.

Change-Id: Iecf43870b22143f656bb9b8e413ae46c2f59bab4
CRs-Fixed: 2362713
2018-12-06 21:03:40 -08:00
Jeff Johnson
5f32b68b21 qcacld-3.0: Remove obsolete cds_packet definitions
The cds_packet infrastructure has been partially converted to QDF.  As
a result some of the legacy definitions are no longer being used, so
remove them.

Change-Id: I6827c08c3f39da8b0a561d6c3e4fe6f7eb528a25
CRs-Fixed: 2362712
2018-12-06 21:03:36 -08:00
Arif Hussain
224d38154f qcacld-3.0: Refactor more dfs cfg items
Refactor following DFS cfg items
CFG_DISABLE_DFS_CH_SWITCH
CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_NAME
CFG_IGNORE_CAC_NAME
CFG_DFS_RADAR_PRI_MULTIPLIER_NAME
CFG_SAP_TX_LEAKAGE_THRESHOLD_NAME
CFG_DFS_BEACON_TX_ENHANCED
CFG_DISABLE_DFS_JAPAN_W53
CFG_ENABLE_NON_DFS_CHAN_ON_RADAR

Change-Id: I7f39ed0680919c6a383d9b8bae5864f979b6948c
CRs-Fixed: 2351995
2018-12-04 00:05:53 -08:00
Wu Gao
51a6356b60 qcacld-3.0: Apply second part of LFR INIs changes
Since refined second part of LFR INIs, apply these changes in
SME/MAC/WMA layer.

Change-Id: I7994a9038d5bd094ce23bcd525ef8f5282974bfc
CRs-Fixed: 2346790
2018-11-29 18:11:48 -08:00
Pragaspathi Thilagaraj
4b5c0601a2 qcacld-3.0: Add the MLME CFG items to new MLME component
Add the following mlme cfg items:
CFG_AP_PROTECTION_MODE_NAME
CFG_AP_OBSS_PROTECTION_MODE_NAME
CFG_AP_STA_SECURITY_SEPERATION_NAME
CFG_ENABLE_BT_CHAIN_SEPARATION
CFG_AP_QOS_UAPSD_MODE_NAME

Change-Id: Iabdfb7c2492c234cfc3e8f71f33801f0034e578d
CRs-Fixed: 2350626
2018-11-28 14:35:01 -08:00
Jeff Johnson
40894141cb qcacld-3.0: Refine sme_send_flush_logs_cmd_to_fw prototype()
There are currently multiple issues with sme_send_flush_logs_cmd_to_fw()
- Although this is an SME API the prototype is exposed in a CDS header
  file
- The API is defined to take a mac context parameter which is unused
- Although the function returns QDF_STATUS, the only caller treats the
  return value as an int errno

To address these issues
- Relocate the prototype to SME
- Remove the unused parameter
- Properly treat the return value as QDF_STATUS

Change-Id: Ia511565ee0b77148ee7cb1bf221e99a5b26ed446
CRs-Fixed: 2353530
2018-11-21 21:20:51 -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
Alok Kumar
62bf738e15 qcacld-3.0: Address the error path during WLAN suspend
In __wlan_hdd_cfg80211_suspend_wlan(), suspend process is bailed out
if hdd_suspend_wlan() < 0 due to which RX thread waits for completion
of ol_resume_rx_event.

Do completion of ol_resume_rx_event in __wlan_hdd_cfg80211_suspend_wlan
for error path to resume RX thread.

Change-Id: I8bf056f82d80e063b2e32a1a6573d7a36ced67dc
CRs-Fixed: 2327238
2018-10-09 21:35:40 -07:00
Wu Gao
66454f118f qcacld-3.0: Apply PMO configures
Since refined PMO configures based on converged cfg component, apply
PMO configurations, remove related legacy codes.

Change-Id: I2cdf18c1000d8cc923c80c00bf530b2b0c60563e
CRs-Fixed: 2322185
2018-10-01 18:38:10 -07:00
Rajeev Kumar
9f46158146 qcacld-3.0: Resume wlan threads during shutdown before adapter reset
Resume wlan threads during wlan shutdown process before adapter reset
because adapter reset triggers vdev destroy and vdev destroy sends
del sta self message to lower layers and in absence of wlan threads
this message will not be processed leading to timeout and vdev peer
object leak. Hence add fix to make sure wlan threads are resumed
before resetting adapters during wlan shutdown process.

Change-Id: Idc31b7e41e5d9734b5f6b96fba24948dbfb45c3d
CRs-Fixed: 2321503
2018-10-01 14:59:40 -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
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
Dustin Brown
94ce20f5a4 qcacld-3.0: Validate context for qdf transition check
cds_is_module_state_transitioning() is effectively a partial
re-implementation of wlan_hdd_validate_context(). Instead of having
multiple copies of this logic, register a new callback in QDF which
simply calls wlan_hdd_validate_context() instead.

Change-Id: If533d72725b4cc9dbe5e4b9c25e499657c8e1376
CRs-Fixed: 2308771
2018-09-05 23:55:35 -07:00
Mohit Khanna
7032200a77 qcacld-3.0: Support for DP RX Threads
Add support for DP RX Threads as a part of the FR. Multiple RX threads
can be enabled from the ini. The code is added in a new DP module
outside of the cmn project.

Change-Id: Ief6ee955f13c5e527986307371b8e45677cb9700
CRs-Fixed: 2256446
2018-08-24 18:35:32 -07:00
Dustin Brown
2a24d7c1d9 qcacld-3.0: Add caller/line info to recovery log
To speed up recovery trigger debugging, pass the caller's function name
and line number, such that the group needing to do the initial triage
can be easily identified via the panic message.

Change-Id: Ibac141a62a990adf7a781d7ef64544d92ff4e31b
CRs-Fixed: 2298194
2018-08-17 16:13:13 -07:00
Manikandan Mohan
dcd0fdfcc0 qcacld-3.0: Update for converged NAN config params
Update driver to use NAN config params based converged CFG
component. Cleanup hdd config references to nan ini params.

Change-Id: I5af85d68ee53ad557e64523f7a1719e328536926
CRs-fixed: 2290360
2018-08-10 20:45:16 -07:00
Jeff Johnson
4ea7974ce3 qcacld-3.0: Refine the mac_start() API
The mac_start() API currently specifies a void pointer for the "start
params" parameter. But both mac_start() and its caller must agree on
the type of this structure, so replace the void pointer with the
actual struct pointer. In the process rename that struct to comply
with the coding style and relocate it to be a part of the MAC Init
API.

Change-Id: I7fc62abbb17d214551ca6ff0cda8b76d218280e3
CRs-Fixed: 2290807
2018-08-06 20:55:14 -07:00
Nirav Shah
790d943594 qcacld-3.0: Add per module logging macros without function/line info
Add per module logging macros without function/line info
to avoid adding function/line info where it is not required.

Change-Id: Id808fef623b82cec38fc31071ef384f3ff0c92da
CRs-Fixed: 2278874
2018-07-27 09:09:42 -07:00
Nirav Shah
d6fa0f8cd8 qcacld-3.0: Add compilation flag for enter/exit macros
Map all enter/exit log macros to enter/exit QDF TRACE macro
to provide option to compile out enter/exit logs if required.

Change-Id: I0c6cd633705e820fcfeb47e3f81a3522c9ef1974
CRs-Fixed: 2274850
2018-07-25 09:40:33 -07:00
Manjunathappa Prakash
b6b4ff1809 qcacld-3.0: Add CPU mask INI option for Rx_thread affinity
Add INI option to specify CPU mask for Rx_thread and affine
Find current online cores.
During high TPUT,
1) If user INI configured cores, affine to those cores
2) Otherwise perf cores.
3) Otherwise to all cores.

During low TPUT, set affinity to any core, let system decide.

Change-Id: I10e906d484e300bb32491d7d60d717e92b92aaef
CRs-Fixed: 2185186
2018-07-02 12:23:20 -07:00
Ryan Hsu
d0327d53d7 qcacld-3.0: Add SSR callbacks
As CDS is not usable by WIN, add callbacks that are registered
in QDF and correct the module dependencies.

Also rearrange the header file inclusion, due to in cmn project,
the qdf_self_recovery_callback() is moved from qdf_event.h to
qdf_platform.h.

Change-Id: I6d03a1a8df01df4c67a933a11d86147384b656fd
CRs-fixed: 2263625
2018-06-20 04:05:21 -07:00
Nachiket Kukade
e547a48662 qcacld-3.0: Rename legacy definitions containing BPF to APF
In implementation of Android Packet Filter, functions, variables,
definitions are named after BPF, which stands for Berkely Packet
Filter. The term was more appropriate for Link Layer packet
filters implemented in the Linux kernel, known as Linux Socket
Filters.

The term BPF is obsolete now, so rename it with the
appropriate acronym, APF.

Change-Id: I9e02edbc580ffb2c559c8e864f54d255fc2d51a3
CRs-Fixed: 2191530
2018-06-18 16:33:24 -07:00
Rachit Kankane
0106e38412 qcacld-3.0: Add INI support for number of vdevs
new INI gNumVdevs is added to allow number of VDEV support
for both Host and FW. Also Updated logic to calculate num_peers
and num_tids.

Change-Id: Ife5ff24e9594c8986913c06899ac5e41c83fc75c
CRs-Fixed: 2245506
2018-06-13 15:23:53 -07:00
Nirav Shah
bb8e47c200 qcacld-3.0: Featurize packet log
Featurize packet log.

Change-Id: Id747d142d72d02759b20bcf3091fd769261b8f67
CRs-Fixed: 2245422
2018-06-06 23:49:08 -07:00
Jeff Johnson
028033d7a0 qcacld-3.0: Add cds_warn() API
The set of cds trace APIs is missing the "warn" API, so add cds_warn().

Change-Id: I1d15f7e01667c5f8ec46c7a7c20d9d8ac4987f28
CRs-Fixed: 2251990
2018-06-06 20:27:48 -07:00
Jeff Johnson
13269963d7 qcacld-3.0: Rename pModuleContext & ppModuleContext
Per the Linux coding style "mixed-case names are frowned upon" so
rename identifiers pModuleContext & ppModuleContext.

Change-Id: Ib0c37fa2ec295da24cfcdfbf903c6ba121dec04b
CRs-Fixed: 2251989
2018-06-06 20:27:45 -07:00
Jeff Johnson
b3be6a6a36 qcacld-3.0: Rename moduleID & moduleId
Per the Linux coding style "mixed-case names are frowned upon" so
rename identifiers moduleID & moduleId.

Change-Id: I1bda5cb9d0d57a5af072ed0eb61c7d8125dfd3cd
CRs-Fixed: 2251987
2018-06-06 20:27:39 -07:00
Jeff Johnson
2ccd815bf5 qcacld-3.0: Rename cds_context field wmaCompleteEvent
Per the Linux coding style "mixed-case names are frowned upon" so
rename field wmaCompleteEvent in struct cds_context.

Change-Id: I0b56daf9e387bbc96ddd2b0539ddefb16c82cca2
CRs-Fixed: 2250673
2018-06-06 20:27:36 -07:00
Jeff Johnson
a40e21c1d3 qcacld-3.0: Rename cds_context field pHIFContext
Per the Linux coding style "mixed-case names are frowned upon" so
rename field pHIFContext in struct cds_context.

Change-Id: I023d61b0a26a6f4f35a46e5c04ab63b83182b846
CRs-Fixed: 2250672
2018-06-06 20:27:33 -07:00
Jeff Johnson
830f322c66 qcacld-3.0: Rename cds_context field pWMAContext
Per the Linux coding style "mixed-case names are frowned upon" so
rename field pWMAContext in struct cds_context.

Change-Id: Ia8fa98366d57ab2bf81549570ef7b1766e579a00
CRs-Fixed: 2250671
2018-06-06 20:27:30 -07:00
Jeff Johnson
528c2cfc31 qcacld-3.0: Rename cds_context field pMACContext
Per the Linux coding style "mixed-case names are frowned upon" so
rename field pMACContext in struct cds_context.

Change-Id: I50007d80d12276b682237d728435203e455a18c9
CRs-Fixed: 2250670
2018-06-06 20:27:27 -07:00
Jeff Johnson
323a6f06aa qcacld-3.0: Rename cds_context field pHDDContext
Per the Linux coding style "mixed-case names are frowned upon" so
rename field pHDDContext in struct cds_context.

Change-Id: I483c5fa09127753770ec644527989902d842af0e
CRs-Fixed: 2250669
2018-06-04 13:58:51 -07:00
Jeff Johnson
7d63adb741 qcacld-3.0: Remove pVContext from struct _cds_sched_context
The pVContext field of struct _cds_sched_context is written but never
read, hence it is unused, so remove it.

Change-Id: I38a6491fb8581df00af59f7f2bc3f5f88c65b7e5
CRs-Fixed: 2250668
2018-06-04 13:58:48 -07:00
Jeff Johnson
2b6982c4a5 qcacld-3.0: Replace references to cds context typedefs
To align with the Linux Kernel coding style replace typedefs
cds_context_type and p_cds_contextType with a reference to the
underlying struct.

Change-Id: Ifc85a9bbecd29614835ed9e61ab143d0387e82b0
CRs-Fixed: 2250667
2018-06-04 13:58:45 -07:00