Currently driver returns EAGAIN as error code if vdev transition is
not possible, driver is not able to process this vdev transition
because some other PSOC/PDEV transition is going on.
On receiving EAGAIN error code userspace retries the same operation
immediately which again leads to failure as existing transition is
still in progress.
In current scenario, for STA+P2P case, if station is connected to
some ap and for p2p if DUT becomes p2p go, now if SSR is triggered,
host driver gets interface down for sta for change mac address as
station gets disconnected as part of SSR and this interface down
is cached as SSR is in progress. Once reinit gets complete, driver
processes this cached interface down as part of SSR and in this
process driver gets the change interface for p2p go, which it
rejects the error code as EAGAIN from __dsc_vdev_can_trans as
SSR is going on and change interface fails to get dsc op.
When user space gets EAGAIN as error code it immediately tries
the change interface again which driver again rejects as SSR is
still in progress. Also, on receiving EAGAIN error code, userspace
retries the change iface operation only once.
To address above issue, return error code as EBUSY, on receiving
EBUSY as erorr code, user space addds some wait before invoking
the same operation again and also it tries this operation 10 times
if it gets EBUSY as error code, this gives sufficient time to
complete the ongoing transition at driver.
Change-Id: I96ec94432e7624546363cda190abfc9970ab1eb9
CRs-Fixed: 3126558
PASN peer create request event and deauth events need
host actions and notifying the userspace.
So register for PASN events to wake up host.
Change-Id: Ic83f10984d4e4d5ee0f1e8a5d7c4fbc321395a26
CRs-Fixed: 3150120
Currently, STA doesn't support roam between WPA2 to WPA3
security or vice versa. To support this feature, host sends
list of allowed_authmode. So that Firmware will check and
roam on those authmode.
Fix, add support for allowed_authmode list in ap_profile.
Change-Id: I438a133a434ea12ec34680997ace358fd4910028
CRs-Fixed: 3113219
Currently, both ML adapter and assoc link adapter are mapped to same
VDEV. Hence STA connection info is expected to be same. But,
connection info is getting updated in only in ML adapter but not in
assoc link adapter. As a result, connection info is wrongly interpreted
when it is accessed through assoc link adapter.
To resolve this, update connection info in assoc link adapter with
the connection info present in ML adapter.
This change also includes 11BE mode conversion support from cfgdot11mode
to 80211mode.
Change-Id: Idb8371a6bcf7fc9e2dcc5972d0504d326d9e0aca
CRs-Fixed: 3121835
Currently when get temperature is queried, both
gThermalMitigationEnable ini and WMI_SERVICE_THERM_THROT service caps are
checked in the driver.
gThermalMitigationEnable ini means the thermal throttling will be done
by driver if enabled and will be done by FW if disabled.
So, set this ini as 0 by default in the driver as thermal throttling
is done by FW and check only WMI_SERVICE_THERM_THROT service while
get temperature is queried.
CRs-Fixed: 3139693
Change-Id: I28e2b6cfca6ea7bf60d81045ba267e019143f3a8
When power save mode is disabled, TWT is also disabled. All existing
TWT sessions must be removed.
Change-Id: I7c1ceb7abbfea0205e65a038fdf8d574b797685e
CRs-Fixed: 3147231
Current policy_mgr_is_hw_dbs_capable() will check both DBS HW mode
and WMI_SERVICE_DUAL_BAND_SIMULTANEOUS_SUPPORT service bit, while
DP expect to check HW mode only.
Use policy_mgr_find_if_hwlist_has_dbs() for DP DBS check.
Change-Id: I9e69e5754ef4ea522f50e2e27380e5b5d08532b3
CRs-Fixed: 3140385
Remove CONFIG_WLAN_FEATURE_REDUCE_RX_THREADS compile flag.
Keep num rx_thread dependent on rx REO rings, 1 rx_thread for
each rx REO ring. It is controlled via INI dp_reo_rings_map.
Change-Id: I701e5cec79a8968b540c9437fe297ca1db8cd5d3
CRs-Fixed: 3048265
In wma_unified_set_sta_ps_param(), sending vdev param to
fw with out validate the vdev param, effects crash in fw
for the invalid vdev.
Add validate vdev param to send proper context data to fw.
Change-Id: I75206cff745a2774f30b36e8e6261cb452d749e8
CRs-Fixed: 3128593
Add support for security score. On the basis of score,
host will select AP for initial connection and roaming.
Change-Id: I041a1b0c1456d7f01dd07e9b282996c56755655e
CRs-Fixed: 3113213
Rename files with blacklist/whitelist to denylist/whitelist.
Rename files with blm to dlm.
Change-Id: Ief7ce0a797f74460c9708f8d2dd440412af5b7eb
CRs-Fixed: 3099864
Shutdown in suspend phase, idle shutdown timer will be invoked if all
adapters closed. And then driver suspend function will return EAGAIN to
user space to try suspend again. Idle shutdown will be finished in ~1s.
Thus, Idle shutdown timer may be called for many times when user space
try suspend again.
So, add flag to avoid calling idle shutdown many times.
Change-Id: Ic701dce917288db09511f6ffc540cf8cf3eca5db
CRs-Fixed: 3140750
As part of the Roam candidate result logging, the
driver prints ROAM if reassociation is successful and
NO_ROAM if candidate is found and roaming is successful.
But the expectation is to print ROAM even if candidate
is found and roaming has failed.
Change the logic to print ROAM/NO_ROAM based on below condition:
1. Roam result successful -> ROAM
2. Roam result failure && candidate is found -> ROAM
3. ROam result failure && candidate is not found -> NO_ROAM
Fix the authentication/association missing frame print
in the roam logging, also cleanup the unused API's.
Change-Id: I43e0cea007890f4796b421b0a42cc71b8ca1a600
CRs-Fixed: 3146630
On some platform, FW report NAN support capability always with the
share reason, but don't have to support NAN on some project so host
configure disable it.
We should check NAN reserve logic only when both fw/host enable it.
Change-Id: Ied9b6e292670b7d49ddcf691275410b95b7fd7bc
CRs-Fixed: 3142145
Currently for WTC BTM roam trigger, below order is followed:
[22:22:51.127105][BTM] RESP token=1 status=1 delay=0 [vdev_id=0
fw_time=00:53:58.350672]
[22:22:51.127129][BTM] WTC reason_code=6 [vdev_id=0
fw_time=00:53:58.350672]
But expected order is:
[22:22:51.127129][BTM] WTC reason_code=6 [vdev_id=0
fw_time=00:53:58.350672]
[22:22:51.127105][BTM] RESP token=1 status=1 delay=0 [vdev_id=0
fw_time=00:53:58.350672]
Fix this order issue and also ignore the BTM response TLV if
timestamp is 0.
Change-Id: I21fe268a3e3ea065482c1c2938d03b844cd387ea
CRs-Fixed: 3143297
Default kernel version 5.4 not support all 6GHz changes,
and msm-5.4 kernel introduced below commit to do backport:
Git-commit: 3290a9818c538b88d4e75b5891fa530e9142c219.
This causes building error on third party platform with
kernel version 5.4. Fix it with adding CONFIG_BAND_6GHZ flag.
Change-Id: I967a5e5c1ab3b3bc349f2685950f3bfe6b33255e
CRs-Fixed: 3148383
Some rogue AP sends beacon frames with TIM bit set for long time,
DUT STA need response a qos null frame, if ITO(inactive timeout) is 200ms,
STA can't get a chance go to sleep for long time during WoW, assert will
happen at last.
To fix it, for both system suspend and runtime suspend/resume, config
ITO to short value(50ms) when trigger FW to enter WoW mode, and config
ITO to default value(200ms) after exiting WoW mode.
Change-Id: I8f84afaf2ba030bbb9acf5c7ea78de583c634424
CRs-Fixed: 3146685
When build kiwi_v2 driver, it reports below error
"make[3]: /bin/sh: Argument list too long". It's because when ar
process kiwi_v2.o, current driver generates too many characters which
over bash's limitation, so create lim.c file to includes all lim layer
common files to save some room.
Change-Id: Ic4a1a71ebc9e42fde5e1a11b5342a7f17a9e0d91
CRs-Fixed: 3138823
Add feature flag to support marking first packet after wow wakeup
and enable it for QCA6490.
Change-Id: Icbda6dabe61a113a8aaa87f7a8fd1d95555226a1
CRs-Fixed: 3137627
Vdev ref count is not released after acquired in both success and
failure case in osif_twt_notify_complete_cb().
Release vdev ref count in both success and failure case.
Change-Id: I54ba4bdeb0ac5a6965a674e4c3dc5d0d8d6992bc
CRs-Fixed: 3143718
Driver fetches CU load/current rssi/rssi threshold values from
wmi_roam_trigger_reason TLV.
But the values are applicable only for below roam triggers:
wmi_roam_trigger_reason->cu_load : BSS LOAD trigger
wmi_roam_trigger_reason->current_ap_rssi: Low RSSI trigger/
Periodic scan
wmi_roam_trigger_reason->rssi_threshold: Low Rssi/Periodic
scan trigger
So based on agreement with target, use the values from
wmi_roam_ap_info TLV of the current connected AP
irrespective of the roam trigger.
Change-Id: Iaf204198778c1912f77a625154dd63756b1d23e5
CRs-Fixed: 3128803
Add new config to ease scan and connection restriction
in 6GHz band when bss is advertising different country.
Change-Id: I13bd0dbd52fad297b995add8fc8a71d7a058c25b
CRs-Fixed: 3135152