Commit Graph

13816 Commits

Author SHA1 Message Date
Ashish Kumar Dhanotiya
ff833227e5 qcacld-3.0: Reset recovery in progress flag during probe
Currently in driver at load time if probe fails because
of any reason, as part of FW down, recovery in progress
flag is getting set which is getting reset only in re-init
path. Now when probe starts again as this was load time
failure, this flag is set and there are checks at many
places for this flag in driver where we just don't proceed
further if this flag is set.
One such example of such incident is reg_process_master_chan_list
api where regulatory event is not getting processed because this
flag is set.

To resolve this issue reset recovery in progress flag during probe.
There is no harm in resetting the flag during probe as probe start
indicates that FW is ready.

Change-Id: Ib681870f869060f4511563aa3255aeb0eb8f9f12
CRs-Fixed: 2365416
2018-12-25 05:20:56 -08:00
Abhishek Singh
eb7751ad7b qcacld-3.0: Fix invalid session used in ap ecsa timeout api
If ecsa timeout is active and stop bss is received. During
pe delete session the timer is stopped and destroyed. But if
if timer has already expired and has posted the message to MC
thread the timer callback will be called with pe session which
is already deleted.

Fix this by checking if of pe session is valid in timeout API.
Also reset dfsIncludeChanSwIe during pe delete session.

Change-Id: I67d7e65c8136daaa04afa8b01b7019b0b8b36dae
CRs-Fixed: 2372278
2018-12-25 05:20:52 -08:00
Jeff Johnson
256002f959 qcacld-3.0: Converge on struct del_ts_param
The driver currently defines two different data structures to hold
Delete Tspec parameters:
- tDelTsParams
- struct del_ts_param

In this case having two different structures to provide the same
functionality is pointless. Furthermore, due to the way in which these
structures are used, there is an implicit requirement that they be
exactly identical. This approach is very fragile. To align with the
converged software architecture and to improve code maintainability
remove the legacy typedef and exclusively use the unified WMI
structure.

Change-Id: Ia70b1e17e4446259ff32107ffbc11646d078e1c0
CRs-Fixed: 2371915
2018-12-25 05:20:48 -08:00
nshrivas
03ff21d983 Release 5.2.0.113H
Release 5.2.0.113H

Change-Id: I021f70e54d3c358722e8b513655b522892a48167
CRs-Fixed: 774533
2018-12-25 02:59:11 -08:00
Jeff Johnson
9851fcc55b qcacld-3.0: Converge on struct add_ts_param
The driver currently defines two different data structures to hold
Add Tspec parameters:
- tAddTsParams
- struct add_ts_param

In this case having two different structures to provide the same
functionality is pointless. Furthermore, due to the way in which these
structures are used, there is an implicit requirement that they be
exactly identical. This approach is very fragile. To align with the
converged software architecture and to improve code maintainability
remove the legacy typedef and exclusively use the unified WMI
structure.

Change-Id: I298202748b8a0f6c2a9f8a36ca7cdee071d000bf
CRs-Fixed: 2371914
2018-12-25 02:59:10 -08:00
Jeff Johnson
cf2ec16b6a qcacld-3.0: Converge on struct delts_req_info
The driver currently defines two different data structures to hold
Delete Tspec Request parameters:
- tSirDeltsReqInfo
- struct delts_req_info

In this case having two different structures to provide the same
functionality is pointless. Furthermore, due to the way in which these
structures are used, there is an implicit requirement that they be
exactly identical. This approach is very fragile. To align with the
converged software architecture and to improve code maintainability
remove the legacy typedef and exclusively use the unified WMI
structure.

Change-Id: I0951c8da636bcbf81a335c0ea1250d721ca5c573
CRs-Fixed: 2371913
2018-12-25 02:59:06 -08:00
Jeff Johnson
5402441a01 qcacld-3.0: Converge on struct aggr_add_ts_param
The driver currently defines two different data structures to hold
aggregate AddTspec parameters:
- tAggrAddTsParams
- struct aggr_add_ts_param

