Commit Graph

1747 Commits

Author SHA1 Message Date
Manoj Ekbote
b9322f12bd qcacmn: Support for RF path selection
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
2023-08-11 01:24:54 -07:00
Pragaspathi Thilagaraj
cbefdcb9f0 qcacmn: Add support for WMI_ROAM_SYNCH_KEY_EVENTID
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
2023-08-10 14:42:56 -07:00
Shwetha G K
923e2c3f6d qcacmn: Add enhanced AoA support
WMI changes to support enhanced AoA for CFR

CRs-Fixed: 3553719
Change-Id: Ic09940d3ce7d4eaed81e666b0c891294a82bc4bb
2023-08-09 07:26:06 -07:00
Shwetha G K
7d60fb8543 qcacmn: WMI changes to extract AoA capabilities
Add changes to extract AoA capabilities from EXT2
SERVICE READY EVENT

CRs-Fixed: 3553405
Change-Id: I240d8420a75419f3dde0abd03ef1d6b61abbc3e9
2023-08-08 15:27:19 -07:00
Sai Pratyusha Magam
ffa5a06030 qcacmn: Populate 11AZ SECURITY CONFIG in vdev_param_tlv
Populate 11AZ SECURITY CONFIG in vdev_param_tlv

Change-Id: Ifde9fea68534c00a74230bd886c694e7eb90988c
CRs-Fixed: 3575149
2023-08-07 08:09:41 -07:00
Krunalsinh Padhar
d3e95e7607 qcacmn: Send rf path WMI command
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
2023-08-04 02:49:21 -07:00
Ripan Deuri
9e376fe3d8 qcacmn: Disable FW AST indication for WDS peer
Disable FW AST indication for WDS peer.

Change-Id: Ib2a34fe458841ae00c06be599d9620f4210e9148
CRs-Fixed: 3577688
2023-08-03 13:18:18 -07:00
Vinod Kumar Pirla
35ea97c560 qcacmn: Enhancements for link switch connect
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
2023-08-02 04:55:17 -07:00
Liangwei Dong
5a23527cfd qcacmn: Extract current active/inactive link bitmap
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
2023-07-31 23:55:45 -07:00
Vinod Kumar Pirla
af6cf93a07 qcacmn: FW Link switch request event handler and cnf resp
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
2023-07-31 19:38:48 -07:00
Priyadarshnee Srinivasan
ede405d4f8 qcacmn: Modify the debug levels of WMI prints
Modify the WMI debug level prints to reduce the
prints during bootup time.

Change-Id: Ia6d5b45d982280e572d28d1766a796b1e7ce1c60
CRs-Fixed: 3570322
2023-07-31 19:38:09 -07:00
Vijay Raj
38f6a7af8d qcacmn: Add conversion for new twt notification and twt status codes
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
2023-07-31 05:43:23 -07:00
jingxiang ge
f8d1f8ac6f qcacmn: Extract aux device capability
Extract aux device capability from service ready ext2
event, and report such info to wma/mlme/hdd.

Change-Id: I888624fd3443118ba66fadd7a40fcce4f4b5d521
CRs-Fixed: 3549753
2023-07-30 22:45:25 -07:00
Chunquan Luo
41a1814948 qcacmn: Fix cur_Rssi threshold not logged for PERIODIC roam
When roam reason is periodic, host driver ignore the rssi
threshold in wmi event parsing.

Change-Id: I66c72576c7a2994d88e4c83bee726d8ec92c4189
CRs-Fixed: 3566441
2023-07-30 15:08:40 -07:00
Aasir Rasheed
8f15871d98 qcacmn: Use WLAN_MAX_ML_BSS_LINKS to check max number of links
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
2023-07-28 05:33:05 -07:00
Jianmin Zhu
830e468aa1 qcacmn: Add OUI config to send SMPS frame along with OMN for specified APs
Add gActionOUISendSMPSFrameWithOMN to send SMPS frame along with OMN for
specified IoT APs

Change-Id: Ida35779d11f9c6d6340afdbebeb788520fa7afdc
CRs-Fixed: 3568462
2023-07-27 04:50:43 -07:00
Paul Zhang
1ce24c7251 qcacmn: Add wmi param and export structure
Add wmi param and export api for setting wifi standard.
- add param vdev_param_wifi_standard_version;
- export structure WMI_HOST_WIFI_STANDARD.

