Commit graph

21,691 commits

Author SHA1 Message Date
Lincoln Tran
f493ef7ef4 qcacld-3.0: Add fixes related to 6ghz vlp feature
Fix the PSD start freq calculation for sap case.
Also, remove duplication of 6ghz freq checks in
tpc power calculation api.

Change-Id: I5f1773b551ff7b893514b5c7720c6684fc100077
CRs-fixed: 2879460
2021-02-25 20:23:17 -08:00
Gururaj Pandurangi
08fe80c89a qcacld-3.0: Fix issues related to 6ghz vlp feature
Call TPC calculation API from lim_handle_add_bss_rsp i.e.
after receiving vdev start response from FW.
TPC calculation API was called from lim_mlm_add_bss for SAP
and since this was happening before host received vdev start
response, HW limit for power from FW was zero and it
affected TPC calculation.
Also, API to check psd power flag for 6ghz returns true for
5ghz channels, so modify it to call under 6ghz channel check.
In TPE IE, max_tx_power_count values is one less than
num_pwr_levels so add 1 to count before assigning it to
num_pwr_levels for 5GHz TPE, non-PSD case.

Change-Id: I7e2ca0b6cf6c54528ade6263a87459e2c21098b2
CRs-Fixed: 2877654
2021-02-25 20:23:12 -08:00
Gururaj Pandurangi
3c26aa49a5 qcacld-3.0: Add backward compatibility for old TPC event
Host will send TPC power to FW via new WMI cmd
WMI_VDEV_SET_TPC_POWER_CMDID going forward instead of
WMI_VDEV_PARAM_TX_PWRLIMIT to accommodate even 6GHz channels.
But, to support backward compatiiblity for New Host+old FW
the TPC power will be sent to FW via old WMI cmd with the
help of a service bit.

Change-Id: I9324299ca4f92f2adce92983385b66c04368fe55
CRs-Fixed: 2872238
2021-02-25 20:23:08 -08:00
Lincoln Tran
675235a149 qcacld-3.0: Process country and TPE IE
Validate and process the country IE from the beacon frame.
Validate and process the TPE IE. Store the tx power values in the
vdev_mlme struct for future processing.

Change-Id: I57acca2257a263225d9bafb0f94e195a99224a60
CRs-fixed: 2841732
2021-02-25 20:23:03 -08:00
Gururaj Pandurangi
b0096c4477 qcacld-3.0: Add TPC calculation logic to obtain max tx power
Add new lim api to calculate an array of tx power values. Include
hw limit from Fw and TPE values from IE along with existing
params to determine TPC power.
The new struct reg_tpc_obj in vdev_mlme object will contain max
tx power, center frequencies, number of power levels,
PSD power check, EIRP power, AP power type for 6G and TPE
power values and will be sent to FW via new WMI cmd
WMI_VDEV_SET_TPC_POWER_CMDID.

Change-Id: I80a2454c2ef0dbc3b1d69e8b233b1a56567ec1a1
CRs-Fixed: 2841873
2021-02-25 20:22:58 -08:00
Gururaj Pandurangi
0aae9ef6c1 qcacld-3.0: Handle AP power type in he_ops IE for 6GHz
Parse reg_info subfield present in he_ops IE from beacon on
6GHz channels to obtain AP's power type for STA.
In case of SAP, get the AP power type from SAP decision
engine and populate it in dot11f API.

Change-Id: Iec317ea35936e7a5c2372d1188fe5940afb0c28d
CRs-Fixed: 2869367
2021-02-25 20:22:54 -08:00
Gururaj Pandurangi
dd2b8dc1a8 qcacld-3.0: Add TPE IE to beacon frame structure
Add TPE IE to beacon frame struct tDot11fBeacon.

Change-Id: Ibc6bf166ee2830cc253bde3788569f5a49225458
CRs-Fixed: 2864125
2021-02-25 20:22:50 -08:00
Gururaj Pandurangi
1bc782ae31 qcacld-3.0: Add TPE IE to beacon frame structure
Add TPE IE to beacon frame struct tDot11fBeaconIEs.

Change-Id: I80ab213da97385df7b5c3eabb99b011b1a3dfba2
CRs-Fixed: 2848867
2021-02-25 20:22:46 -08:00
Amar Singhal
efdd75523f qcacld-3.0: Modify TPE information elements for 6ghz
Re-write TPE IE populating code. For 6ghz AP, there can be multiple
TPE IEs.The TPE IE can be of type PSD or non-psd.