In this case having two different structures to provide the same
functionality is pointless. Furthermore, due to the way in which these
structures are used, there is an implicit requirement that they be
exactly identical. This approach is very fragile. To align with the
converged software architecture and to improve code maintainability
remove the legacy typedef and exclusively use the unified WMI
structure.

Change-Id: I960bd79b04838ac675ad49e332a47671faccaaa7
CRs-Fixed: 2371912
2018-12-25 02:59:02 -08:00
nshrivas
706e9072d0 Release 5.2.0.113G
Release 5.2.0.113G

Change-Id: I2a78b41e77c0171d33499429a6f3fd5c83e09cbe
CRs-Fixed: 774533
2018-12-25 00:40:35 -08:00
Jeff Johnson
56471b94c5 qcacld-3.0: Converge on struct mac_tspec_ie
The driver currently defines two different data structures to hold
a TSpec IE field:
- tSirMacTspecIE
- struct mac_tspec_ie

In this case having two different structures to provide the same
functionality is pointless. Furthermore, due to the way in which these
structures are used, there is an implicit requirement that they be
exactly identical. This approach is very fragile. To align with the
converged software architecture and to improve code maintainability
remove the legacy typedef and exclusively use the unified WMI
structure.

Change-Id: I2e9da1d72dae3c4b0baa13306ee7ec127895a4f2
CRs-Fixed: 2371911
2018-12-25 00:40:34 -08:00
Jeff Johnson
312348f6ff qcacld-3.0: Converge on struct mac_ts_info
The driver currently defines two different data structures to hold
a TS Info field:
- tSirMacTSInfo
- struct mac_ts_info

In this case having two different structures to provide the same
functionality is pointless. Furthermore, due to the way in which these
structures are used, there is an implicit requirement that they be
exactly identical. This approach is very fragile. To align with the
converged software architecture and to improve code maintainability
remove the legacy typedef and exclusively use the unified WMI
structure.

Change-Id: I95bcb4364ee7e3108137c8ceeedf05c7a53bc393
CRs-Fixed: 2371910
2018-12-25 00:40:29 -08:00
Jeff Johnson
92bf60e67a qcacld-3.0: Rename lim_process_ft_aggr_qo_s_rsp()
The function name lim_process_ft_aggr_qo_s_rsp() is mangled,
originally produced by automated camelCase conversion. Rename to
lim_process_ft_aggr_qos_rsp() to make more sense.

Change-Id: I8ca5888594d4384020d14804524f9a669ae8de08
CRs-Fixed: 2371909
2018-12-25 00:40:25 -08:00
nshrivas
655fbbff9d Release 5.2.0.113F
Release 5.2.0.113F

Change-Id: Ib30ce4977f59a085b50168a481b7c2171ff92dee
CRs-Fixed: 774533
2018-12-24 22:29:37 -08:00
Zhang Qian
e33b4b94f8 qcacld-3.0: Clean up OCB legacy code
Clean up OCB legacy code after feature componentization.

CRs-Fixed: 2177619
Change-Id: Ib8a26c9e67e78e53f8b2b4929276060687254ea1
2018-12-24 22:29:37 -08:00
gaurank kathpalia
ece50259ec qcacld-3.0: Set passive scan as false in ACS scan req
Currently the driver doesn't set the passive scan req flag
as false which results in passive scan, and thus introduces
latency.

Fix is to set passive scan as false in ACS scan req.

Change-Id: I1274a4ccb9d99d568c32aeea1a65e4637a82b9c8
CRs-Fixed: 2372103
2018-12-24 22:29:32 -08:00
nshrivas
ab50883975 Release 5.2.0.113E
Release 5.2.0.113E

Change-Id: I561d723e67d5d394d0a4d75c0c68509c90b5157e
CRs-Fixed: 774533
2018-12-24 12:15:45 -08:00
Ashish Kumar Dhanotiya
bf00f82427 qcacld-3.0: Validate all channels for avoid_freq channel list
In avoid frequency vendor command, only data validation is
being done but each individual channel is not getting validated
which may lead to an array out of bound access as the array
which is used to cache the channels has the size of valid number
of channels.

To avoid this, add a check to validate each channel before
updating the unsafe channel list array.

