Includes changes:
1. Save frequency values from EXT and EXT2 events to psoc object
- wireless_modes, low/high 2 GHz chan and low/high 5 GHz chan from EXT event
- wireless_modes_ext, similar frequency range fields with _ext from EXT2
event. Frequency range fields with _ext are non-zero when a radio supports
overlapping frequency. Eg.Radio that supports 5 GHz full and 5 GHz high band will
have low/high 5 GHz fields populated with primary band values in EXT event and
low/high 5 GHz fields are populated in EXT2 event with secondary band
values. These values are stored in tgt info for later use.
2. Modify regulatory APIs to get and set the wireless modes in reg
component
3. Retrieve frequency fields from EXT2 event
Change-Id: I49ebcc7ee7b26bd115f37abc8cb5b6fa5a415eda
CRs-Fixed: 3576551
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
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
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
FW will report current active/inactive link bitmap for
each set link command. Extract them and save to respone
data struct.
Change-Id: I8513391fbf3b181c6182d6568d0ce8e83c627bc6
CRs-Fixed: 3564785
Once the FW sends the link switch request to host handle
the request from scheduler thread and send confirmation
back on completion of link switch process with status of
link switch (success/failure).
Add new serialization command type for link switch.
Introduce flags to get the current state of link switch
request, set the state to idle when no link switch in
progress or once the current link switch is completed.
Access to state is protected with MLO dev context lock.
Implement various helper API to:
a) Transition link switch to next state.
b) Get current state of link switch.
c) To check whether any link switch is in progress.
c) To check whether link switch is happening
on assoc VDEV or not.
Introduce a new VDEV flag to suggest the VDEV is in
link switch process and also implement helper APIs to
set/get/clear this VDEV flag.
a) The flag is set at start of link switch, once
the FW request params are validated and before
proceeding for link switch disconnect on VDEV.
b) Clear the flag once the Link switch confirmation
is sent to FW.
Validate the link switch request params:
a) IEEE link ID's received.
b) Check if new connection is part of MLO connection.
c) Check if VDEV is MLO STA VDEV or not.
d) Is VDEV in connected state or not, that means
VDEV is not in transitioning state due to disconnect.
e) Check if any link switch in progress on this MLD
f) Current link ID of VDEV equals the FW params.
If validation is successful, serialize the link switch
command and in the serialization activation start the
actual link switch process.
Change-Id: Ie582650541054c8cf39aaa8316e86a7a40256a15
CRs-Fixed: 3556422
Introduce new twt statusconversion
HOST_ADD_TWT_STATUS_LINK_SWITCH_IN_PROGRESS and
HOST_ADD_TWT_STATUS_UNSUPPORTED_MODE_MLMR for
individual twt in 11be.
Change-Id: I76194ec0172d06c1b176e3afd3a5e66efdd12f4a
CRs-Fixed: 3568732
Extract aux device capability from service ready ext2
event, and report such info to wma/mlme/hdd.
Change-Id: I888624fd3443118ba66fadd7a40fcce4f4b5d521
CRs-Fixed: 3549753
When roam reason is periodic, host driver ignore the rssi
threshold in wmi event parsing.
Change-Id: I66c72576c7a2994d88e4c83bee726d8ec92c4189
CRs-Fixed: 3566441
Currently, We are using WLAN_MLO_MAX_VDEVS to check
max number of links, However with n link mlo we need
WLAN_MAX_ML_BSS_LINKS to check max number link.
Change-Id: Idd8a96ae80030c813bbdcebcdc4c76d2f93bea5d
CRs-Fixed: 3567342
Add gActionOUISendSMPSFrameWithOMN to send SMPS frame along with OMN for
specified IoT APs
Change-Id: Ida35779d11f9c6d6340afdbebeb788520fa7afdc
CRs-Fixed: 3568462
Driver sends feature set information to fw as
part of wmi init command.
Fill sta dump feature info in feature set bitmap
and send it to fw.
Change-Id: If28cd8f10af2333f0f231f0c4ae659ab20c1358a
CRs-Fixed: 3552909
Currently, WBUFF is being used only for WMI TX buffers.
Add HIF CE RX buffers support to WBUFF in an effort to re-use
the copy engine RX buffers instead of freeing/allocating buffers
for every CE RX transaction. This fixes the problem of CE RX
memory fragmentation.
Change-Id: Id9c043a5c5d0882a7994fa03cd8c335555d46b8d
CRs-Fixed: 3534539
Currently, WBUFF logic is being used only for WMI TX buffers and the
logic is closely tied to the WMI TX buffers alone. It is cumbersome
to extend the support of WBUFF for additional modules in the current
state.
Cleanup the WBUFF code and make it generic to add future module
additions.
Change-Id: Ib20ddd487b4e88c3225da1883ad9ade722c2a606
CRs-Fixed: 3520811
Add support in driver to check whether F.W supports
dynamic MSDU aggregation size programming to H.W.
Change-Id: Ifb2d41efb23934414cce38753df82e1d15f01e11
CRs-Fixed: 3540531
In PTQM migration WMI command, multiple peer entries can be sent.
If the number of entries are more than WMI buffer size limit, then
multiple WMI commands are sent. If there are some WMI PTQM cmd sent
successfully followed by a failure, reset peer flags only the failed
entries instead of all the entries
Change-Id: I1031f1ac700e05e651a2488827cb6b6cda195bac
CRs-Fixed: 3556179
Due to limitation uCode always filling SGI as long for VHT mode in
rx_msdu_start_tlv.
This change is to extract VHT Rx data packet SGI from
WMI_VDEV_SMART_MONITOR_EVENTID.
Change-Id: I5fcdc463ea2a6d83253e39cc377a2471aeb4e122
CRs-Fixed: 3477303
Extract WMI Service bit for ATF 512 Max client support advertised by
Firmware as part of wmi service ready.
Add rxops functions as for upper modules to get it.
Change-Id: I51e8dcaad96bdd29eb6fd4c37b0917127696ede6
CRs-Fixed: 3551661
Add send_mlo_link_set_active_id_cmd_tlv API to send
force link bitmap to target.
Change-Id: Ie3a41bd2c82b6d10c8d82e4afa83621969c01798
CRs-Fixed: 3515441
Add nstrinfo in ml_partner_info and parse sta info.
Add nstr_info in ml_peer_ctx and peer_assoc_params
and send to FW
CRs-Fixed: 3483776
Change-Id: I255fc671b84a2048c6057a61a6de8d81db36c681
1. Host receives QCA_NL80211_VENDOR_SUBCMD_MLO_LINK_STATE
vendor command.
2. parse the new attribute
QCA_WLAN_VENDOR_ATTR_LINK_STATE_MIXED_MODE_ACTIVE_NUM_LINKS
and get the number of MLO links to operate in the active state.
3. If any of the links is in an inactive state due to concurrency,
we need to reject the request.
4. Host sends to FW via WMI command WMI_MLO_LINK_SET_ACTIVE_CMDID via
the below WMI attributes with mode WMI_MLO_LINK_FORCE_ACTIVE_LINK_NUM
and set the wmi flag control_flags to indicate if FW need to use
force link number instead of force link bitmap.
Change-Id: I91759e6a1273d393f4bef1264478950416752355
CRs-Fixed: 3529489
Add wmi pdev param support for long range phy param like cts timeout
slot time etc as part of enabling user config.
Change-Id: If1f3d86e09e634cde43ef8211831511781e96672
CRs-Fixed: 3520970
Add support in driver to check if FW supports per link stats
in case of mlo connection, using the wmi service event
WMI_SERVICE_PER_LINK_STATS_SUPPORT
Change-Id: I85ea50877455efc3646d3b1892ce855dc07b1dbf
CRs-Fixed: 3520338
Add WMI command support to force power save on all the
active MLO links for a defined number of beacon periods.
Force power save allows the firmware to suspend STA links
for X beacon periods and remain asleep even if the AP
advertises TIM as opposed to regular power save mode where
STA links wake up if the AP indicates that it has buffered
data to send.
Change-Id: I381a107f3f5f479b0eee4f526a49d6fc886aced0
CRs-Fixed: 3509543
In api extract_service_ready_ext2_tlv(), Multipass
SAP capabilities is extracted to enable multipass
sap suppot in host
Change-Id: I422a5dbaca405ceaea70559863af48d046f92cbe
CRs-Fixed: 3515331
The qdf_print default log level is error, which is not
properly set for non-critial/fatal case. So change
it to wmi_info by default.
Change-Id: I4507416e241a47e56de48f537cb1ad5ad913c264
CRs-Fixed: 3519208
In the case of SSR, the WMI layer callbacks will not be called as part of
tx completion. Hence, the nbuf and HTC packets are freed in
send_packet_completion(). In this case, the WMI pending command count is
not decremented. During target recovery, this wmi pending command will be
increasing eventually, and assert will be seen when pending commands reach
MAX defined value.
To fix this, initialize the WMI pending commands to zero after the target
recovery.
Change-Id: I56d38d7064bc089725d5453883c22f572e51e078
CRs-Fixed: 3513491
Firmware sends NDP_HOST_UPDATE event as an immediate response to this
request and starts cleaning peers one by one. Once an NDP session is
ended (indicating NDP_END to peer + internal cleanup), firmware sends
NDP_END_IND to host.
Currently, host driver stops the wait timer and change state from NDP
end to disconnected upon receiving the NDP_HOST_UPDATE. But firmware
might still be in the process of NDP cleanup. As the NDP_END_ALL
context is unblocked, driver may send NAN disable request to firmware.
This may cause inconsistency in firmware state machine and firmware may
drop the ongoing NDP_END request. So, peer doesn't get the NDP_END frame
in such cases.
Unblock the NDP_END_ALL-wait call only upon last NDP_END indication to
avoid such issues. This change moves the major functionality of
NDP_HOST_UPDATE processing to last NDP_END indication. Cleanup/remove
the processing of NDP_HOST_UPDATE as it's not needed anymore.
Change-Id: I00e73d211de4626484ffb2483c00adce1a7302c1
CRs-Fixed: 3512923