Change-Id: I029d4826cbc73abb382d885260c355217b2cc6b4
CRs-Fixed: 2863009
2021-02-25 20:22:42 -08:00
Amar Singhal
46b1af6a2e qcacld-3.0: modify populate_dot11f_country for 6 ghz
For SAP, country IE takes different input for 6ghz channels.
for 6 ghz, we need to add operating class triplet also. So, before
the sub-band triplet, operating class triplet needs to be added.

Change-Id: I43d37d0f23276dbe7fed35d8c2251d9e15b16fa9
CRs-fixed: 2862999
2021-02-25 20:22:38 -08:00
Lincoln Tran
46d53fb739 qcacld-3.0: Add INI for TPE preference
When the TPE IE comes to driver, there could be information for both
local and regulatory. Add an INI for preference in the case that both
sets are present.

Change-Id: I4b37123569f422863fc805063974c65878a9baea
CRs-fixed: 2854774
2021-02-25 20:22:33 -08:00
snandini
adaec73c70 Release 2.0.8.11O
Release 2.0.8.11O

Change-Id: Iaf6339c8b5b89b4a941ae035852acc889958baa9
CRs-Fixed: 774533
2021-02-25 15:52:27 -08:00
Aditya Kodukula
3c3cce8868 qcacld-3.0: Add function to_update wiphy_vhtcap
Refactor the function hdd_update_wiphy_vhtcap, and add two
independent functions to update the wihphy_vhtcap for 2G and 5G bands.

Change-Id: Iacf176c5b8bbf0032d1984775de3a9afee263883
Crs-Fixed: 2885702
2021-02-25 15:52:26 -08:00
Lincoln Tran
7b6d8910f2 qcacld-3.0: Validate freq against regulatory list
When CSR issues a start BSS message, it validates the requested start
freq against the internal CSR channel list. There could be a scenario
where this list is not updated and the validation fails. Check this freq
against the regulatory channel list instead.

Change-Id: I56b29fa6249a9245bb968c95c14e730b976f0f8d
CRs-fixed: 2884695
2021-02-25 15:52:22 -08:00
Aditya Kodukula
3edd04f7eb qcacld-3.0: Validate 2.4 GHz band before accessing it
Add a safety check to verify if the 2.4GHz band is
enabled/supported before updating the target config.

Change-Id: I05c0ac956acee0cd9550114836a0d41cfc3359ed
CRs-Fixed: 2883567
2021-02-25 15:52:17 -08:00
snandini
830b0c55fc Release 2.0.8.11N
Release 2.0.8.11N

Change-Id: I3331ded06bcbf2a9964ff9cec692729ba4d4d186
CRs-Fixed: 774533
2021-02-25 13:37:36 -08:00
Kiran Kumar Lokere
d3a8b8c5b5 qcacld-3.0: Fix the 160MHz Nss setting in peer assoc cmd
Nss value for 160MHz starts with 0 value in FW. Correct the 160MHz Nss
setting value in peer assoc command.

Change-Id: Ib6a8457acdf222cbe66beaf4b78edd2cda3d9eab
CRs-Fixed: 2885598
2021-02-25 13:37:36 -08:00
snandini
37e3f306a4 Release 2.0.8.11M
Release 2.0.8.11M

Change-Id: I6653bd1a0e8ad8ebf6ec035c730c929c07e2b32a
CRs-Fixed: 774533
2021-02-25 03:43:40 -08:00
Utkarsh Bhatnagar
a6813d16dc qcacld-3.0: Add he_cap in TDLS Dot11 frames
Add he_cap (tDot11fIEhe_cap) in sDot11fTDLSDisRsp,
tDot11fTDLSSetupReq, tDot11fTDLSSetupRsp Dot11f
frames.
Add he_op (tDot11fIEhe_op) in tDot11fTDLSSetupCnf
frame.

Change-Id: I76947a9a7ddb51dcf2fdf76832f98c1a9f9135e7
CRs-Fixed: 2881825
2021-02-25 03:43:40 -08:00
snandini
4e99397ebe Release 2.0.8.11L
Release 2.0.8.11L