Change-Id: I8f4151d8d6139c99a4dd6d1a75502f4cf93d5f3a
CRs-Fixed: 3554259
2023-07-19 12:11:36 -07:00
Aravind Kishore Sukla
23374c26c5 qcacmn: Send sta dump feature info to fw
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
2023-07-18 12:49:59 -07:00
Shreedhar Parande
86ee88bd0d qcacmn: Send bridge peer flag to target
Add and send bridge peer flag to fw.

Change-Id: I15ab04a8646975ad4cc85a66b632f85e359a9158
CRs-Fixed: 3554509
2023-07-18 09:51:47 -07:00
Manikanta Pubbisetty
cbe8170798 qcacmn: Add HIF CE RX support to WBUFF
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
2023-07-18 09:51:03 -07:00
Manikanta Pubbisetty
9b27c6e104 qcacmn: Cleanup WBUFF code to support additional modules
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
2023-07-18 09:50:53 -07:00
Deeksha Gupta
c22f6c569a qcacmn: convert host to fw phymode enum
During ML peer assoc info send, convert host to fw
phymode enum.

Change-Id: I3744b09f629d3c6b55394d56cd58042f86eec332
CRs-Fixed: 3557285
2023-07-17 13:24:59 -07:00
Karthik Kantamneni
9fad850066 qcacmn: Add FISA dynamic MSDU aggregation size support
Add support in driver to check whether F.W supports
dynamic MSDU aggregation size programming to H.W.

Change-Id: Ifb2d41efb23934414cce38753df82e1d15f01e11
CRs-Fixed: 3540531
2023-07-15 13:34:17 -07:00
Shailendra Singh
584096fde4 qcacmn: Add change to extract per vdev tx power
Add change to extract vdev tx power from vdev extended stats.

Change-Id: I929d642a649653cbbbd3911a11dbba92377f70d1
CRs-Fixed: 3496091
2023-07-14 10:07:46 -07:00
Deeksha Gupta
2799299d9e qcacmn: send ml_partner info during assoc vdev peer assoc cmd
Send ml_partner info during assoc vdev peer assoc cmd

Change-Id: Icd69a513dbaeed7ca334a8627fb4b8a9b28d01c3
CRs-Fixed: 3530674
2023-07-13 11:24:47 -07:00
Deeksha Gupta
d5bf598373 qcacmn: Add new API to convert host to fw phymode
Add new util API to convert host phymode into fw
phymode.

Change-Id: I4edf91f3c4140cf004b2b900cb6ca4290a90b241
CRs-Fixed: 3557258
2023-07-13 11:24:25 -07:00
Himanshu Batra
fe2cdfb7a9 qcacmn: Modify failure handling of PTQM migration WMI command
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
2023-07-12 07:49:07 -07:00
Balaji Pothunoori
02622819d0 qcacmn: Extract Rx data packet SGI from WMI_VDEV_SMART_MONITOR_EVENTID
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
2023-07-11 12:49:32 -07:00
Subrat Mishra
e6b159369e qcacmn: Extract WMI ATF 512 Max client support from FW
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
2023-07-10 18:04:07 -07:00
Deeksha Gupta
5bda5de6ce qcacmn: populate num_max_mlo_link_per_ml_bss in WMI init
Set num_max_mlo_link_per_ml_bss to WMI init command.

Change-Id: I48a46f66cea86ee660656509a9cd688e3e1f7541
CRs-Fixed: 3512393
2023-07-10 12:13:51 -07:00
Deeksha Gupta
589214a617 qcacmn: Extend wmi_service for n-link MLO connection
Extend wmi_service for n-link MLO connection.

Change-Id: I269d1730eb59dcf492aca675b0fbfc3e56a0fbb7
CRs-Fixed: 3512375
2023-07-10 12:13:40 -07:00
Liangwei Dong
7280363bff qcacmn: Add force link state API by link id bitmap
Add send_mlo_link_set_active_id_cmd_tlv API to send
force link bitmap to target.

Change-Id: Ie3a41bd2c82b6d10c8d82e4afa83621969c01798
CRs-Fixed: 3515441
2023-06-28 05:05:18 -07:00
David Oladunjoye
6182daebfe qcacmn: Add support for aux support capability
Add support for aux support capability.

