Add sanity check mac context before using it in API
wlansap_get_csa_chanwidth_from_phymode.
Change-Id: I8df501e850b606615c899321fc23636ad985ab23
CRs-Fixed: 2955278
In case if .set_power_mgmt command comes with ps disable,
then driver needs to teardown all existing twt sessions on
STA interface and if any TWT setup request command comes
after ps disable then also driver rejects the command.
Change-Id: Ib7c86fd257c52b9bac57124b744dc7a9e8405560
CRs-Fixed: 2997260
Currently addba response is not updated with ini configured rx aggregation
size.
This change is to reject peer addba request if rx aggr size is 1 and
for other sizes select min value of peer and configured sizes.
Change-Id: Ia375b1e031dfecf948429e0baea19faa8fe42ffa
CRs-Fixed: 2962314
Peer addba request is rejected when reject_addba_req is set from
ini or vendor command.
Current reject_addba_req ini is replacing with gRxAggregationSize
when it is set 1 from ini.
Hence this reverts commit I80a4b78c1af77f5bfa68be3163f9e9a78cc64245.
Change-Id: I1cc57b88311da4dd8f26eade17072aaa1f0ebb59
CRs-Fixed: 3002204
Currently, the WLM mode could be recovered after disconnection
or interface down/up about random MAC feature. Since some OEMs
have different mechanisms to config WLM mode on their framework
implementation and don't expect recovering the WLM mode.
So add logic to set default WLM mode when disconnection happens.
And add ini wlm_latency_reset_on_disconnect to differentiate
the implementation in driver. By default
wlm_latency_reset_on_disconnect is false.
Change-Id: Idcb3baf6ab8f0533eb01c28ff1c12513f9995946
CRs-Fixed: 3006875
For 11a/g mcs 0, preamble:OFDM 0, nss 1x1:0, channel width:20M, 0,
mcs 0 rate:0.
so (((_pream)) | ((_nss) << 3) | ((_bw) << 5) | ((_rate) << 8)) is 0,
so wmi_rate_stats.rate is 0, rx_mpdu is set to 0.
Fix it by not setting rx_mpdu to 0 when rate is 0.
Change-Id: Ie12660480af42e26c2ea957b6576dbd395730522
CRs-Fixed: 3008693
Currently CMEM FISA FSE flush work timer can be triggered
in suspend sequence, this may lead to starting timer even
it is pending to executed.
To avoid this check if flush is allowed before starting the timer.
Change-Id: Ie4a8386a7a7c7ae8c2fba97cae65578ae56b0b4b
CRs-Fixed: 3015719
ll_stats_set vendor cmd is now only supported for STA mode.
Add support for P2P_GO and P2P_CLI modes since FW supports
LL_STATS for P2P mode as well.
For P2P_GO mode, use WMI_REQUEST_LINK_STATS_CMDID instead
of the club cmd WMI_REQUEST_UNIFIED_LL_GET_STA_CMDID.
Change-Id: I675ff87593e6eb80e1e1fef85ae1f46d24701d63
CRs-Fixed: 3012389
This happens in roaming case, even bsstype is mismating
we allow it to continue, which is to avoid serialization
cmd without dequeue issue.
Change-Id: I17f4c8e71769c42f3e7747e6095645c9683753ad
CRs-Fixed: 3015332
For the TDLS link, not established in 6ghz band, some
elements in HE OP IE such as basic mcs, bss color are
not filled properly. This might cause some IOT issue.
To fix it fill the params correctly.
It should be noted that VHT operation info should not
be included in HE OP IE if the frame carries the VHT OP
IE or sent in 2.4GHz.
For TDLS link connected in 5Ghz band, VHT OP IE is sent
in the setup confirm frame so no need to include that.
Change-Id: I9426ff3ca16461628b8ebe9710048dc68866dbf4
CRs-Fixed: 3003984
With the commit I630423de03636e6c4ca07638dce6966c3ca381f9,
driver will enable HT40 capability field in assoc request
frame to 2.4G AP. In some countries, the 40Mhz is disallowed
in 2.4G.
Fix by disable HT40 if regulatory disallow
Change-Id: I8a1e6b2c59c486373c49cba0e3c635b34f443e1c
CRs-Fixed: 3012747
Once pkt_log_con_service success in cds_pre_enable,
in case of any further failure, pkt_log_exit cleanup is
not done, so calling CDP interface API for pkt_log_exit.
Change-Id: Ibddc99fb47109a73de095f068694b2548849f14d
CRs-Fixed: 2978390
Currently, If supplicant sends tx_mgmt request with random
mac_addr then driver adds the random mac_addr and sets this
random mac_addr to firmware via
WMI_VDEV_ADD_MAC_ADDR_TO_RX_FILTER_CMDID command. Driver waits
for tx_ack or tx cancel wait to complete and then remove the
cookies and start timer to delete the random mac_addr.
In case after receiving tx_ack, driver removes the cookie and
starts timer and before timeout supplicant sends the
tx_cancel_wait request. But driver can't update the timer
duration as the cookie was already deleted as part action frame
tx completion.
Fix is driver will remove the cookie with below condition:
1. If driver receives the tx_ack and the wait duration = 0 then
no need to start the timer, remove the cookie and also remove the
random mac_addr from firmware
2. If driver receives the tx_ack and the wait duration != 0 then
start the timer
3. If driver receives tx_cancel_wait then stop the timer and
remove the randon mac_addr from firmware
4. If timeout happens then remove all the cookies for the random
mac_addr and also remove the random mac_addr from firmware
Change-Id: I3e227213239e865582e5d8674260d049c437aa9b
CRs-Fixed: 3002851
For SAP with special OUI, if DUT STA connect it with 11ax mode with ht
control enabled, SAP can't decode unicast pkt from DUT.
Fix it by clearing ht control bit in he cap when send peer assoc cmd
to firmware when connect such IOT AP with 11ax mode.
Change-Id: Icf9d6d7ddc370c79e615a713c76606e7fd195fd3
CRs-Fixed: 3004761
Incase of non-6ghz, the peer width is
updated while extracting HT and VHT
capability. For 6Ghz, the HT and VHT
capabilities may not be present and
because of which the peer channel width
gets updated as zero (20 Mhz).
To fix this, fill the channel width for
peer if session is 6ghz and peer supports
HE Capabilities.
Change-Id: Ie4d8f3a3a364af2c47e6b3d7309ee1287652ae06
CRs-Fixed: 3010063
During the wakeup sequence if there is any firmware recovery
the resume would be rejected and the flag "is_wiphy_suspended"
would not be reset in the system resume.
So, at the end of the SSR reset the flag since the system has
already resumed completely.
Change-Id: I86b0adade1dfb5710df2f86a3922320308407fe9
CRs-Fixed: 3005606
This reverts change Id8134003e6f7a3e0368b20c496f650e0b7025b9e
Moving cp stats to scheduler thread is breaking the
synchronization in stats collection. Currently, when a get stats
command is issued from framework, host driver sends the same to
firmware and wait for both llstats and get_station related stats.
The expectation is to receive get_stats first and then llstats.
Host driver has a wait for the last llstats event to return the
stats to userspace. As the cp stats(get_station stats) are moved
to scheduler thread, the order of these events can't be ensured
as llstats are still running in kworker thread. llstats event gets
processed before cp stats mostly and stats are returned
immediately to framework. Framework may issue the get stats
command again and the same is sent to firmware, which may result
in synchronization issue in firmware as well.
Moving llstats also to scheduler thread may not be optimal as these
are aggressive and can be queried by framework multiple times with
a milliseconds gap.
So, move back the cp stats to kworker thread to maintain
synchronization.
Change-Id: I8dc518f0de37e7cc203cb1f6e67045d74b304d93
CRs-Fixed: 3002534
Fill TDLS 6Ghz peer capability correctly in Add STA
so that carrect Peer capability should be sent in
Peer Assoc.
Change-Id: I3eb6c387286b86e07c33be4751501b356b24ff68
CRs-Fixed: 3008407
In OKC enabled cases, when multiple pmk entries exist, the user
space sends set_pmksa command for BSSID other than the connected
bssid. In that case driver updates the global pmksa cache with
the new PMK received for the non-connected BSSID. This results
in invalid pmk sent to firmware.
To avoid this, update the pmk cache only for connected BSSID.
Change-Id: I006595ea5b913d439007a8fb9d767454a71eeac1
CRs-Fixed: 2937182
Memory allocation for FISA history could possibly
happen from the cnss prealloc pool.
Fix is to disable FISA history until the allocation
is moved to DP prealloc.
Change-Id: I6c2e42d129d6642601ae59e08294c214907f5faf
CRs-Fixed: 3006138
If STA is connected to one channel and p2p is up on same channel,
and sta moves to another channel then p2p go also tries to switch
to sta channel immediately in case g_enable_go_force_scc is enabled.
But Go can't send channel switch announcement as go sends 1.5 sec
of NOA during sta connection with new channel due to which p2p may
get disconnect.
Fix is to not try to move to sta channel immediately. P2P Go will
try to switch channel only after NOA completion which is 1.5 seconds.
Add delay work queue of 3 seconds to handle worst case scenario when
BT is on and P2P tries to switch channel.
Change-Id: I557940dfc79da4922694ed24a573e41aae75c09a
CRs-Fixed: 2989207
In the scenario where ipa connect pipes fails in the
wlan_ipa_uc_loaded_handler API, uc_loaded flag is not
reset. As a result of this, in wlan_ipa_uc_ol_deinit,
ipa_tx_buf_smmu_unmap and ipa_wdi_disconn_pipes APIs are
invoked incorrectly.
Fix is to set the uc_loaded flag to true only if connect
pipes and tx_smmu mappings are successful in
wlan_ipa_uc_loaded_handler. Also, initialize the uc_op_work
in wlan_ipa_uc_ol_init prior to the uc_loaded check to
avoid a possible race condition which could also result
in the similar issue as above.
Change-Id: I119170413cb9b5e03ec476c9a69d9effaa460c01
CRs-Fixed: 2940833