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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Change TWT nudge command to be asynchronous. Handle wake
time tsf field in the nudge command response.
Change-Id: I22c75a42bf60f52f52d7d7fe19f408ebb55f360a
CRs-Fixed: 2847173
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
Add support to get the following TWT target capabilities
1) Nudge 2) all twt and 3) statistics
Change-Id: If74e99b0ff920481bcabb0300129b9067082d113
CRs-Fixed: 2854927
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
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
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
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
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
Call qdf_check_state_before_panic with caller function name and
line number details.
Change-Id: I9fb4b382576e52bc1ad7e316bd09e3124e8fce98
CRs-Fixed: 2857671