Commit Graph

922 Commits

Author SHA1 Message Date
bings
c9abaf71bb qcacld-3.0: Add wma layer 11BE api
Implement 11BE api in wma layer

Change-Id: I23c8fae9e27f972dadfe8a517954481de8f92de0
CRs-Fixed: 2912568
2021-04-19 13:32:07 -07:00
Arun Kumar Khandavalli
061fe45f3c qcacld-3.0: update the eht capabilities received from firmware
Update the wma structures with the eht capabilities received
from the firmware.

Change-Id: If571ab857e1f71b972655d9d48902b28e3974b1e
CRs-Fixed: 2911863
2021-04-19 00:52:34 -07:00
Yu Wang
ffbb93ace5 qcacld-3.0: remove delay_before_vdev_stop from wma_txrx_node
The delay before vdev stop is a global config,
no need to set for each interface separately.

Change-Id: I5760cf083a6749bb82cc88635a947f1d18308dfe
CRs-Fixed: 2904748
2021-04-06 18:42:57 -07:00
sheenam monga
6e6c139e05 qcacld-3.0: Add support to offload igmp feature to fw
offload igmp feature to fw in case of suspended state
to avoid high power consumption.

Change-Id: I05fbf23dc2836f8f5dc6e2f45b35bf2d30c39790
CRs-Fixed: 2907644
2021-04-05 15:22:23 -07:00
Amruta Kulkarni
15ac4a4e5a qcacld-3.0: Support roam sync indication in CM
Add change to support roam synch indication
in connection manager.

Change-Id: I06b23ae085a5a86caf4fe04fe5929b86d8d5c543
CRs-Fixed: 2901858
2021-03-24 09:47:46 -07:00
Lincoln Tran
ab9679a5eb qcacld-3.0: Send VHT TXBF caps after vdev start
After creating the vdev, send the VHT beamforming capabalities.

Change-Id: I9c989a51dab4e239b31d0e8e25f5cf471e6aa0a6
CRs-fixed: 2902912
2021-03-22 13:30:57 -07:00
Gururaj Pandurangi
9996bc7175 qcacld-3.0: Remove feature flag WLAN_FEATURE_11W for pmf
Remove all of the conditional compilation for pmf since this
feature is mandatory for future scope from protocol point
of view.

Change-Id: Id3a2127e9ecb343ad2a0354dcbc331c22167d7fb
CRs-Fixed: 2852630
2021-03-18 00:39:42 -07:00
Abdul Muqtadeer Ahmed
70ee3f70fd qcacld-3.0: Add new WMI wakeup reason
Add the new WMI wakeup reason “WOW_REASON_FATAL_EVENT_WAKE".

Change-Id: I93b530f78f568fa88cb310c5d78cd950451fc441
CRs-Fixed: 2868523
2021-03-17 18:33:16 -07:00
Pragaspathi Thilagaraj
58581e5b19 qcacld-3.0: Fix sending vdev start again during LFR-2.0 roaming
Currently peer create response support is added for connect path
but in LFR-2.0 case also peer create response received is
processed and lim_post_join_set_link_state_callback() is called
leading to sending vdev start again.
Call the API to fill peer create wma request only for initial
connection.

Change-Id: I24140efd5541f7ed4aa3cef9efebf5a729846902
CRs-Fixed: 2856636
2021-03-15 02:49:09 -07:00
Pragaspathi Thilagaraj
d6b2eea730 qcacld-3.0: Enhance the broadcast twt capabilities population logic
Currently multiple ini is available for setting the broadcast
TWT requestor and responder configuration.
Deprecate "bcast_twt" legacy ini and also don't consider
legacy service capability WMI_SERVICE_BROADCAST_TWT.
So below is the service capability values combination
advertised by firmware:
new fw:
bcast_req bcast_resp legacy
    0        0         0       -> disable bcast
    0        1         0
    1        0         0
    1        1         1

old fw:
   0         0         1   -> enable TWT

Also change the default value of "twt_bcast_req_resp_config" ini
to 1.