Change-ID: I433e9297207869e43d1a6ee2d621bded2f562656
CRs-Fixed: 2341890
2018-12-24 12:15:44 -08:00
nshrivas
488ac6dba7 Release 5.2.0.113D
Release 5.2.0.113D

Change-Id: Ibbcdc79de4664b4637f2db6362774874337e74a1
CRs-Fixed: 774533
2018-12-24 10:06:35 -08:00
Nachiket Kukade
13bbe41414 qcacld-3.0: Don't configure RA filtering when APF is supported
RA filter is getting configured while APF is supported.
Since APF implementation internally handles RA filtering,
this is not needed. Therefore if APF is enabled in INI
and target supports it, do not configure RA filtering.

Don't configure RA filtering when APF is supported.

Change-Id: Iabb75b46fce64b2c4a7a303848d7cb6b4714253b
CRs-Fixed: 2352248
2018-12-24 10:06:35 -08:00
nshrivas
b5e5d84ee2 Release 5.2.0.113C
Release 5.2.0.113C

Change-Id: Id90399d390f4287f81cbf1de3dc2bb6dc6f73fce
CRs-Fixed: 774533
2018-12-24 03:32:38 -08:00
Yeshwanth Sriram Guntuka
14ab04c72f qcacld-3.0: Add host support for db2dbm RSSI changes
Add host support for db2dbm RSSI changes. Firmware
indicates this capability when underlying hardware
has RSSI reporting feature. Based on this capability
host will know if firmware sends SNR or RSSI. If no
capablity is present then host will convert SNR to
rssi using a fixed offset of -96. If capability is
present host will directly use the rssi as it is.

Change-Id: I9058f16c6280d466feb96cf88a8a0d8cd7b02032
CRs-Fixed: 2364023
2018-12-24 03:32:38 -08:00
nshrivas
2cd4c0a291 Release 5.2.0.113B
Release 5.2.0.113B

Change-Id: Ie6ff89c599989b8b45d7b3ebc40a5c506dc15b51
CRs-Fixed: 774533
2018-12-24 00:10:52 -08:00
Arif Hussain
b6ec264531 qcacld-3.0: Add null pointer validation in wma_ll_stats_evt_handler()
Add validation code in wma_ll_stats_evt_handler().

Change-Id: I7d0331ce18b16650540724917194defaf65aed10
CRs-Fixed: 2348596
2018-12-24 00:10:51 -08:00
nshrivas
9f4da456d1 Release 5.2.0.113A
Release 5.2.0.113A

Change-Id: If8bfe386ca215027b81e856f131ffc15be77eb75
CRs-Fixed: 774533
2018-12-23 21:58:40 -08:00
hqu
34a79332a2 qcacld-3.0: Fix seven memory leak in function wma_hold_req_timer
In wma_hold_req_timer(), if wma_crash_on_fw_timeout()
is true, SSR will be triggered, but allocated memory
such as user_data, params and resp are not freed,
result in memory leak.

Fix is to still do wma_send_msg_high_priority() when
wma_crash_on_fw_timeout()is true, so allocated memory
can be freed.

Change-Id: I798bb864e8ad6dc7eb67401a820dc0896892e65e
CRs-Fixed: 2370594
2018-12-23 21:58:40 -08:00
Rakshith Suresh Patkar
c107967468 qcacld-3.0: Use new accessor macro for map_index in qdf_nbuf_cb
The existing accessor macro NBUF_MAP_ID is obsoleted due to
restructuring of qdf_nbuf_cb.

Use new macro QDF_NBUF_CB_RX_MAP_IDX to access map_index.

Change-Id: I23650781cdd770f25b72a0a5fe55acc12d71cb64
CRs-Fixed: 2370724
2018-12-23 21:58:36 -08:00
nshrivas
d8f7c75e12 Release 5.2.0.113
Release 5.2.0.113

Change-Id: If8f2eb1e4764016049712c40ea528b5efb35731b
CRs-Fixed: 774533
2018-12-23 13:59:28 -08:00
Jeff Johnson
f3827507dd qcacld-3.0: Refactor NON_AGG_RETRY configuration
One of the HDD functions with the highest cyclomatic complexity is
__wlan_hdd_cfg80211_wifi_configuration_set(). In order to reduce the
complexity there is a plan to replace the inline attribute handling
with a vtable-based approach.

