Currently, wma_add_sta status is not considered while voting for
link up in case of NDI. But if wma_add_sta fails to add a peer,
this link vote leads to stale link vote up.
Same is the case for wma_delete_sta and the return status is not
considered. This leads to a vote down of link for a non-existing
peer if peer is not present.
Below scenario leads to this situation,
1. Enable NAN and have an NDP connection between two devices.
2. Try to establish another NDP between the same devices but
don't respond for the request on the responder side.
3. NDP timeout happens in firmware and firmware sends an
NDP CONFIRM failure with timeout reason. This event carries
number of NDP-peers on the peer also and firmware sends
this as 0.
4. Driver removes the peer entry as firmware mentioned
no.of peers left as 0. It shall vote down the link also.
5. Firmware sends NDP_END for the first NDP connection and host
tries to delete the peer entry as part of this. But the peer
got deleted @step-4 already and wma_delete_sta returns a
failure now.
As the peer is not present, corresponding link vote-down also
should be skipped.
To avoid these, consider the return status of wma_add_sta for
link vote up and consider the return status of wma_delete_sta for
link vote down.
Change-Id: Iea40961366307f57b4f969245c0732d685d5e415
CRs-Fixed: 3108455
During legacy to mlo roaming,lim join req memory
is malloced and new pe session is created for
link vdev. In success case, pe_roam_sync_callback(),
deletes the old pe session and lim_join_req
memory will be freed.
In lim_cm_fill_link_session() free lim_join_req
only in case of failures.
Change-Id: I1b156a0dd778880c3a9664fa333d34eb18afcee1
CRs-Fixed: 3121153
Add support for below EasyMesh specific commands
1. To set user specified channels in the acs channel list
2. To trigger ACS
3. To get the ACS report
Change-Id: I1090b9a86d62eddc9954b70835c7496e5a614757
CRs-Fixed: 3080222
MLO roam sync happens first for link vdevs and then for sta vdev.
Update roam_sync-complete data to other modules(if_mgr, osif,
TDLS, P2P, firmware,..) only for sta vdev. Skip the same for all
link vdevs.
Change-Id: Ib01c7cd8d9c0bd0e7b4b48914576410aea6baa5c
CRs-Fixed: 3104553
Currently, roaming is not aborted in failure cases on
the link vdev and it's aborted only on primary vdev.
It results in link vdev not being cleaned up when roaming
fails due to some reason.
Change-Id: I0eb4b1da06a295935ff95be38228a5cacf127a73
CRs-Fixed: 3096648
Host driver creates two vdev as part of initial connection.
If the connected AP supports MLO, both(sta and link) of the vdevs
would be moved to UP state.
Firmware sends roam sync indication to host when it roams to a
new AP. The event carries new AP info and the new AP could be
legacy AP. If the current AP is MLO and new(roamed) AP is non-MLO
AP, move the link vdev state to INIT as it's in UP state.
Change-Id: Idd9638ea446306b0309e5127f08e3dbc1ec9edc2
CRs-Fixed: 3106038
Send correct tx_chain/rx_chain value to hdd_populate_vdev_chains
in hdd_set_dynamic_antenna_mode.
Change-Id: I836e70e989024be49d0bceadc0497368e87e3901
CRs-Fixed: 3118832
Currently inside wlan_cfg80211_mc_infra_cp_free_bmiss_stats
memfree of cp_stats along with bmiss_cp_stats is present,
again after the wlan_cfg80211_mc_infra_cp_free_bmiss_stats
function repeated memfree of cp_stats is present
Remove cp_stats free from wlan_cfg80211_mc_infra_cp_free_bmiss_stats
function.
Change-Id: I306e06455ef1ac92043ee8412cf1cecd01e9dfbb
CRs-Fixed: 3115379
FW can send more than one wmi_roam_sync_frame_event_id before
roam sync event,change done in host code to handle this scenario.
Change-Id: I1ab02ed3e984948b8e57a2f9a2000b9f9493629c
CRs-Fixed: 3116569
TWT initialisation will fail for each non 11ax connection
so an error log is not needed if peer object for TWT is not found.
Also, RIC data is not mandatory in FT session, so if its not
present, log a debug level print instead of error level.
Change-Id: I7fec9f88aa68b2ae947e34a1aede311e9fed2d05
CRs-Fixed: 3117535
Add and export os_if APIs to trigger object creation and deletion.
SON module will invoke these APIs during load/unload.
Change-Id: I1fe6ab335862b2b67affc5201ac6eae972b0a863
CRs-Fixed: 3104096
This change is to update sap interface restriction mask
enum check to NL80211_IFTYPE_AP bit mask.
Change-Id: If5a6748425502b1f27654a2e6bfa0e5c2b8554de
CRs-Fixed: 3118953
Extend gStaPrefer80MHzOver160MHz ini to limit STA connection in
80MHz BW for HE/VHT mode. In case of XR use-case, higher
throughput is not needed but higher reliability is expected.
This ini helps in XR glass device to always connects in 80MHz.
Change-Id: Icefd2d54214351c04dd7420269c308cec2b5ae31
CRs-Fixed: 3117216
In case of PNO scan, If firmware supports
WMI_SERVICE_PNO_SCAN_CONFIG_PER_CHANNEL, it uses the
upper-12 bits(bit-20 to bit 32) of channel_list for
flags and lower 20-bits(bit-0 to bit-19) for frequency.
If firmware doesn't support it, then channel_list holds
the frequency value only.
Fix is to fill the flags and frequency accordingly.
Change-Id: I8473072069da4532406ce720a0070a665e29b1af
Crs-Fixed: 3103939
To support shutdown WLAN when system goes into suspend, add idle shutdown
in cfg80211 suspend function.
Before suspend/shutdown, user space should stop adapter. And after resume,
user space should restart adapter. This can ensure user and kernel space
to sync adapter state.
Idle shutdown must be processed in system active, so schedule delayed
work to execute it. After calling schedule, retrun EAGAIN directly to PM.
Change-Id: I08818517d05e7866d50e3f92cfdc9fa1a4d0e63f
CRs-Fixed: 3081480
When WLAN_FEATURE_DYNAMIC_MAC_ADDR_UPDATE enabled and user space sets
mac address, host will detach vdev and attach again without setting
vdev tx data callback. Then host tx TDLS discovery request timeout
since lim_mgmt_tdls_tx_complete isn't called, finally TDLS link
establish failed. This change set vdev tx data callback after dp vdev
detach and attach done.
Change-Id: Iada58ba2df0612a92503ccfa5f246f7cca9db9ad
CRs-Fixed: 3112831
Always enable ce debug history feature, but there
is difference for perf&debug build.
On perf build, only ce2/ce3 histroy is enabled.
And for ce debug history memory init/deinit happens
when driver is loading&unloading, even it use when start
module, this will help to check some cases when
stop_module happens.
Change-Id: I4b825f91bc9ede8372291f9d94cb7fae23942a49
CRs-Fixed: 3058735
Currently the flag QDF_NBUF_CB_TX_EXTRA_FRAG_FLAGS_NOTIFY_COMP is being
set selectively. Set this flags for all TX packets in station mode to
allow TDLS packet accounting in TX completion path.
Change-Id: I6f5e3ccad079275bbf8aacd121a3b67f9eaf9e4b
CRs-Fixed: 3111051
Remove Rate limited for logs in policy_mgr_init_sbs_fw_config()
when updating FWconfig bits.
This function is called at the time initialization and will only
be called once when Fw config Bits are updated with SBS
capabilities.
Change-Id: I68c7d76f85f12d220f85a46dca78ad8463bb5576
CRs-Fixed: 3116571
Currently if driver suspends all the components and after that
if host suspends fails it does not resume all the suspended
components which leads in failure of the operations from these
components.
In current issue driver suspends all the components and it
fails to suspend dp rx refill thread and because of which host
suspend fails. Driver suspends scan component as well as part
of all component suspend which is leading scan requests failures.
TO address above issue, resume all components in case of suspend
failure.
Change-Id: I693049a0c4089eb440f459ed3a066e741e8594fe
CRs-Fixed: 3111885
Intersecting EHT beamforming configuration from ini and FW
indication, then save it to eht caps of mlme.
For sta, update mlme EHT beamforming configuration to FW
through WMI_VDEV_PARAM_SET_EHT_MU_MODE directly.
For ap, intersecting mlme EHT beamforming configuration and user
configuration, then send result to FW.
Change-Id: I3d6185896af9fc58eb1fb6db913d4a425f72c696
CRs-Fixed: 3113235
Cleanup csr_get_cfg_dot11_mode_from_csr_phy_mode API by removing
unused parameters and use vdev id instead of profile.
Change-Id: Id2c8b52845d5e928e315b3af0a3d1289e81b2e7e
CRs-Fixed: 3113395
Currently, ML adapter info is being accessed only 11BE_MLO feature macro.
This will result in compilation error when, 11BE_MLO is enabled in the
driver but not in the kernel.
To resolve this, check for kernel support for 11BE along with driver
support for MLO.
Change-Id: If3a1f0837483229b94de4036eea5dc08f76f0754
CRs-Fixed: 3115872