Change-Id: Ic9af296b0efffc8f76f647b5830183867e0adf57
CRs-Fixed: 2873360
2021-03-15 02:49:03 -07:00
gaurank kathpalia
a7a5ac82fc qcacld-3.0: Fill peer's unicast cipher from vdev during roaming
During roaming update the peer unicast cipher from vdev crypto params.

Change-Id: Ie5f8cb951c405b50c607d416f4c6e37446048257
CRs-Fixed: 2889865
2021-03-03 02:57:06 -08:00
Bapiraju Alla
9a02b15002 qcacld-3.0: Reduce console logging from tasklet
Currently, WoW wakeup host event is handled in tasklet context and
it is taking more than 800ms to execute. This is due to excessive
logging to the console from the tasklet. As a result of this, IRQs
are getting blocked during this tasklet execution.

To avoid this, add a sysfs entry to enable/disable console logging
from host wakeup event based on requirement.

Change-Id: If91a8bd5f783f358dabf9dcf46bf4c50d05d7909
CRs-Fixed: 2881972
2021-03-02 05:36:29 -08:00
Pragaspathi Thilagaraj
1cbfd5f909 qcacld-3.0: Update ciphers in RSO command from crypto component
Currently driver fills unicast, multicast & auth mode values from
csr session which is not updated after roaming to AP with different
security profile. This causes incorrect values in AP profile command.
Send correct authmode/unicast and multicast ciphers in AP profile
command to firmware.

Also modify the below 2 ini default values as:
candidate_min_rssi_for_beacon_miss=-75
candidate_min_rssi_for_disconnect=-75

Change-Id: I33cc9f516447071e977768f01738eea7a2ecd99c
CRs-Fixed: 2879943
2021-02-18 12:06:47 -08:00
Amruta Kulkarni
e4df806aa6 qcacld-3.0: Support roam invoke request in connection manager
Add change to support roam invoke request in connection manager

Change-Id: I87bd39263c7c210fa87250aca59ef5f2f89d4c67
CRs-Fixed: 2869211
2021-02-18 03:12:04 -08:00
Kiran Kumar Lokere
cb94b90521 qcacld-3.0: Add support for BSS max idle period feature
Add support to parse the BSS max idle period IE and configure
the idle period to FW if it is present in assoc response frame.

Change-Id: I144f2b1789775461a5df702dee72d0f73b9023cf
CRs-Fixed: 2788542
2021-02-02 21:05:15 -08:00
Alan Chen
beb98ec261 qcacld-3.0: Define a new wakelock for WPS probe request wakeup
Define a new wakelock for WPS probe request wakeup.

Change-Id: Idd39664dc70db4dd15594f77846b74c36049659c
CRs-Fixed: 2863611
2021-01-27 23:55:18 -08:00
Rajasekaran Kalidoss
f3b6093c65 qcacld-3.0: Add support to get TWT target capabilities
Add support to get the following TWT target capabilities
1) Nudge 2) all twt and 3) statistics

Change-Id: If74e99b0ff920481bcabb0300129b9067082d113
CRs-Fixed: 2854927
2021-01-20 05:56:43 -08:00
Deeksha Gupta
eea537d2a5 qcacld-3.0: Add new API to convert AKM into wmi command
Initially, Host updates the AKM only after the EAPOL
handshake. Due to this, Enterprise auth is not detected
for initial connection.

So, add new API which gets the AKM from vdev and convert
it to WMI enum and send it in peer assoc command to firmware
during initial connection. In Firmware, this will help to
detect Enterprise auth as part of connection and prioritize
the WLAN connection over BT traffic accordingly.

Change-Id: I503601ca29f3aadd1ee359a535b4e60133f66476
CRs-Fixed: 2844318
2021-01-19 03:51:51 -08:00
gaurank kathpalia
85f376f0a9 qcacld-3.0: Move code from CSR to new RSO structs part 2
Move code from CSR to roam scan offload to use new converged
structures.