As part of that goal refactor the following independent attribute
handling into a separate function and add that function to the vtable:
- QCA_WLAN_VENDOR_ATTR_CONFIG_NON_AGG_RETRY

Change-Id: I607335f5975d45f2a38503cbaaa557e02818cbdb
CRs-Fixed: 2371568
2018-12-23 13:59:28 -08:00
nshrivas
218a444821 Release 5.2.0.112Z
Release 5.2.0.112Z

Change-Id: Icd7dc733ce712d3db5ebb0a70576d6c4abe4ef55
CRs-Fixed: 774533
2018-12-23 11:37:50 -08:00
Jeff Johnson
47e2e8401b qcacld-3.0: Refactor GUARD_TIME configuration
One of the HDD functions with the highest cyclomatic complexity is
__wlan_hdd_cfg80211_wifi_configuration_set(). In order to reduce the
complexity there is a plan to replace the inline attribute handling
with a vtable-based approach.

As part of that goal refactor the following independent attribute
handling into a separate function and add that function to the vtable:
- QCA_WLAN_VENDOR_ATTR_CONFIG_GUARD_TIME

Change-Id: I3395b39fd150daba2383998d9bef1a58ac61fd4d
CRs-Fixed: 2371567
2018-12-23 11:37:50 -08:00
Jeff Johnson
f15ede01fa qcacld-3.0: Refactor STATS_AVG_FACTOR configuration
One of the HDD functions with the highest cyclomatic complexity is
__wlan_hdd_cfg80211_wifi_configuration_set(). In order to reduce the
complexity there is a plan to replace the inline attribute handling
with a vtable-based approach.

As part of that goal refactor the following independent attribute
handling into a separate function and add that function to the vtable:
- QCA_WLAN_VENDOR_ATTR_CONFIG_STATS_AVG_FACTOR

Change-Id: Ife9ca5b48a3b64b3de674873a2faf2926df4e60a
CRs-Fixed: 2371566
2018-12-23 11:37:44 -08:00
Jeff Johnson
1feb8a62af qcacld-3.0: Refactor QPOWER configuration
One of the HDD functions with the highest cyclomatic complexity is
__wlan_hdd_cfg80211_wifi_configuration_set(). In order to reduce the
complexity there is a plan to replace the inline attribute handling
with a vtable-based approach.

As part of that goal refactor the following independent attribute
handling into a separate function and add that function to the vtable:
- QCA_WLAN_VENDOR_ATTR_CONFIG_QPOWER

Change-Id: Ic10dd8ef706cb73028fe8523dbb6e0cc0a15ac4a
CRs-Fixed: 2371565
2018-12-23 11:37:39 -08:00
Jeff Johnson
3d4f64cc60 qcacld-3.0: Refactor SCAN_ENABLE configuration
One of the HDD functions with the highest cyclomatic complexity is
__wlan_hdd_cfg80211_wifi_configuration_set(). In order to reduce the
complexity there is a plan to replace the inline attribute handling
with a vtable-based approach.

As part of that goal refactor the following independent attribute
handling into a separate function and add that function to the vtable:
- QCA_WLAN_VENDOR_ATTR_CONFIG_SCAN_ENABLE

Change-Id: Ia9e97c19c26d7fbdaed0ddaec2def1bdc78ae34c
CRs-Fixed: 2371564
2018-12-23 11:37:34 -08:00
nshrivas
6df886e813 Release 5.2.0.112Y
Release 5.2.0.112Y

Change-Id: I84e6e29df655a5bddaf935453ec4c3bb8f4467bb
CRs-Fixed: 774533
2018-12-22 14:06:11 -08:00
Liangwei Dong
d7c5e01a75 qcacld-3.0: remove legacy roc struct/functions
After p2p componentized, the legacy roc data struct and
functions are not needed. Remove below data struct and
functions:
lim_remain_on_chn_rsp
lim_process_remain_on_chnl_req
lim_process_remain_on_chn_timeout
lim_send_p2p_action_frame
lim_send_sme_roc_rsp
struct sir_roc_rsp
struct sSirRemainOnChnReq
tSirRemainOnChnReq *gpLimRemainOnChanReq

