Currently, eMLSR concurrency API considers both the links to
decide whether to allow or disallow the command while
force-enabling links. But one link might have got disabled to
handle some concurrency and might not be present in the
policy mgr table. Driver has to consider the links that are
present in policy mgr to allow/disallow link-enable command
when an eMLSR connection is present along with other concurrency.
Also, user might try to force-enable the disabled link. Allow
that only if eMLSR concurrency is not present.
Change-Id: I0a68059b7d16629016b3c40dbc0345523d46ef21
CRs-Fixed: 3500106
Currently as part of LL_LT_SAP optimization, driver receives
do_acs command from below two path
1. LL_LT_SAP library to get the channel early and
2. Hostapd during SAP turn on
In the first request if driver finds the clean channel as part
of partial scan req then it directly sends that channel to
requested module. So in the second request, driver will exclude
the recently scanned channel from scan list. But there may be
possible that it may receive another clean channel during scan
which leads to two different back to back ACS frequency.
To avoid this, store the current acs frequency and if driver
receives the second acs req within 500ms then send the stored
acs result to requested module.
Change-Id: I9b083a64e996f6ada32ff5210a304aa66aa6ec3a
CRs-Fixed: 3498271
To avoid compile issues where the kernel version doesn't support
11be and WLAN_FEATURE_11BE macro alone can't be used.
Use CFG80211_11BE_BASIC to ensure proper kernel version check for
11be support.
Change-Id: I23a1b6f6e1b46a4ce686d8d1a4152c94922281fc
CRs-Fixed: 3482727
When AP mode is not initialized done, trigger AP scan manual maybe crash,
since acs_cfg maybe null.
Change-Id: I1b5f5eb301a10661a75557dcd9d4fc1fa1b9819b
CRs-Fixed: 3478487
-Wimplicit-fallthrough is being enabled by default. Some compilers
such as clang require the attribute instead of just a fallthrough comment.
modify the DMA direction parameter from
PCI_DMA_FROMDEVICE to DMA_FROM_DEVICE.
Added missing break statement.
Change-Id: I1a226b1c2ce92c7290a094b33a81968d27ff74b3
CRs-Fixed: 3505237
Introduce a new member in per link data structure to fill
the back pointer to adapter.
Introduce new API to get the index of link info pointer
in the array.
Change-Id: I76c96c5d23fcd587181abdbc5b3fdd3634b7e4ab
CRs-Fixed: 3450353
Add support to parse t2lm ie from association response frame
and store in mlo dev context. Once all links are up
the t2lm configuration will be applied.
CRs-Fixed: 3449605
Change-Id: Icd1f3c9bbdfbe1c2a8bfe119d92d6e686e21a7fd
if local var of struct ch_params isn't initialized to 0, the value is
random, reg_punc_bitmap in it is random as following too.
notify: chan:2462 width:1 freq1:2462 freq2:0 punct 0x8880
Change-Id: I8b73aa57cc83181914abff2d3775d7bfb741601d
CRs-Fixed: 3506745
Currently, to switch links from link A to link B, Host sends
two back-to-back WMI commands to FW, by setting link B force
active and link A force inactive respectively with force
mode MLO_LINK_FORCE_MODE_ACTIVE/MLO_LINK_FORCE_MODE_INACTIVE
but if association is in EMLSR mode, FW considers the first
WMI to set link B active (when link A is already set active)
to be a trigger to enter EMLSR mode and sends OMN frame as
part of it. To avoid this, Host has to send a single WMI
with force mode MLO_LINK_FORCE_MODE_ACTIVE_INACTIVE and
include both active and inactive vdev bitmaps within the
same command to clearly indicate the link switch.
Change-Id: Iae58fedc800c891625d737daf238fa476382f4a1
CRs-Fixed: 3487826
Currently, data rate for management tx packets is filled only as
1 or 6 Mbps which is wrong.
Sniffer expect data rate multiple of 2. Hence fill the data rate with
multiple of 2 for tx management packets which received from firmware
and converting into mbps.
Change-Id: I5dd6515804cd3751925af0992a30a7441ebf9bbb
CRs-Fixed: 3444177
Currently, mlo_roam_get_link_freq_from_mac_addr() returns 0 for
non-11BE platforms. Valid freq is present in roam_sync indication
and return the same.
Change-Id: I7156adadae9303257bf96e91e4cb8b5d11706104
CRs-Fixed: 3502610
Add a new iterator to loop through all the elements of
link_info array in adapter.
API: hdd_adapter_for_each_link_entry()
a) This API iterates through all the links,
irrespective of whether the index in active_links
bitmap is set or not, starting from zeroth index.
b) The iterator stops at the end of the array.
Change-Id: I6e7aa59fe1828daebe9c616c90d345d0ca405d10
CRs-Fixed: 3448729
P2P-GO mode, use cmd "iw dev p2p0 station dump" get peer
info, the signal value is positive, it means snr, switch
to rssi.
Change-Id: Ibbf62520454144869353e68237981a217a5691fa
CRs-Fixed: 3501760
Currently if hash-based routing fails, packets will be sent
with default routing which will result in packet being queued
to REO2SW1 with tlv reo_dest_indication = 1. Host will create fisa
flow with napi = 0 for REO2SW1.
When next packet received with correct tlv reo_dest_indication value
on different REO with flow_index_invalid = 1 and if tuple matches
with earlier created flow, it can result in REO mismatch issue.
To fix the issue if rx_hash is enabled add check for
tlv reo_dest_indication value.
Change-Id: Ib0895ce666cc788a6df8ae3483e0777e84937ef8
CRs-Fixed: 3500655
Currently OSIF calls the CDP API for DP suspend/resume
handler directly.
Move these calls to DP component so that DP component
can handle the suspend/resume related operations for
internal DP sub-modules (which are outside CDP).
Change-Id: I080809904f619260c707cacbcdbf158250320081
CRs-Fixed: 3502507
Current hw mode is SBS low share. STA 5180, SAP 1 2412,
SAP 2 5745, but SAP 1 is 2 GHz only, can't move to STA 5180,
SAP 2 is SBS with STA, policy_mgr_are_2_freq_on_same_mac
return false for 5745 and 5180 and finally function
policy_mgr_is_restart_sap_required return false, no force
SCC on SAP 2.
Add mcc connection count check for SAP2, if SAP 2 channel
is different from all of existing 2 or more connections, then
try to force SCC on SAP 2.
Change-Id: I7029fd3ec0b8e0ae4543edd9667daa1f87802a7a
CRs-Fixed: 3497431
For multi-SAP case, after get pcl channel list, also call
wlansap_select_chan_with_best_bandwidth() to get best bandwidth
channel so that don't shrink bandwidth after COEX happen.
For concurrency with STA/P2P mode, don't invoke above function and
take pcl channel as first priority.
Change-Id: Ie211f87728d445aad8d806a1025fb76b4c6dccf0
CRs-Fixed: 3491478
In wlan_cm_get_associated_ch_width, if vdev is NULL, which means
reference is not gotten. do not call wlan_objmgr_vdev_release_ref.
Otherwise there is QDF ASSERT.
Change-Id: Id1cc2be3869ad555ebeb1c91a4b5f75d499e70ac
CRs-Fixed: 3503877
In api wma_set_mlo_capability(), the value for EMLSR
transition timeout value is sent as subfield value
instead in microseconds.
Modify wma_set_mlo_capability() api to send transition
timeout value in microseconds.
Change-Id: Ib8daecbb0d35bb43fb4706f3c39124a8b6cdffe6
CRs-Fixed: 3494498
When roaming from OWE SLO to OWE MLO, host considers it as SLO roaming,
although FW sends both assoc link and partner link information to host.
Currently host adds partner link to sta_ctx->wlan_connected_links in
mlo_roam_update_connected_links, since it already receives partner
link information from FW. Then RSO fails to translate to stop state in
cm_fw_roam_complete because partner link is not up.
To make RSO state translation work, host need add partner link to
sta_ctx->wlan_connected_links when partner link connection is
triggered, which is mlo_roam_prepare_and_send_link_connect_req.
Do not add partner link to sta_ctx->wlan_connected_links in
mlo_roam_update_connected_links.
When roaming from OWE MLO to OWE MLO, host triggers disconnection in
partner link, which should not enable roaming in connected STA.
Change-Id: I99938a0805d60287eb2714e5d271579ac2fb4aeb
CRs-Fixed: 3498822
Currently in cds_regdomain.h the following file is included:
"../../qca-wifi-host-cmn/umac/regulatory/core/src/reg_db.h"
While transitioning to the Bazel DDK build system this results in a
build error because the build is done in a sandbox with the root at
the qcacld-3.0 folder, and hence there is no way to access
"../qca-wifi-host-cmn."
To address this issue add the following -I path to the Kbuild:
qcacld-3.0/cmn/umac/regulatory/core/src
And then cds_regdomain.h can just include "reg_db.h".
Change-Id: Ib33300f3593e39caeace1238f2b40c819539ff10
CRs-Fixed: 3497251
Current SAP does not support MCC and for low latency SAP,
host driver needs to support MCC.
To support MCC with SAP, add new concurrency mode for low
latency low throughput SAP as PM_LL_LT_SAP_MODE.
CRs-Fixed: 3469425
Change-Id: Ifb4b2db3bf3c2b433324580fde32d1673df5ae67
During the conversion to the Bazel DDK build system the qcacld-3.0
driver was built without the FEATURE_WLAN_RA_FILTERING flag being
set. This resulted in two separate build errors due to incorrectly
testing using #if instead of #ifdef, so fix those tests.
Change-Id: I9265475c1d33918e8fac7fc138e0bfdc301e5eef
CRs-Fixed: 3497220
For MLO connection, mld addr of connected peer is used
for data packets over the air. Hence same mld addr needs
to be notified to IPA so that offload path can be taken
for connected peer with MLO connection.
Currently for connected ref-clients, link address is provided
to IPA driver and hence only link MAC address are installed
to IPA HW. With MLD MAC address being used in ethernet header,
MAC address mismatch occurs and IPA offload function is not
working.
Fix is to provide MLD MAC address of connected clients to IPA
if SAP vdev is MLO and MLD address are not 0.
Change-Id: Ie739b0c0c569bda03497eae3485d16917e9bdd84
CRs-Fixed: 3497200
The crypto component is always enabled. As a result, the feature flag
CONFIG_CRYPTO_COMPONENT is pointless, so remove it.
Change-Id: I97c22f3bf1224ecd967212d762545890f71764bc
CRs-Fixed: 3496915
When SAP start, channel change event is sent to upper layer before
vdev start, puncture bitmap isn't filled at that time.
To fix it, send channel change event to upper layer after SAP vdev
started.
Change-Id: If7a993c354ab456762cc7be068b12eece0d2893d
CRs-Fixed: 3495030
Currently the CDS layer calls the cdp functions
directly to initialize common DP.
Move these calls to DP component, so that DP
component can handle other DP related initialization
inside the DP component itself.
Change-Id: Ib257ac4f41d468706078cd34a8cbec004a9a622e
CRs-Fixed: 3499726
When process new beacon of current AP during connecting: after pe session
created and before peer assoc, peer phy mode isn't configured, in
lim_process_beacon_eht_op, current channel width is treated as 20M wrongly,
the channel width in eht op of beacon usually larger than 20M, so CSA is
started and RSO is disabled wrongly, although CSA not handled for vdev not
up, RSO can't be enabled any more.
To fix it, only handle eht op of beacon when sta vdev connected.
Change-Id: I8f93a3fbf5ec1de868be2581b0a9a2d77743625e
CRs-Fixed: 3504210