Change-Id: Ic67be46bd33930cdacc49e2e410a5e1ae7b303ee
CRs-Fixed: 2857319
2021-01-18 21:45:21 -08:00
gaurank kathpalia
c86ce01b74 qcacld-3.0: Replace CSR API with connection mgr API part 3
Replace the CSR API to get connect info with cnx mgr API.

Change-Id: Id4b92ba5db10935b5deccdacd72218d4a087c61d
CRs-Fixed: 2852437
2021-01-11 15:13:25 -08:00
Ashish Kumar Dhanotiya
381b94ab89 qcacld-3.0: Update he and ht rate flags correctly
Currently driver does not update he and ht rate flags correctly
in wma as rate flags should include all the subsets of the
lower rate sets, which is not the case today and driver only
updates the higher rate flag. Because of which it leads to
invalid computation of txrate at the kernel.

To address this issue, update he and ht rate flags correctly in
wma.

change-Id: I6ec68af1f75650990384efbd61536042329665b2
CRs-Fixed: 2837245
2021-01-04 13:51:33 -08:00
Paul Zhang
90eb7a933b qcacld-3.0: Add support op QCA_WLAN_TWT_NUDGE
This is the new OP for vendor sub command
QCA_NL80211_VENDOR_SUBCMD_CONFIG_TWT to set twt
suspend/resume parameters.

Change-Id: If4ec03364f41ca4960673fb7a13b91a929cfe567
CRs-Fixed: 2797664
2020-12-21 04:49:40 -08:00
Subrat Dash
fec051ecae qcacld-3.0: Add support to enable TWT roles
There are cases where only a few TWT roles may be required
to be enabled. For example TWT Requestor role alone or
TWT Respondor role alone. Also, it could be unicast TWT only
and disable broadcast TWT.

Support broadcast TWT  configuration in requestor and responder
role by adding new INI.
Extend the use of existing requestor and responder INIs to further
enable requestor and responder roles itself.

Change-Id: I3dfa196edfda9cafd01fa56c0bb6ce73e27b4144
CRs-Fixed: 2828718
2020-12-14 09:29:44 -08:00
Ashish Kumar Dhanotiya
44625bfc47 qcacld-3.0: Update max he mcs index correctly
Currently driver does not consider kernel version
when it updates max he mcs index, kernel version
prior to 5.4 supports max he index as 11 and while
5.4 kernel version onwards max he index 14 is
supported. In current implementation driver might
update max he index more than 11 for kernel version
less than 5.4 also which is an invalid value for kernel
version less than 5.4.

To address above issue update correct max he mcs index based
on kernel version.

Change-Id: Ic011f647dcdfa6c039a3f1299364ac337820a656
CRs-Fixed: 2826282
2020-12-14 03:42:14 -08:00
Srinivas Girigowda
50a57ae9f7 qcacld-3.0: wma: Remove logs for wma_handle checks
wma_validate_handle() function already takes care of logging the
caller function name in case of any error.
Hence there is no need to add the error log again.
Getting rid of these unnecessary logs reduces driver memory footprint.

Change-Id: I65f87eee08ad87579ea3cdeab0a6db2c2db02fb7
CRs-Fixed: 2833851
2020-12-08 19:28:28 -08:00
Gururaj Pandurangi
3eede78333 qcacld-3.0: Add support to view peer RSSI value in auth/assoc req pkt
Add support to view station's peer RSSI value in auth and assoc request
packet by extracting rssi from probe request and passing it down to
FW in the auth request and assoc request mgmt frames.

Change-Id: I980427756ef542d054221d52693e3c89f307a658
CRs-Fixed: 2832977
2020-12-08 07:21:23 -08:00
Srinivas Girigowda
328cdc189c qcacld-3.0: Introduce wma_validate_handle()
Introduce wma_validate_handle() with the caller function name
embedded in it to validate the WMA handle and log incase
of error. Calling functions can avoid logging in case
wma_validate_handle() returns -EINVAL. This reduces logging and
thereby memory foot print.