Change-Id: Ie1644bf973e8aba30f44e0750f97b21ec31deb69
CRs-Fixed: 2367914
2018-12-22 14:06:11 -08:00
nshrivas
b32cb26dee Release 5.2.0.112X
Release 5.2.0.112X

Change-Id: If650ffcb4c32573a3a095dc35df025d12eb66e40
CRs-Fixed: 774533
2018-12-22 07:45:00 -08:00
Jeff Johnson
9381d0329f qcacld-3.0: Refactor LRO configuration
One of the HDD functions with the highest cyclomatic complexity is
__wlan_hdd_cfg80211_wifi_configuration_set(). In order to reduce the
complexity there is a plan to replace the inline attribute handling
with a vtable-based approach.

As part of that goal refactor the following independent attribute
handling into a separate function and add that function to the vtable:
- QCA_WLAN_VENDOR_ATTR_CONFIG_LRO

Change-Id: I5627292f84cefe79b1a89d1be84cea5d8a7c6cc1
CRs-Fixed: 2371563
2018-12-22 07:45:00 -08:00
Jeff Johnson
6db916208e qcacld-3.0: Refactor LISTEN_INTERVAL configuration
One of the HDD functions with the highest cyclomatic complexity is
__wlan_hdd_cfg80211_wifi_configuration_set(). In order to reduce the
complexity there is a plan to replace the inline attribute handling
with a vtable-based approach.

As part of that goal refactor the following independent attribute
handling into a separate function and add that function to the vtable:
- QCA_WLAN_VENDOR_ATTR_CONFIG_LISTEN_INTERVAL

Change-Id: I61b679c4fda4b803a8721054694102c7af46fc88
CRs-Fixed: 2371562
2018-12-22 07:44:54 -08:00
Jeff Johnson
bcaeafb9f6 qcacld-3.0: Refactor MODULATED_DTIM configuration
One of the HDD functions with the highest cyclomatic complexity is
__wlan_hdd_cfg80211_wifi_configuration_set(). In order to reduce the
complexity there is a plan to replace the inline attribute handling
with a vtable-based approach.

As part of that goal refactor the following independent attribute
handling into a separate function and add that function to the vtable:
-QCA_WLAN_VENDOR_ATTR_CONFIG_MODULATED_DTIM

Change-Id: Iebadf68ec920ab4198feb5b8ee99ec3d8b961173
CRs-Fixed: 2371561
2018-12-22 07:44:49 -08:00
Jeff Johnson
7f4fd70da6 qcacld-3.0: Refactor FINE_TIME_MEASUREMENT configuration
One of the HDD functions with the highest cyclomatic complexity is
__wlan_hdd_cfg80211_wifi_configuration_set(). In order to reduce the
complexity there is a plan to replace the inline attribute handling
with a vtable-based approach.

As part of that goal refactor the following independent attribute
handling into a separate function and add that function to the vtable:
- QCA_WLAN_VENDOR_ATTR_CONFIG_FINE_TIME_MEASUREMENT

Change-Id: I8b9914936ed9077b487bb8092246a64a6c5f914b
CRs-Fixed: 2371560
2018-12-22 07:44:44 -08:00
Jeff Johnson
522464b830 qcacld-3.0: Use vtable for CONFIG_SCAN_DEFAULT_IES
One of the HDD functions with the highest cyclomatic complexity is
__wlan_hdd_cfg80211_wifi_configuration_set(). In order to reduce the
complexity there is a plan to replace the inline attribute handling
with a vtable-based approach.

The QCA_WLAN_VENDOR_ATTR_CONFIG_SCAN_DEFAULT_IES attribute handling is
already in a separate function, so add that function to the vtable
instead of calling it directly.

Change-Id: Id77d491ce90bbc1d2a0569af37bba55aeeaa0295
CRs-Fixed: 2371559
2018-12-22 07:44:39 -08:00
Jeff Johnson
b48efe27f1 qcacld-3.0: Add wifi config vtable support
One of the HDD functions with the highest cyclomatic complexity is
__wlan_hdd_cfg80211_wifi_configuration_set(). In order to reduce the
complexity there is a plan to replace the inline attribute handling
with a vtable-based approach

