When SSR happens, Inform the user space about teardown all TWT sessions
in P2P client mode also.
Change-Id: I190529724519a2520dfa190fcb10cafc398745a5
CRs-Fixed: 2879404
Currently, there are two ini option 0/1 to disable/enable ILP
profiles in HW.
Extend this option upto 3 where
0 indicates disable
1 indicates perf settings
2 indicates max power saving
3 indicates balanced settings
Change-Id: Iff41b92b84309a670e2ad301ee72fb3caaba3df3
CRs-Fixed: 2886526
As part of devices recovery, driver sends disconnect event
indication to kernel for all the interface but kernel does
not expects for NAN interface due to which frequent call trace
observed during NAN test.
Remove disconnect event indication from hdd_start_all_adapters()
and move this logic under SSR.
Change-Id: Ifa62a58264fa7c7247f8c0aa8f0ed33138572dd8
CRs-Fixed: 2848186
When the country is being updated via WMI, FW responds with a channel
list after some time. During this time, another event can come, blocking
the channel list from being updated. Add synchronization so that these
requests are blocked until the channel list is updated.
Change-Id: I4c1b7d33242226b8153821fdc14db54fff764c17
CRs-fixed: 2884840
During suspend if the netif queue pause failed for some reason,
network stack may send the pkt for hard_start_xmit and will
crash due to device is in suspend state, so adding a check to
drop the pkt if device was already in system suspended.
Change-Id: I5b8f5511157f10e28297be4366fafe6e683c392b
CRs-Fixed: 2880892
While processing the roam synch indication reassoc response frame,
the new roamed peer object is not created. So call to
mlme_set_twt_peer_capabilities() to update the new peer capabilities
will fail with null peer object for new bssid. So after roaming,
update the peer TWT capabilities once the new peer object is
created.
Update peer TWT capabilities to new peer object after roaming to
avoid invalid peer capabilities.
Change-Id: Ic37bd4d96bf122b2ec3a60c1ae41650a672b9020
CRs-Fixed: 2870589
Introduce HE cap IEs in addstareq. Also, Add
HE capabilities in frames for TDLS Setup Req,
Setup Rsp, Discovery Rsp. Add He Operations
in TDLS setup Confirm.
Implement APIs under feature WLAN_FEATURE_11AX
which will be used to:
1) Fill HE capabilities in TDLS Discovery Response,
TDLS Setup Request, TDLS Setup Response.
2) Fill HE operations in TDLS Setup Confirm.
3) Convert he_capa capabilities from station
parameters to tdls tDot11fIEhe_cap type.
4) Set Chan width based on session, peer
capabilities.
Change-Id: If36b1a3c3eed0e6026043494a097673f9d74b580
CRs-Fixed: 2883443
Update the logic to fix a potential memory leak when there is an
invalid country IE. Also update the logic to not reject the connection
in the case of an invalid country IE, since this is a bad user
experience.
Change-Id: I6a2b50a483e65554a6622dccbb0bac61331fc4fb
CRs-fixed: 2883385
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