Change-Id: Ifc955d6dde8f995133cf3c7fb389d5fc3b3a046b
CRs-Fixed: 3509127
2023-06-28 01:23:28 -07:00
Himanshu Batra
be34bbe6fc qcacmn: Add support for ptqm migration
Add support for ptqm migration

Change-Id: I3f3d6e410bee554477e8e058b1da51f2af5abb23
CRs-Fixed: 3529926
2023-06-27 04:03:41 -07:00
Jianmin Zhu
7bfd6efab8 qcacmn: Add OUI config to enable CTS2SELF with QoS null frame
Add gActionOUIEnableCTS2SelfWithQoSNull to enable CTS2SELF with QoS null
frame for specified IoT APs.

Change-Id: I706152ae2ebbecb617ccd1295aee3f723fcb3005
CRs-Fixed: 3533498
2023-06-25 03:04:45 -07:00
Aniruddha Mishra
df9658cc1d qcacmn: Add nstrinfo in ml_partner_info and parse
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
2023-06-22 06:06:49 -07:00
Nidhi Jain
676e3bd122 qcacmn: Add vdev params for 11az NTB min time between meas
Add host mapping for 11az NTB min time between meas vdev param.

Change-Id: I0e9ecd091459afc509bc96467e4897eb80283624
CRs-Fixed: 3522565
2023-06-21 22:49:22 -07:00
Nidhi Jain
b50d2feef9 qcacmn: Add vdev params for 11az NTB max time between meas
Add host mapping for 11az NTB max time between meas vdev param.

Change-Id: I280a3bdd315bc5e05ca35d27dd16af832ded811d
CRs-Fixed: 3522565
2023-06-21 22:49:11 -07:00
Nidhi Jain
5bac088c52 qcacmn: Add vdev params for 11az TB max session expiry
Add host mapping for 11az TB max session expiry vdev param.

Change-Id: Ifffe373eaf775e1d8acd836ffc66edd77c34271e
CRs-Fixed: 3522565
2023-06-21 22:49:00 -07:00
Abhinav Kumar
c29e8614e0 qcacmn: Process MIXED_MODE_ACTIVE_NUM_LINKS vendor command
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
2023-06-21 16:54:09 -07:00
Narayan Subramhanyan
cb3491162c qcacmn: Add wmi pdev param support for phy param
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
2023-06-19 07:49:41 -07:00
Aditya Kodukula
db32db91ab qcacmn: Add support for per link stats FW event
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
2023-06-17 10:31:46 -07:00
Aditya Kodukula
58e80d75bd qcacmn: Fix typographical errors
Fix typographical errors spanned over various files in cmn.

Change-Id: I9fcf3b7f9bb7d7dd406e6576a60aa4eb783c9ceb
CRs-Fixed: 3529628
2023-06-14 22:02:33 -07:00
Gururaj Pandurangi
61a91c820d qcacmn: Add WMI support to force power save active MLO links
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
2023-06-09 13:50:05 -07:00
Rahul Gusain
cd42d68e8d Revert "qcacmn: Remove NDP_HOST_UPDATE processing"
This reverts commit f5f76bb000.

Change-Id: Id93549d8d8d2607c97f0b800e3377bb632490882
CRs-Fixed: 3523829
2023-06-08 20:47:11 -07:00
Vijay Raj
843992732f qcacmn: Extract Multipass SAP support in target capabilities
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
2023-06-07 13:58:49 -07:00
Chaoli Zhou
41ee181b59 qcacmn: Change log level for ready event handler
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
2023-06-06 11:48:14 -07:00
Aniruddha Mishra
6324e57636 qcacmn: Read MSD values from FW
Get MSD values using FW provided getter functions
and store it

Change-Id: I894ffabd5d46c038c8c552dd670199b94ad6a16a
CRs-Fixed: 3500478
2023-06-02 16:49:52 -07:00
Shashikala Prabhu
6bb6eb3b88 cmndev: Initialize the WMI pending command after target recovery
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
2023-06-02 16:49:02 -07:00
Rahul Gusain
f5f76bb000 qcacmn: Remove NDP_HOST_UPDATE processing
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
2023-06-02 16:48:41 -07:00