Change-Id: I78ed24a254ebb54543839418f1cce87160a33f57
CRs-Fixed: 774533
2021-02-25 01:25:09 -08:00
Karthik Kantamneni
5d68186b66 qcacld-3.0: Check for TCP proto in bypass_fisa API
Check for TCP proto in bypass_fisa API and deliver nbuf without fisa.
This will avoid additional processing and helps to deliver nbuf earlier.

Change-Id: I26a78e1204ddebab3a6c6e852ce6d289106dd110
CRs-Fixed: 2884112
2021-02-24 20:49:18 -08:00
snandini
bea17515d2 Release 2.0.8.11K
Release 2.0.8.11K

Change-Id: I4392575cdf6d4eb765d0d7449168e26668b94967
CRs-Fixed: 774533
2021-02-24 11:20:29 -08:00
Bapiraju Alla
b5d0b97c2e qcacld-3.0: Protect set_thermal_mitigation with dsc psoc sync
Currently, the operation set thermal mitigation which is invoked
from PLD is not dsc protected. As a result it is causing a memory
leak issue when there is an idle shutdown is happening in parallel.

To avoid this, protect set thermal mitigation operation with dsc psoc
sync.

Change-Id: Id36086dd7668258f0aa1d57bc30948e14510e4de
CRs-Fixed: 2882729
2021-02-24 02:39:29 -08:00
snandini
d97eac5ad9 Release 2.0.8.11J
Release 2.0.8.11J

Change-Id: I3c3e61f439ea56a87b6bc85f9e43423920986ce1
CRs-Fixed: 774533
2021-02-23 03:30:59 -08:00
Bapiraju Alla
be3cf6a602 qcacld-3.0: Add INI param to read MAC address from MAC cfg file
Currently, Driver reads MAC address from MAC cfg file if it is present.
Kernel has a timeout of 60secs and userspace tries to loop till the
file is read if it is during the boot. So this will result in dsc
transaction timeout if the MAC cfg file is not present in the device.

To avoid this, add INI parameter to read this MAC cfg file and enable
it only when the MAC cfg file is present in the device.

Change-Id: I0bd9c089b6077534a07cb68deb07feb6064a5b88
CRs-Fixed: 2877424
2021-02-23 13:04:31 +05:30
snandini
c73e607c92 Release 2.0.8.11I
Release 2.0.8.11I

Change-Id: I1931a9e349ecbdbfe7732613e6838ddfa14ce431
CRs-Fixed: 774533
2021-02-22 20:18:13 -08:00
Abhinav Kumar
943ff67ea3 qcacld-3.0: Possible OOB read when parsing FT IE
FTIE buffer carries multiple FT subelements (like R1KH-ID,
R0KH-ID, GTK, IGTK, etc).

Total FTIE buffer len = Number of FT subelements * (Subelement
ID (1 bytes) + lenght (1 bytes) + data length).

Currently, Host checks only the minimum length for FTIE buffer
while filling each FT subelements. This leads to OOB if the
remaining length of FTIE length buffer less than the length of
an FT subelement.

Before filling each subelement into FTIE buffer, add a check
to validate subelement length against remaining FTIE length

Change-Id: I5d6f4a59eef591d3a2da9f2403738d1fdd1a88b2
CRs-Fixed: 2857084
2021-02-22 20:18:13 -08:00
snandini
5095db9964 Release 2.0.8.11H
Release 2.0.8.11H

Change-Id: If25604a30579a21d3d7398aa83af25048eb27723
CRs-Fixed: 774533
2021-02-21 18:33:15 -08:00
Pragaspathi Thilagaraj
593786d127 qcacld-3.0: get wake duration from stored session params
Retrieve the stored TWT wake duration for a session for
to send it as part of get twt statistics response.

Change-Id: If3c23d05331d5dfb43f74f5380e81eaf2799d2e7
CRs-Fixed: 2859812
2021-02-21 18:33:15 -08:00
Pragaspathi Thilagaraj
fe1d450190 qcacld-3.0: Don't delete TWT session if teardown fails
When TWT teardown is received, driver sets the twt setup done
flag to false and clears the TWT dialog id/state for the TWT
session irrespective of the teardown status sent by firmware.
This causes TWT session deletion even if ack is not received for
TWT teardown frame or internal error due to which TWT teardown
frame was not sent over air.

Don't clear the TWT sesson if teardown failure due to internal
error or no ack is received for TWT frame.