Change-Id: If38436a590d8b950509bde40468b9ddc3cf33e8d
CRs-Fixed: 2833040
2020-12-07 22:58:40 -08:00
gaurank kathpalia
94cdcf0ddb qcacld-3.0: Add logic to delete bss peer from connection manager
Add logic to delete bss peer from connection manager.

Change-Id: Ic0f53e87525af670f7a87d84d168276bbcd73efd
CRs-Fixed: 2832733
2020-12-07 14:58:29 -08:00
Amruta Kulkarni
4aa99209f9 qcacld-3.0: Change RRM Beacon Reporting logic
Previous logic:
While reporting beacon reports a maxmium of
7 Dot11fIEMeasurementReports are sent in one
mgmt frame.

New logic:
Calculate the max number of frames that can fit
in one mgmt frame and add them to the report.

Change-Id: Ic413c94ea1f012a647dfd7cd21b13bc123ebfd97
CRs-Fixed: 2809395
2020-12-01 23:28:40 -08:00
Pragaspathi Thilagaraj
950deb641d qcacld-3.0: Add support for peer create confirmation event
Firmware sends peer create confirmation to detect duplicate peer
on other vdev. If the status field in the
wmi_peer_create_conf_event_fixed_param is 0, peer creation is
successful.
Add support to handle the peer create confirmation command for
sta mode. For roaming scenario, the peer will be internally
created by the firmware, so bail out after creating object
manager peer/datapath peer without sending the peer create
command similar as the current implementation.
For SAP/P2P Go mode the legacy peer create path will be used.

Proceed to do post linkstate change if status is success, else
do vdev stop and indicate failure to upper layers

Change-Id: I0abbd70dd509f2b9afa8d4d7db1774e289d1e021
CRs-Fixed: 2747870
2020-11-21 09:13:06 -08:00
Amar Singhal
618b6939f2 qcacld-3.0: Do not loop tx power from firmware
firmware sends Hw-limit tx power in vdev response and roam sync.
Do not loop back the same value to firmware; since firmware already
knows the value.

Change-Id: Ie9ba329516d5d75329bb1baaed13c8bdb7d1eb83
CRs-Fixed: 2823108
2020-11-20 08:35:10 -08:00
Srinivas Girigowda
27d9cc4eec qcacld-3.0: wma: Remove logs for cds_get_context() checks
cds_get_context() function already takes care of logging the
caller function name in case of any error.
Hence there is no need to add the error log again.
Getting rid of these unnecessary logs reduces driver memory footprint.

CRs-Fixed: 2815522
Change-Id: Ibb17fb043d6addaf0fa86aeb882178ef27535162
2020-11-12 05:40:05 -08:00
hqu
733fabb837 qcacld-3.0: Remove old rso path code [PART 2]
Since new rso ROAM_OFFLOAD_V1 path is enabled, remove
the old rso path code for wma layer related files.

Change-Id: Ie4639a6f04877aa41046706118936560200162a6
CRs-Fixed: 2808064
2020-10-29 17:50:49 -07:00
hqu
9fb94a7885 qcacld-3.0: Remove old rso path code [PART 1]
Since new rso ROAM_OFFLOAD_V1 path is enabled, remove
the old rso path code for file wma_scan_roam.c.

Change-Id: Ib50d49c566d9aaf124f2eecebe4b652dcbb3b5df
CRs-Fixed: 2807015
2020-10-29 07:00:25 -07:00
Jingxiang Ge
407de9891a qcacld-3.0: Support link rate for mcs12/13
This is to support he mcs12/13 for 4K QAM.

Change-Id: I07c565498fb99387f7aac3f36103fbc90de67b7f
CRs-Fixed: 2802600
2020-10-26 16:55:21 -07:00
Abdul Muqtadeer Ahmed
8ee3a92264 qcacld-3.0: Check for WMI_SERVICE_THERM_THROT and Thermal Mitigation
WMI send command WMI_PDEV_GET_TEMPERATURE_CMDID to FW without
checking whether WMI_SERVICE_THERM_THROT and Thermal Mitigation
is enable or disable.