As the first step of this refactoring add the actual vtable
infrastructure.  Later changes will refactor the attribute handling
and populate the vtables.

Change-Id: If79fc61f84bf17a39e300c18681961a4a0e01408
CRs-Fixed: 2371558
2018-12-22 07:44:34 -08:00
nshrivas
95f70363ed Release 5.2.0.112W
Release 5.2.0.112W

Change-Id: I05673c6f4bb3e2b974d774c623825b5f8760dc20
CRs-Fixed: 774533
2018-12-22 05:23:21 -08:00
Rajeev Kumar
55d9a526b3 qcacld-3.0: Dump DPT and MAC trace after LIM detects disconnection
Dump DPT and MAC trace after LIM detects disconnection caused by
deauth or disassoc such that in case of RX data stall we can get
all required logs.

Change-Id: I28b129e5b787391e0064a16d9750c463f2310199
CRs-Fixed: 2371708
2018-12-22 05:23:20 -08:00
chenguo
ac840e5400 qcacld-3.0: Enable AC based flow control by default
Enable QCA_AC_BASED_FLOW_CONTROL in Kbuild file for for all
lithium platform, including HST.

CRs-Fixed: 2371232
Change-Id: I7e755d6211106f4a5c8e9d87905f6425ece4c5c3
2018-12-22 05:23:16 -08:00
Jeff Johnson
9e760830c1 qcacld-3.0: Converge on struct mobility_domain_info
The driver currently defines three different data structures to hold
mobility domain information:
- tSirMobilityDomainInfo
- tCsrMobilityDomainInfo
- struct mobility_domain_info

To align with the converged software architecture remove the two
legacy typedefs and exclusively use the unified WMI structure.

Change-Id: I317b90e47c3db8b74a76c297f6bc42301fa2f80e
CRs-Fixed: 2369476
2018-12-22 05:23:11 -08:00
Jianmin Zhu
bf84593f36 qcacld-3.0: Replace isRoamOffloadEnabled and RoamOffloadEnabled
Replace legacy isRoamOffloadEnabled from csr_config with
converged flag lfr3_roaming_offload.
Fix CamelCase issues for roam offload part.

Change-Id: I89ceda876d5549e9b0959e7e25e317c9667594b5
CRs-Fixed: 2367873
2018-12-22 05:23:07 -08:00
nshrivas
13d9b46548 Release 5.2.0.112V
Release 5.2.0.112V

Change-Id: If3f38889778a2d7f63a709de8749943a4a9d6912
CRs-Fixed: 774533
2018-12-22 02:54:04 -08:00
Nachiket Kukade
089b98361e qcacld-3.0: Handle concurrencies with NAN Discovery
Use policy manager to set and update the NAN Discovery
related connection info. Disable NAN Discovery
explicitly for unsupported concurrencies.

Handle concurrencies with NAN Discovery interface.

Change-Id: I8c9450b034983ef0402fdc878d8b525bedac9f0b
CRs-Fixed: 2358180
2018-12-22 02:54:03 -08:00
Kiran Kumar Lokere
80734c0a31 qcacld-3.0: Fix the issue with MU EDCA param update
Calculate the CW min and max values before configure them to FW.

Change-Id: I3024fcc0aaacda5f307a1b71ea67b87b538a3664
CRs-Fixed: 2371029
2018-12-22 02:53:59 -08:00
Jianmin Zhu
e932fb02f4 qcacld-3.0: Refactor roam scan offload parameters config
After replace CONFIG_MCL with WLAN_FEATURE_ROAM_OFFLOAD in
struct roam_offload_scan_params, roam_offload_params is only
defined under MACRO WLAN_FEATURE_ROAM_OFFLOAD, any access to
roam_offload_params should be under WLAN_FEATURE_ROAM_OFFLOAD.

Refactor function wma_roam_scan_offload_mode, separate roam scan
offload parameters config to another function.

Change-Id: I3b9306ef3c3ad9c451ffb450df9521cde609bca4
CRs-Fixed: 2367841
2018-12-22 02:53:54 -08:00