Change-Id: I7d5cf423c3cd0d4be9bb2ff0b238a3fa069783cf
CRs-Fixed: 2866195
2021-02-21 18:33:08 -08:00
Rajasekaran Kalidoss
604f083f03 qcacld-3.0: Check if TWT session exists for get and clear stats
Check if a TWT session has been created for the dialog_id given
in get and clear stats command request. Reject it in driver if
session doesn't exist.

Change-Id: Ie9a761128e3a0188c4ece9a7bac58268a2ebb88f
CRs-Fixed: 2864284
2021-02-21 18:33:01 -08:00
Rajasekaran Kalidoss
40955985cf qcacld-3.0: Multiply wake_interval mantissa by TU
The QCA_WLAN_VENDOR_ATTR_TWT_SETUP_WAKE_INTVL_MANTISSA attribute
should be specified in multiples of TU. Correct the logic to
multiply it by 1024 to get wake interval mantissa in microseconds.

Change-Id: I2c6eb3ca5541b97cffbe0de44351571839fa00e6
CRs-Fixed: 2862107
2021-02-21 18:32:54 -08:00
Rajasekaran Kalidoss
d0e3a02dc5 qcacld-3.0: send get status wake interval in multiples of TU
The current get params logic sends wake_interval_us
without converting to multiples of TU. Correct it to
send the get status wake interval in multiples of TU to the
userspace

Change-Id: Ib583581287f9440e438ef3296ea48ef1148ae083
CRs-Fixed: 2862651
2021-02-21 18:32:48 -08:00
Pragaspathi Thilagaraj
4e5c5e4f68 qcacld-3.0: Reset the stored TWT dialog ID on TWT setup failure
Driver doesn't clear the stored dialog id for TWT session when
TWT setup returns failure. This causes subsequent TWT sessions
to fail.

Reset the TWT session state and clear the dialog id for the
failed TWT setup to allow the next TWT setup commands.

Change-Id: I2f0ccb7a07ef49011b01d7336389d6ce56315fe9
CRs-Fixed: 2865240
2021-02-21 18:32:42 -08:00
Pragaspathi Thilagaraj
6fb3eb4f3a qcacld-3.0: Allow TWT teardown after roaming
Allow TWT teardown event from firmware after roaming or peer
initiated teardown to indicate the value to userspace. Also
make changes to send the wake duration value in microseconds
scaled with the TWT wake duration multiplication factor.

Change-Id: Ibcd0c51b1930094e0efc3832db5b8aadaa5748ea
CRs-Fixed: 2859775
2021-02-21 18:32:36 -08:00
Rajasekaran Kalidoss
570071bdc4 qcacld-3.0: Release event buffer memory for twt get stats
Release event buffer memory used for TWT get stats request.

Change-Id: Ia76b5c7ac5c8cb0778c93307dfc0e91c29707344
CRs-Fixed: 2857937
2021-02-21 18:32:30 -08:00
Rajasekaran Kalidoss
1f52db8f0a qcacld-3.0: Add support for TWT clear statistics
Add support to send TWT clear statistics request
to firmware.

Change-Id: I435b743955d44a02235b92f98beb302a6a21f036
CRs-Fixed: 2855624
2021-02-21 18:32:24 -08:00
Rajasekaran Kalidoss
34d700eacc qcacld-3.0: Register cp stats legacy ops
Support has been added in common code to register both
common tx ops and MC/WIN specific tx ops. Add support to
register and tx ops for MC specific stats.

Change-Id: I4e5263e4685a707008ec3c5e96f50c707b071fe9
CRs-Fixed: 2851256
2021-02-21 18:32:19 -08:00
Rajasekaran Kalidoss
e5f614db0e qcacld-3.0: Change TWT nudge to asynchronous command
Change TWT nudge command to be asynchronous. Handle wake
time tsf field in the nudge command response.

Change-Id: I22c75a42bf60f52f52d7d7fe19f408ebb55f360a
CRs-Fixed: 2847173
2021-02-21 18:32:14 -08:00
Pragaspathi Thilagaraj
a59bc2ffe2 qcacld-3.0: Add support for TWT session state in status query
Add support to include the session state in TWT status query
response. Session state is set to active once setup is
complete and when resume response event is received from
firmware. Session state is suspend when suspend response
event is received from firmware.