To address this issue add a check whether WMI_SERVICE_THERM_THROT
and Thermal Mitigation is enable or disable.

Change-Id: I1485b2ba6ee64143c9b7d4c8c4a8feadddbaae59
CRs-Fixed: 2698143
2020-10-15 11:42:14 -07:00
Alan Chen
827413768c qcacld-3.0: Remove gOclCfg ini
gOclCfg is no longer supported and is being overwritten by
FW init config. Thus, remove gOclCfg ini from code.

Change-Id: Idf4d5280043a47650a68dc2159c386d94b0be5e9
CRs-Fixed: 2791392
2020-10-12 22:11:01 -07:00
Utkarsh Bhatnagar
f33c6a7e34 qcacld-3.0: Remove HIDDEN_SSID_RESTART_RSP msg type
Remove SIR_HAL_HIDDEN_SSID_RESTART_RSP and
WMA_HIDDEN_SSID_RESTART_RSP as they aren't used
anywhere.

Change-Id: I89b70786cfc40ad7c781d3ad7e058edcaadfa127
CRs-Fixed: 2791880
2020-10-06 19:31:21 -07:00
Bapiraju Alla
5191713c4b qcacld-3.0: Send get_station and ll_stats req in a single command
Currently ll_stats and get_station requests are sent back to back
from user space. The firmware time difference between these two commands
results in extra sleep and wakeup for Q6.

To avoid this extra Q6 sleep and wake, send both requests in a single
command from the driver if the firmware supports that operation. Cache
the get_station results in the driver until user space request reach
to the driver.

Change-Id: Ic7c6232558b9411106bf3fb88ec8d9b0b28b045d
CRs-Fixed: 2778476
2020-09-30 11:10:21 -07:00
Jianmin Zhu
a4e47ce584 qcacld-3.0: Remove wlan_reg_chan_to_freq
Remove wlan_reg_chan_to_freq due to channel ambiguity.
For some legacy channel if from ini or OTA, replace it with
wlan_reg_legacy_chan_to_freq.

Change-Id: Ia59f150d36262e21d13b7e815f599d94c3f28676
CRs-Fixed: 2776235
2020-09-24 10:45:35 -07:00
Rajasekaran Kalidoss
3e35bdbafe qcacld-3.0: Serialize TWT commands to allow one command for TWT operation
Post message to the scheduler to send twt wmi command and receive the
response event. check twt callback in sme_context to allow only one
twt command for a particular twt operation at any time. Return EBUSY
if a TWT operation is already in progress.

CRs-Fixed: 2769378
Change-Id: I7d3bce413e12c2775a7b2e8e2c5259a8b8e55131
2020-09-16 21:04:33 -07:00
Will Huang
3930c36458 qcacld-3.0: Put install key after associate complete for FT roam
If FT roam with LFR2.0 enabled, pre-auth/reassociate happen in host,
PTK will be installed early after pre-auth negotiation, so need put it
after association complete, but currently we only save PTK key material
and don't install it.

Because crypto was converged and original eWNI_SME_FT_UPDATE_KEY has
been removed, move delayed installing key after association complete
notified at hdd layer, rather than in function wma_add_sta_req_sta_mode
at wma layer. And remove useless code related with original FT key
installing.

Change-Id: I3bc52b65d17342edab755f7904d743c3433f99ce
CRs-Fixed: 2768307
2020-09-15 23:03:46 -07:00
Ashish Kumar Dhanotiya
4218ed940a qcacld-3.0: Update rate flags correctly
Currently driver does not update the rate flags correctly
in wma as rate flags should include all the subsets of the
lower rate sets, which is not the case today and driver only
updates the higher rate flag. Because of which it leads to
invalid computation of txrate at the kernel.

To address this issue, update the rate flags correctly in
wma.

