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
Currently, host driver expects NDP_END indication from firmware
within 2 seconds after sending request to firmware. Driver shall
timeout and cleanup the corresponding NDP entry if no response is
received within 2 seconds. But firmware may take upto 2.5 seconds
to exhaust the NDP_END frame retries.
So, increase the timeout to 4 seconds to accommodate these retries
and to be inline with current NAN_DISABLE timeout.
Change-Id: Ida1abc25b4ff64aea810c88dbf36f9577b23ffd8
CRs-Fixed: 3002176
In connected STA scenario, tcp_adv_win_scale is reset to 1
on runtime suspend. If any TCP connection gets initiated, the
SYN packet will cause a runtime resume. The bus bandwidth
work gets scheduled ~100msecs after resume is done. This
can result in a smaller TCP window value to get used for
the TCP connection initially and the window size does not
increase even with tcp_adv_win_scale updated to 2 as part
of bus bandwidth work.
Fix is to not reset the tcp_adv_win_scale config if any
adapter is connected on runtime suspend.
Change-Id: If10a1e1fd0efc8217f8136a60cfb01b03485a21d
CRs-Fixed: 2969041
Currently host is sending nl80211 band to get curr
chan list but enum values are different for 6G, so
reg_get_band_from_cur_chan_list may not consider 6G
band even userspace sends 6G band in vendor command.
Fix is to convert nl80211 band to reg band to get correct
usable channel list in case of 6G.
Change-Id: I51b86c5f4f83b764847756a20a911d9b8af75b56
CRs-Fixed: 2973283
Currently, host sends bw value to upper layer in response
of GET_USABLE_CHAN command. but upper layer requires bw
value in form of nl80211_chan_width enum and considering
bw value as invalid and resulting into 0 bw.
Fix is to convert bw value to nl80211_chan_width enum
and send to upper layer.
Change-Id: I6ae523c35561120c28b08f3aa9782bb749337c8c
CRs-Fixed: 2957062
In function __wlan_hdd_cfg80211_get_usable_channel use
dynamic memory allocation for get_usable_chan_res_params
structure to avoid increase of stack frame.
Change-Id: Ib3b5686a7af068fd1d0435bc24eda5d9e57bf1d7
CRs-Fixed: 2950726
Some AP has different HT ch width setting in beacon/assoc resp.
FW uses assoc response to decide the BW of HT AP in Roaming sync.
Fix by overwrite beacon HT BW setting from assoc resp frame to
keep sync with FW.
Change-Id: I784e4b1735f4f217713f65c30092bac2ad6cb698
CRs-Fixed: 2995520
Currently color bss is disabled if color bss is set before
channel change.
This change is to reinitialize color bss values to trigger
color bss detection in firmware.
Change-Id: If5688519e147b2b8a88b622090861ba4cac9067f
CRs-Fixed: 2992617