Add support to handle WMI_ROAM_SYNCH_KEY_EVENTID.
WMI_ROAM_SYNCH_KEY_EVENTID is received after roaming to 3 Link
MLO AP when standby link is supported.
Add changes to register handler function pointers and parse
the event.
Change-Id: Iee17560f9f1f3242ef512a550764a9c64319b67f
CRs-Fixed: 3571673
Currently RX nbuf data pointer is reset considering
headroom reserve size of NET_SKB_PAD. So while reattaching
buffer back to H.W always data pointer is reset back to head plus
NET_SKB_PAD offset. But if skb is not allocated with head room
reserve then we should not reset data pointer taking NET_SKB_PAD
as consideration.
Fix this by pushing nbuf data pointer back to the state when
nbuf entered the host.
Change-Id: Ie96f99fdd92deaa921619a45cd5993a42f7b8f6e
CRs-Fixed: 3582873
Per PDT testing, when vdev creating, the variable rsp_timer_inuse
is set, it is abnormal and causes fw crash. Since the variable
rsp_timer_inuse will be initialized later in function
target_if_psoc_vdev_rsp_timer_init. So ignore status
QDF_STATUS_E_ALREADY in function mlme_vdev_obj_create_handler.
Change-Id: I48c622d99f1a0686dfa7725fb69116a5ab8a1e58
CRs-Fixed: 3574858
Extend QCA_WLAN_VENDOR_ATTR_CONFIG_OPTIMIZED_POWER_MANAGEMENT
attribute to support enum qca_wlan_vendor_opm_mode.
Add QCA vendor attribute QCA_WLAN_VENDOR_ATTR_CONFIG_OPM_ITO and
QCA_WLAN_VENDOR_ATTR_CONFIG_OPM_SPEC_WAKE to configure inactivity
timeout and speculative wake interval in User defined optimized
power save mode.
Change-Id: I726ca91638e07fd1efae4921519bb6affc8b9c21
CRs-Fixed: 3567041
Currently on WCN6450 which is based on IPCI, there is a problem
in re-enabling the IRQs while firmware recovery is in progress.
While processing the CE IRQs, if there’s an active recovery
happening in the host (due to FW assert), we are leaving the IRQs
disabled in the kernel.
Fix this by refactoring the code such that hif_irq_disable() is
called only when there is no active recovery.
Change-Id: I4e3ccbb5f820645597feb724ddfe321e7d7d1a5f
CRs-Fixed: 3579429
Currently, the host driver interprets an active link
status as 0 and an inactive link status as 1.
To comply with updated requirements, the change will
switch active links to be represented as 1 and inactive
links as 0, aligning with the correct status interpretation.
Change-Id: I5342e85106b4623ed4c79a4841884bfa8cd9d638
CRs-Fixed: 3581454
A new start response reason was added by FW to indicate invalid config
of TX VAP. Update the corresponding enum on host to support this reason.
Change-Id: I924776a83176d495ac9e8b656a78b131bd0b0cc5
CRs-Fixed: 3582194
RCC mode of CFR capturing was not working on miami as
bb_captured_channel field which is being accessed from
RXPCU_PPDU_END_INFO tlv is not being set in host.
These fields of cfr are fetched from HAL_RX_GET()
which is being failed to read by host as it
follows 32 bit approach and miami uses 64 bit format.
Reading 4 bytes is not enough ,So changing HAL_RX_GET()
to HAL_RX_GET_64() and this will read 8 bytes with
which we get elements properly.
Change-Id: I8c669e5cc78ce856c1bc4b0449125aac45461a9b
CRs-Fixed: 3572563
Host is failing to read few cfr elements by HAL_RX_GET for
pebble as HAL_RX_GET follows 32 bit approach and pebble uses
64-bit format and so reading 4 bytes is not enough.
Used HAL_RX_GET_64 to read those cfr elements and this change
reads 8 bytes and then the elements are properly read.
Change-Id: If6f0b8e2a215719a1e42828764db01fe99a7e48d
CRs-Fixed: 3575631
Currently hal_info and hif_info logs levels are set to
QDF_TRACE_LEVEL_INFO, which results in prints being logged
to dmesg buffer.
To prevent prints logging into dmesg buffer, changes logging
level to QDF_TRACE_LEVEL_INFO_HIGH.
Change-Id: I039c5e7b6b47f1ffda8e32ff44322d1963648c41
CRs-Fixed: 3577831
In rx monitor deliver, Buffer need to be free properly for any
failure after MPDU restitch.
Change-Id: I7d2f649e8266d91d50a429a92c07bc42d1d730eb
CRs-Fixed: 3580509
Improve readability of monitor filter update error messages.
This will help to avoid redundant error message printing from
caller.
Change-Id: I63dbc52be7a2f9537bf226fe0008c4efb51fe582
CRs-Fixed: 3576860
Currently, driver extracts EMLSR caps info from association response
for assoc vdev but this info is not present in link vdev.
Thus, driver should cache this EMLSR caps info in ML STA context while
extracting for assoc vdev and use these values for link vdev.
So, for this, add EMLSR caps struct in ML STA context.
Change-Id: I0ecf32ed4af9fb07624498f2753c12c5420edec1
CRs-Fixed: 3578371
monitor peer is not allocated for MLO MLD peer this lead to drop in
broadcast and multicast frame in legacy tx monitor path. Added support
to enable monitor peer for all peer.
Change-Id: I786554a918bae966a929e4c9188c1b0f324b5846
CRs-Fixed: 3544695
__reserved_g_0003 is not present for peach platform, remove logging of
it as it is not useful anyway to log reserved field.
Change-Id: I8a7c4df5d6b769387010304d0234932925c1a866
CRs-Fixed: 3580279
After successful connection with an AP, driver fills the struct
cfg80211_connect_resp_params and sends it to the kernel.
For an MLO connection, the link's mac address field in the struct
is updated by AP's mac address instead of link's self_mac address.
So, update the kernel struct properly, to avoid issues.
Change-Id: I4d1ea4ee3fe5272dd4e08c0edd22b1df5c7999a3
CRs-Fixed: 3579820
Previously, the link removal state is in vdev object, but
the standby link has no vdev and vdev maybe repurposed
to other link, so link removal flag has to be in link info
struct to record the link removal state of corresponding link.
Change-Id: I435a8910897b099cffcccb0e435b70efb896eb8a
CRs-Fixed: 3572873
Prepare and Send WMI command to fw to set the rf path. Also, add module
ID for rf path switch for qdf log prints.
CRs-Fixed: 3568221
Change-Id: I7ef0ffe66eaed837424699641d3e5b8537cd0304
Current code supports CFG80211_MULTI_AKM_CONNECT_SUPPORT only for
v5.15 kernel.
Enable this feature support from kernelv6.0 by default.
Change-Id: Ie0d36c6e6d286a432bcaa99ee905858e70297ba1
CRs-Fixed: 3577264
Restructure memory free function so both win&mcl can call
it. to avoid memory free mismatch.
Change-Id: I31634f94421f30d74d2eaad44e5df089d489d67f
CRs-Fixed: 3572976
Lite monitor deallocation should happen before mon rings deinit.
Call lite monitor dealloc function before mon rings deinit
Change-Id: I9b93945ccc092ff524555e8a4aa9cd2e3877f70f
CRs-Fixed: 3578630
Create and attach bridge peer under bridge vdev for 4-link
MLD.
If there are no bridge VDEVs, fall back to existing mechanism.
Change-Id: I32187bcc849fbe36200967bb7f88dfa56c22c3dc
CRs-Fixed: 3574491
When HOST based TWT is triggered from userspace, while disabling
congestion based TWT, disable/enable TWT may fail due to ongoing
roam operations in firmware. These changes return error code EBUSY
in failure case in vendor command context to userspace.
Change-Id: I3da64b6ea4dcf08cf80966cd7639d8945fe46417
CRs-Fixed: 3520189
Currently, get_infra_cp_stats callback of
infra_cp_stats_req_context is not updated to
NULL after processing the command.
Deregister get_infra_cp_stats callback
function after processing CP stats command.
Change-Id: I916a9432acd7f97aabe0db8ea1cae4228362a8f1
CRs-Fixed: 3577645
Currently, ast entry is not found when VDEV ALL
is there. Change is finding the ast entry when
particular vdev is passed and, also when vdev
all is passed.
Change-Id: Ib71b843c74b9a64cb15f221577ee8e2d30614973
CRs-Fixed: 3575721
Currently host is programming IDX_UPD_EN for all the CE
channels even though which are not used by host.
Fix this by programming CE ctrl register which are
used by host.
Change-Id: Ic0c133d87c688257ef2047bcb177228e25369aed
CRs-Fixed: 3575870
Stack variable 'mlme_info' in cm_connect_complete() can lead to
uninitialized access if BSSID in 'resp' function argument is NULL.
Initialize the variable to avoid unanticipated results.
Change-Id: Id9db244c8168740e4d5c0d71959b578551773bb6
CRs-Fixed: 3576785
Currently, host driver removes crypto keys based
on pdev create or delete. But these keys are not
valid across connections. So, free the crypto keys
upon new candidate selection/new connect request.
This change is to free crypto keys if there is new
candidate selection or another connection request.
Change-Id: Ifaa8786efab09f6b753a6355f249ccb3018da097
CRs-Fixed: 3568173
Introduce following for link switch disconnect:
1) Connect request source.
2) Connect request reason.
If the set MAC address response for new link is successful, post
connection on new link and transition the link switch state to
connecting. If the status of connection is successful, update
the state to link switch complete or else directly go for
deserializing link switch command and posting response to FW.
Based on the final state of link switch at the time of sending
FW response, send the appropirate status of link switch and reset
the state of link switch to idle post FW notify.
Don't unlink BSS incase of failure in connection.
Don't indicate connect results to userspace.
As we are already in serialization due to link switch,
don't serialize/deserialize connection command if it
is due to link switch.
Incase of race condition between link switch connect and
userspace connect/disconnect always abort link switch connect.
Change-Id: Ie350b52021c36802b82d6cb5f6f441fe1bd10458
CRs-Fixed: 3556529