Change-Id: I5529532b3d41b68693b5b4b8952ee0f1414354db
CRs-Fixed: 2776370
2020-09-15 23:03:42 -07:00
Liangwei Dong
662bade898 qcacld-3.0: Add INI to configure thermal action
There is customer requirement that once wifi chip overheat,
we should switch the tx chain mask to 1X1 to cool down the
chip instead of halting the tx completely.
Add new INI gThermalMgmtAction to configure thermal mgmt action
with default 0. The valid thermal mgmt action INI value is defined
as enum thermal_mgmt_action_code. To set it to 3 -
THERMAL_MGMT_ACTION_CHAINSCALING to meet customer requirement.

Change-Id: I88b1237fae1f476ad9ff0e7b5a469ec314a42bf9
CRs-Fixed: 2765289
2020-09-15 11:38:26 -07:00
Ashish Kumar Dhanotiya
a245fd3dc4 qcacld-3.0: Change legacy macro msg types to enum msg types
Driver maintains a global list of messages (qdf trace) which
different modules posts to each other. If required, this list
can be processed with the help of post processing cmm script.

Currently some of the message types are defined as macros and
these macros can not be used directly in the post processing
cmm script. Enums are much more easy to process with the help
of the cmm script.

To address above issue below fixes are done with this change:
1. Assign enum name to pe message types, lim message types,
   sme message type.
2. Change MLM message type from macros to enum type.
3. Change WMA message type from macros to enum type.

Change-Id: Ibd91a5371457a542cd141f680dda44a48b6f7d98
CRs-Fixed: 2719698
2020-09-09 16:19:37 -07:00
gaurank kathpalia
0ea2611649 qcacld-3.0: Add RSO logic to send roam trigger from target if
Add RSO logic to send roam trigger from target if along with
some optimization to move old logic in ROAM_OFFLOAD_V1.

Change-Id: I38e7fb4f8873328097df7e3a25d6c709f8d69b33
CRs-Fixed: 2765155
2020-08-28 23:31:08 -07:00
Pragaspathi Thilagaraj
6737b67acf qcacld-3.0: Invoke wma_remove_peer() in HO fail vdev stop resp path
In LFR3 Handoff failure case, data path peer teardown is not
done prior to cdp peer delete and this causes bug_on to be
triggered during cdp peer delete.

Fix is to invoke wma_remove_peer() in vdev stop response path
with ho_failed flag set.

Change-Id: I112b2e8fe1792a967c48138113766b649ee1ba26
CRs-Fixed: 2760180
2020-08-26 17:19:14 -07:00
Pragaspathi Thilagaraj
eec05fff64 qcacld-3.0: Add support to send RSSI_CHANGE_THRESHOLD
Add support to send WMI_RSSI_CHANGE_THRESHOLD command to firmware
in connection manager.

Change-Id: I97d4b8f8fc0e938ede0e61d44eb8ffbcbb0fb4ff
CRs-Fixed: 2761043
2020-08-25 05:41:15 -07:00
Bapiraju Alla
fa408b37c1 qcacld-3.0: Add support for tx_time and rx_time in wifi_channel_stats
Currently wifi_channel_stats has cca_busy_time statistic which is
measured after excluding own tx_time but not own rx_time. By definition,
CCA busy time means amount of time for which channel is detected as busy
after excluding it's own tx and rx time.

Add support for tx and rx time in the channel statistics. This will enable
provision to calculate CCA busy time with including/excluding channel
tx and rx time.

Change-Id: I8e295ed4cd7b2ceca44b64140977603a4d8e8764
CRs-Fixed: 2732018
2020-08-23 17:37:37 -07:00
Pragaspathi Thilagaraj
9c8821e63c qcacld-3.0: Add changes to define roam scan mode commmand structures
Add changes to define structure to hold the WMI_ROAM_SCAN_MODE
command related parameters.
Also added minor cleanup changes.

Change-Id: I24ef18e05de8dd05ee437e440651ea9ab0731e46
CRs-Fixed: 2758316
2020-08-23 17:37:32 -07:00