Change-Id: I1f47947c05f80bd85199fd81b951dc54deacdc09
CRs-Fixed: 2854500
2021-02-21 18:32:09 -08:00
Rajasekaran Kalidoss
e8c54f97df 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-02-21 18:32:04 -08:00
Rajasekaran Kalidoss
ebcefb3044 qcacld-3.0: Add support for ctrl path stats infrastructure
Implement support for sending new control path stats
infrastructure via WMI_REQUEST_CTRL_PATH_STATS_CMDID and
WMI_CTRL_PATH_STATS_EVENTID in cp stats component. Also add
support for TWT Get statistics through this new method.

Change-Id: I62b3a525cde797cd5b809ca9e8e6c91d5651c6b4
CRs-Fixed: 2851016
2021-02-21 18:31:59 -08:00
Rajasekaran Kalidoss
3208dfe908 qcacld-3.0: Add support to handle twt_notify event
Add support to handle twt_notify event. Firmware can
terminate a TWT session without a Host trigger due to internal
reasons. In that case it sends an event to notify that it is
again ready for a TWT session setup.

Change-Id: I3508687cee93e16a26221a1bc7ad9c626a4f4523
CRs-Fixed: 2847158
2021-02-21 18:31:55 -08:00
Pragaspathi Thilagaraj
7c7202c531 qcacld-3.0: Reject back to back TWT commands
Don't allow TWT commands back to back till response for
existing command is not received.
Reject the new command till the existing command completion
event is received from firmware. Allow TWT teardown when
any other command is in progress after TWT setup is complete.

Change-Id: I9282230c7cb24691b44ddfd273972272fd80f44b
CRs-Fixed: 2853515
2021-02-21 18:31:50 -08:00
Pragaspathi Thilagaraj
689810ef6a qcacld-3.0: Create TWT context in peer private object
Create TWT context in peer object to store the TWT session
related parameters. Introduce mlme api to get/set various
twt session parameters for the peer.
Block the below commands till TWT setup is complete.
TWT GET
TWT Pause
TWT resume
TWT terminate

Add new files for TWT specific functionality in MLME component:
components/mlme/core/inc/wlan_mlme_twt_api.h
components/mlme/dispatcher/inc/wlan_mlme_twt_public_struct.h
components/mlme/dispatcher/inc/wlan_mlme_twt_ucfg_api.h
components/mlme/core/src/wlan_mlme_twt_api.c
components/mlme/dispatcher/src/wlan_mlme_twt_ucfg_api.c

Also return error to userspace if back to back TWT setup
command is received before TWT setup response is received from
firmware or already TWT setup is complete for given dialog id

Change-Id: I61e24dd41dc9dcb78fdfe33ef8fa0ecb374a4a72
CRs-Fixed: 2847213
2021-02-19 17:31:39 -08:00
snandini
fef8ffb42e Release 2.0.8.11G
Release 2.0.8.11G

Change-Id: I5b410180d4eae5e0c5ee78492d6e974500de3ca5
CRs-Fixed: 774533
2021-02-19 13:20:25 -08:00
Vevek Venkatesan
461295296a qcacld-3.0: add NULL check before calling rps_enable cb
Add a NULL check before calling rps_enable callback
from ipa_set_rps_per_vdev and also add a check to avoid
disabling rps twice.

Change-Id: Ib63b2cda99aa332905df640ffa2d401c22845ad2
CRs-Fixed: 2876490
2021-02-19 13:20:24 -08:00
snandini
35193a6200 Release 2.0.8.11F
Release 2.0.8.11F

Change-Id: I4b6a3d7e8def21d6c294fc8db26caae4468b451b
CRs-Fixed: 774533
2021-02-19 05:56:59 -08:00
Karthik Kantamneni
aea3e6a4be qcacld-3.0: Call qdf_check_state_before_panic with additional debug info
Call qdf_check_state_before_panic with caller function name and
line number details.

Change-Id: I9fb4b382576e52bc1ad7e316bd09e3124e8fce98
CRs-Fixed: 2857671
2021-02-19 05:56:59 -08:00
snandini
1dfc7f8a85 Release 2.0.8.11E
Release 2.0.8.11E

Change-Id: I3d81e68288e8afa9a48ebdfeb186d44cd20f84fc
CRs-Fixed: 774533
2021-02-19 00:56:47 -08:00