Commit Graph

3260 Commits

Author SHA1 Message Date
Paul Zhang
3e9f7d3d0e qcacld-3.0: Stop TDLS peer_discovery_timer
For MLO TDLS, the discovery request frame is sent on
different links and peer_discovery_timer is started to
receive the discovery response frames from different
links.

One race condition is: the timer is running and then
vdev destroy happens. Then the timer callback could not
get the right pointer when timer is triggered.

To resolve this issue, stop the timer in the function
tdls_vdev_obj_destroy_notification.

Change-Id: I0b7aff14a599229cb5848b0b7eb9d2af53e6ad94
CRs-Fixed: 3554466
2023-07-12 19:03:08 -07:00
Vijay Patil
c9520ce773 qcacld-3.0: Add change to replace free connect request API
In current scenario mlo_free_connect_ies() and qdf_mem_free()
use to free up connect request and sub memory.
Similarly wlan_cm_free_connect_req_param() also free up the
connect request and its sub memory.

So replace mlo_free_connect_ies() and qdf_mem_free() with 
wlan_cm_free_connect_req(). Also replace mlo_free_connect_ies()
with wlan_cm_free_connect_req_param() to avoid code duplication.

Change-Id: I37a930c3b7e63eaa8b9df9433fdc25b25d562a3c
CRs-Fixed: 3554198
2023-07-12 07:48:34 -07:00
Liangwei Dong
11a102942b qcacld-3.0: Notify connection state change event
Notify connection state change event to policy mgr
to change force link mode accordingly.

Change-Id: I2da0f453ee1af67c95346f2dc23e9e757aa491b6
CRs-Fixed: 3525191
2023-07-11 12:48:56 -07:00
Prasanna JS
d20796e882 qcacld-3.0: Add support to configure UL MU
Add support to inform peer enable/disable UL_MU
support in STA mode using OMI frame.

Change-Id: Ie12f4991654f7504802b4ae0fbdd26aecda1ee63
CRs-Fixed: 3546176
2023-07-11 03:16:53 -07:00
Amit Mehta
fe6f4d208b qcacld-3.0: Add UCFG API to get DP vdev stats
Add UCFG API to get DP vdev stats.

Change-Id: Icc0eab717ed02c544240379b8f5fcfa9d98a251a
CRs-Fixed: 3554687
2023-07-11 03:16:47 -07:00
Venkateswara Naralasetty
0246a1ba30 qcacld-3.0: add SWLM support for wcn6450
Changes required for SWLM support on wcn6450

Change-Id: I50e32d91fe45e31688cd1a11e5055a87a2fd7a4d
CRs-Fixed: 3540274
2023-07-10 18:03:26 -07:00
Liangwei Dong
15c38e2b3e qcacld-3.0: Handle nlink force mode by link id bitmap
Add APIs to handle force link active/inactive by link id
bitmap. For N-link mlo STA (N > 2), some link may have no
vdev attached, we have to use link id bitmap to do force
active/inactive.
If the service WMI_SERVICE_N_LINK_MLO_SUPPORT is not enabled,
vdev based handler will be invoked.

Change-Id: I1c48a7227185923a38f3e2b75f1274df9a186437
CRs-Fixed: 3525174
2023-07-10 15:02:39 -07:00
Balaji Pothunoori
d92eb50e4f qcacld-3.0: Fill proper SGI for VHT Rx data packet
Due to limitation uCode always filling SGI as long in
rx_msdu_start_tlv.
This change is to update SGI for VHT Rx data packet which is
extracted from WMI_VDEV_SMART_MONITOR_EVENTID.

Change-Id: I5fcdc463ea2a6d83253e39cc377a2471aeb4e133
CRs-Fixed: 3459106
2023-07-10 15:02:34 -07:00
Deeksha Gupta
e139bd3f3b qcacld-3.0: populate num_max_mlo_link_per_ml_bss during WMI init
Set num_max_mlo_link_per_ml_bss during WMI init command.

Change-Id: I2eb5473d73476cb49ba9176be68a0ac20b3e44ba
CRs-Fixed: 3512395
2023-07-10 12:12:47 -07:00
Deeksha Gupta
e6770d16fb qcacld-3.0: Add new field for N-link MLO connection in wmi_service
Extends the wmi_service_ready_ext2_event_fixed_param
structure with a new field to support N-link MLO
connections.

The host will now calculate the maximum number of
links per MLD value by intersecting the firmware
capability and the ini value present in MLME component.
And this calculated value will be stored in the MLME
component.

Change-Id: I89bf3553781cd809cdb5496fbf0f68e59569033a
CRs-Fixed: 3512343
2023-07-10 12:12:41 -07:00
Will Huang
57604f153e qcacld-3.0: Store and delete other SAP connection information if SCC
Currently only store and delete self SAP connection information when
get PCL for mode SAP, if there is other SAP doing SCC with it, the PCL
list may only have SCC channels, but if the SCC channel has unsafe
channel within bandwidth, it cannot move to other safe channel which
has bigger bandwidth.

For example, AP1+AP2 on channel 5240(BW 80 MHz) and AP3 is on channel
2462, COEX AVOID event come and both 5180 and 2462 become unsafe, when
AP1 is going to switch channel it will get PCL list only have 5240, so
it cannot move home channel but just shrink bandwidth to avoid unsafe
channels.

Fix it by also store and delete other SAP connection information SCC
with current SAP if get PCL from get safe SAP channel path:
wlansap_get_safe_channel_from_pcl_and_acs_range().

Change-Id: Ia52c6ac221293036f65173f38cf4b8436629492a
CRs-Fixed: 3534131
2023-07-09 20:07:34 -07:00
Aditya Kodukula
f71fc8b924 qcacld-3.0: Add support for cumulative mlo vdev stats
Add support for aggregation of vdev station stats
in case of mlo connection.

Change-Id: I387baa6971d5a16083a8e29257b4cfd1dbeba0d3
CRs-Fixed: 3531561
2023-07-08 11:10:38 -07:00
Ashish Kumar Dhanotiya
749fd3fe37 qcacld-3.0: Update policy mgr device mode conversion API
Currently policy mgr api policy_mgr_convert_device_mode_to_qdf_type
accepts only QDF_OPMODE as an argument and converts it to
policy_mgr_con_mode. Also, name of this api does not reflect
the task this is doing.
With the new SAP mode for low latency low throughput SAP,
to convert the QDF_OPMODE to policy_mgr_con_mode, host driver
needs to know if it is ll_lt_sap or normal sap. To get this
information, update policy_mgr_convert_device_mode_to_qdf_type
api to accept the psoc and vdev id as parameters. Also, rename
this api to reflect the task this api is doing.

Change-Id: Idcf1321038ba4852d2aa3d8157b558423a738765
CRs-Fixed: 3524247
2023-07-08 11:10:28 -07:00
Jinwei Chen
fa01c6ee67 qcacld-3.0: Support pre-allocated memory for DP TX Mon Desc pool
Support pre-allocated memory for DP TX Mon Desc pool.

Change-Id: Ic4125c7e96ef7dfd5e24bc8b5e347ca0b307f5d8
CRs-Fixed: 3549444
2023-07-08 01:25:41 -07:00
Liangwei Dong
b0b68e4b63 qcacld-3.0: Defer force SCC if STA/CLI is disconnecting
When STA/CLI is disconnecting or roaming, the policy mgr
connection table may include a channel which is not final
channel after disconnecting/roaming. Force SCC logic may
use old channel of STA/CLI to compute target channel,
that may not be correct when STA/CLI channel is updated later.

Fix by checking any STA/CLI in transition state to skip
the force SCC.

Change-Id: Ia261b40e4b964025bc3dc22151c2ca0708b543b1
CRs-Fixed: 3543895
2023-07-08 01:25:33 -07:00
Prasanna JS
0e84071910 qcacld-3.0: Move get sta tx/rx nss functionality to mlme
Move get_sta_tx_nss and get_sta_rx_nss functionality to mlme

Change-Id: I7b317c164d98bf7ed29f5a212c64322a5325aa4b
CRs-Fixed: 3546201
2023-07-05 17:17:54 -07:00
Paul Zhang
4910df0bb1 qcacld-3.0: Fix NULL pointer dereference issue
"mlo_vdev_get_by_link_id" may return NULL in failure case.
Add NULL check and release the vdev after process in
function: epcs_handle_rx_req and epcs_handle_rx_resp.

Change-Id: Ia1575b4fbcfde326d8e9b5c7b0562852ca23912b
CRs-Fixed: 3547906
2023-07-04 15:41:09 -07:00
Prasanna JS
44ddeedbd9 qcacld-3.0: Move SR changes from WMA to Target_if
Move SR changes from WMA to Target_if and remove
WMA api's which was previously using to update
SR threshold.

Change-Id: I219cd56195471df561a5789fb235e375a14e756c
CRs-Fixed: 3374674
2023-07-03 12:53:24 -07:00
Surya Prakash Sivaraj
5e69b2f7f7 qcacld-3.0: Prevent CSA in middle of CAC
If precac interface is in the middle of CAC, do not
entertain any CSA request coming as part of userspace/
country change/unsafe channel handling. Processing the
Channel change request in middle of CAC leads to teardown
of the SAP as SAP is in SAP_STOPPED state.
This leads to pre-cac failure.

To fix this, prevent CSA while CAC and once CAC is finished,
check the sanity of the operating channel based on
unsafe/disable channel list and move it to a valid channel.

Change-Id: I2757753a2a13bdaef60f9b9a46fcd569ddb7306c
CRs-Fixed: 3505593
2023-07-03 01:47:47 -07:00
Paul Zhang
472d30e365 qcacld-3.0: Revert "Tune TDLS code for discovery response"
The issue has been addressed in the supplicant.
So revert change: I89b501fc4da8615ddb8973e5edce73294793558f

Change-Id: I02b74a512c97803c597942c1ea00e3a02fbf4599
CRs-Fixed: 3544617
2023-06-30 23:48:33 -07:00
Paul Zhang
ac2beaa8f5 qcacld-3.0: Remove TDLS 11be MLO CAP checking
TDLS off channel will be supported by FR 80104, so remove the
checking when setting flag ENA_TDLS_OFFCHAN.

Change-Id: Iae135e835bd74e32a3f712083263192ae7cb635f
CRs-Fixed: 3545087
2023-06-30 20:28:18 -07:00
Surya Prakash Sivaraj
cfd8da1768 qcacld-3.0: Keep "p2p_go_on_5ghz_indoor_chan" ini disabled
Keep the ini "p2p_go_on_5ghz_indoor_chan" disabled by default.

Change-Id: If6a4b1a62959299aa5fceb5342571912c5e72c9b
CRs-Fixed: 3540166
2023-06-30 20:28:13 -07:00
Paul Zhang
fe32c542b7 qcacld-3.0: Add vendor command API for EPCS
Add vendor command API to set EPCS (Emergency Preparedness
Communications Service) capability and trigger EPCS
function enable or disable.

Change-Id: I2ffe4d268731c57dd6e3ddfe0586d4dcb77dc611
CRs-Fixed: 3511170
2023-06-30 04:26:30 -07:00
Jyoti Kumari
30ca608b32 qcacld-3.0: Handle eMLSR concurrency
In NAN+eMLSR concurrency, when NAN is already present
and if eMLSR comes. Host disables(by sending
MLO_LINK_FORCE_MODE_INACTIVE_NUM) one link only after
both vdev up. But there is a race condition where
firmware enters to emlsr mode just after link vdev up
and host sends the disable command after
WMI_VDEV_INSTALL_KEY_CMDID. This causes inconsistency
in firmware eMLSR state machine. Firmware asserts as
other mac is occupied by NAN and eMLSR module tries to
change the hw mode to eMLSR mode. Both mac's should be
free/available for eMLSR STA operation when firmware
tries to switch hw mode to eMLSR.

As part of fix, Host to send mlo_force_link_inactive=1
in peer assoc command of link vdev to indicate firmware
not to enter in eMLSR mode. Host shall disable one link
as part of concurrency evaluation post connection anyway.
Once the concurrency is gone, host to enable both links
to let firmware enter into eMLSR hw_mode.

Change-Id: I0ee141b51868a3c5c5d9ff6cf1bd3765bc450fa4
CRs-Fixed: 3527911
2023-06-30 00:55:21 -07:00
Abhinav Kumar
4704ced888 qcacld-3.0: Update assoc channel width as per mlo vdev
The issue is host always uses assoc link channel width
to calculate the list of the channel(s) to trigger
wide band scan for both links.

In the case of N link MLO connection, the associated
channel and associated channel width may be different
for assoc link and non-assoc link(s).

Fix is to choose the proper associated channel width
and prepare the channel list for each link(s).

Change-Id: I2fce5d1153d396f1bfc9575572d90d2cfec0ac8a
CRs-Fixed: 3539444
2023-06-29 18:14:20 -07:00
Liangwei Dong
2958ab1b39 qcacld-3.0: Handle link id bitmap from set link state response
Convert link id bitmap to vdev bitmap and update policy mgr
connection table.
Record the current force link command state to mlo context.

Change-Id: I0b28222de10a9493a153ee00189b87e4275a4231
CRs-Fixed: 3515467
2023-06-28 05:04:46 -07:00
Rakesh Pillai
466b34b3c2 qcacld-3.0: Change FISA cfg check APIs to static inline
Change the cfg enablement check APIs (currently FISA),
to static inline, in order to avoid function call
every time to check if the feature is enabled or not.

Change-Id: Ie541313c1b0a7512f71a6189a706871e57b3145e
CRs-Fixed: 3540739
2023-06-28 01:22:36 -07:00
Srinivas Dasari
6cce61196f qcacld-3.0: Avoid RSO stop and PCL update when roaming is in progress
Currently, RSO is stopped and PCL is updated to firmware when
SAP stop happens. But this causes inconsistency in roam sync
handling if roaming is in progress. As host driver RSO state moves
to STOPPED, host doesn't send ROAM_SYNC_COMPLETE though
ROAM_SYNC_IND is processed successfully. Firmware waits
for 6 seconds and asserts as it hasn't received either
ROAM_SYNC_COMPLETE or ROAM_ABORT(RSO_STOP).

So, don't stop RSO and avoid PCL updation when roaming is
in progress in SAP stop case. PCL gets updated to firmware
post roaming anyway. Same is applicable for SAP start also.

Change-Id: I9a6c4579d9cfab9041ee76739705d4db5a40192d
CRs-Fixed: 3518876
2023-06-27 21:48:32 -07:00
Krupali Dhanvijay
026c0f435f qcacld-3.0: Reset CPU frequency in HO failure
CPU min frequency is boosted to maximum once roam start is received.

Add API to reset CPU frequency in case of HO failure.

Change-Id: Ib59d4d69a68f311dbb01609e7f5f64c307fcedc2
CRs-Fixed: 3522942
2023-06-26 03:21:37 -07:00
Rakesh Pillai
cd12cecff9 qcacld-3.0: Remove dp_soc usage (all but one) from FISA
Currently FISA accesses the dp_soc (converged DP soc handle)
for various misc info (like hal_soc handle etc). Since these
information are now stored in the non-converged DP component,
there is no need to access dp_soc.

Cleanup the access to dp_soc (converged DP soc handle) in
the FISA path.

Change-Id: I6f373eb1ee57933d631237f7281c99bfceb100c3
CRs-Fixed: 3512048
2023-06-24 13:31:05 -07:00
Rakesh Pillai
c96c1a88d9 qcacld-3.0: Fetch rx_pkt_tlv size via CDP API
Add support to fetch rx_pkt_tlv size from the
converged DP using CDP APIs.

Change-Id: Ibd992d776e8e5e3ff87acb0e9b80d147064747e4
CRs-Fixed: 3512046
2023-06-24 13:30:59 -07:00
Rakesh Pillai
4c897fe85d qcacld-3.0: Add support to send FISA HTT msg using CDP
Add CDP APIs to send FISA related HTT msgs from the
non-converged DP component.

Change-Id: Ie8dcb5d68497ac0de4c0781c981ede2239df0a78
CRs-Fixed: 3512045
2023-06-24 13:30:54 -07:00
Rakesh Pillai
5c54710c38 qcacld-3.0: FISA move data structure
Move the FISA related non-converged data structures
to DP component.

Change-Id: I86b08bd85fa97424046e1187cc5189d0f1354e93
CRs-Fixed: 3512044
2023-06-24 13:30:49 -07:00
Rakesh Pillai
87a3b842c6 qcacld-3.0: FISA ini movement
Move the non-converged FISA related INIs to the
DP component.

Change-Id: Ifaea7a6652d556168b3f232ecfe9b3579c31ed4f
CRs-Fixed: 3512043
2023-06-24 13:30:44 -07:00
Rakesh Pillai
7dde156e8d qcacld-3.0: FISA suspend/resume code movement
Move the suspend/resume related handlers for FISA
in the DP component.

Change-Id: Iba2bcf313f0a6f94a8bd8ff3c6cb29e8ef58f225
CRs-Fixed: 3512042
2023-06-24 13:30:39 -07:00
Rakesh Pillai
1fe1ac7688 qcacld-3.0: FISA init code movement
Move the FISA initialization code to DP
component.

Change-Id: Idaf0d195ea3f24f8d4294eba19d71d5cc9dbc528
CRs-Fixed: 3512041
2023-06-24 13:30:34 -07:00
Jianmin Zhu
a0cd2ab42d qcacld-3.0: 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: Ia0bccd02f4491e106413728d1a54d76265c80249
CRs-Fixed: 3533505
2023-06-24 00:28:54 -07:00
Jyoti Kumari
adf22d9ae4 qcacld-3.0: Fix policy_mgr_is_6G_chan_valid_for_ll_sap() api
Remove only 6 GHz using policy_mgr_is_6G_chan_valid_for_ll_sap()
if WLAN_FEATURE_LL_LT_SAP_6G_SUPPORT is not defined.

Change-Id: I828c61adf3c88c2a5100fff603a007d8a6c85a88
CRs-Fixed: 3532992
2023-06-22 22:01:36 -07:00
Vijay Raj
03827cfd24 qcacld-3.0: Remove dereferencing freed pointer in channel stat request
In api mlme_connected_chan_stats_request(), dereferencing
of freed pointer is observed by static analysis tool.

Remove dereferencing of the freed pointer in the api
mlme_connected_chan_stats_request().

Change-Id: Ic09b68395a9c3c67aab4a704a915b0d92a00e16d
CRs-Fixed: 3530020
2023-06-22 16:03:09 -07:00
Jianmin Zhu
44d20ce3a6 qcacld-3.0: Fix dual sta roaming failure
MLO sta + 2nd sta case, 2nd sta got pcl type: PM_NONE, total pcl
freq num 0, but dual sta follow pcl strictly, so PCL 0 is sent to F/W,
failed to roam to any freq.

To fix it, for PM_NONE and PCL freq num 0 case, don't follow pcl strictly,
send all valid freq as PCL to F/W.

Change-Id: Ie3529fd85dcfcfd3cc44ed6c25fc8fefe7a6c769
CRs-Fixed: 3534201
2023-06-22 16:03:04 -07:00
Ashish Kumar Dhanotiya
a57d5016d7 qcacld-3.0: Allow NAN+SAP SCC on unsafe channel
Currently host driver does not allow NAN+SAP SCC on unsafe channel.
With this change add support to allow NAN+SAP SCC on unsafe channel
if g_nan_sap_scc_on_lte_coex_chan ini is enabled.

Change-Id: Iccc37f28d8523cd335cce5fcfb0293f3f8cc8959
CRs-Fixed: 3531489
2023-06-22 16:02:58 -07:00
Karthik Kantamneni
e5110fabef qcacld-3.0: Avoid dp_ops access during FTM mode on failure
During FTM mode start modules there is possibility  from recovery path
bus bw timer stop is being called before dp_ops gets initialized.
This will lead to accessing uninitialized dp_ops access, to avoid this
check for conn mode before accessing the dp_ops and skip timer stop.

Change-Id: I3aef52f70bc0ea6294c87e7cd889ec63a4a6e3a4
CRs-Fixed: 3531437
2023-06-22 12:49:06 -07:00
Surya Prakash Sivaraj
8169b54f12 qcacld-3.0: Parse SSID IE properly during roam
The roam candidate frame event gives the beacon of
the roam candidate. The SSID IE check expects minimum
size of the SSID to be 2 bytes. Because of this, the
candidate with ssid size 2 or less is not cached to
the scan table.

Fix this by not considering the size of the SSID IE.

Change-Id: Ifbe36ac8cf0f9c75a3830a2826f5330fa300df5b
CRs-Fixed: 3512310
2023-06-22 12:49:01 -07:00
Srinivas Dasari
db403bc9de qcacld-3.0: Allow CSA to DFS channel only if PCL list has it
Currently, PCL returns all 5 GHz channel and SCC channel for SAP
when an ML-STA is present. But this may lead to a case
where the CSA request might be for a DFS channel which needs CAC.

This needs a dedicated mac and ML-STA can't move to MLMR in such
cases. When firmware attempts to move STA to MLMR from MLSR,
firmware asserts as the other mac is occupied by DFS SAP for
CAC operation.
So, allow CSA to a DFS channel only if the channel is present in
PCL list as it covers the supported channel list anyway. Fix
policy mgr table entries also by allowing SCC channels only.

Change-Id: I079fa6beea97fcd7c926ad4bd2bf928a0442d146
CRs-Fixed: 3484572
2023-06-22 09:10:10 -07:00
Surya Prakash Sivaraj
5f79c535ac qcacld-3.0: Enable RSO for SL open connection
Driver doesn't enable RSO currently for SL + Open auth cases.

Enable the RSO from connect complete path for open auth. Add changes
to enable the RSO only after all the ML links are up in case of
N-link MLO.

Change-Id: Ie3540493660e3605fe6739dc6d7706782b8a78ea
CRs-Fixed: 3509724
2023-06-22 06:06:28 -07:00
Abhinav Kumar
6063571728 qcacld-3.0: Process LINK_STATE_CONTROL_MODE in default mode
1.Host receives QCA_NL80211_VENDOR_SUBCMD_MLO_LINK_STATE
  vendor cmd.

2.Parse new attribute
  QCA_WLAN_VENDOR_ATTR_LINK_STATE_CONTROL_MODE.

3.Restore mlo link(s) state as per driver.

Change-Id: I79327618a007cd1f50ca1eafcb3633bcbac2e13f
CRs-Fixed: 3529507
2023-06-21 16:53:40 -07:00
Abhinav Kumar
3bccad6892 qcacld-3.0: 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: I7596c4815630563cbc419e0e9df28f1330775334
CRs-Fixed: 3529488
2023-06-21 16:53:29 -07:00
Alan Chen
baf6433a8f qcacld-3.0: Add additional bazel-related changes
Add additional bazel-related changes to resolve build errors.

Change-Id: I891556a81d217fded38915293aeea83a389d6782
CRs-Fixed: 3517415
2023-06-21 16:53:13 -07:00
Aravind Kishore Sukla
7537b591b0 qcacld-3.0: Configure CFG_PCIE_CONFIG INI
Configure PCIE Gen Speed and Lane width INI based on the
MCS, BW and TXRX throughput using traffic monitor.

Change-Id: Ie899033dfe54dea1533b47b895bda52deb12d0e9
CRs-Fixed: 3532028
2023-06-20 20:47:23 -07:00
Abhinav Kumar
59c0108fe6 qcacld-3.0: Process QCA_WLAN_VENDOR_ATTR_LINK_STATE_CONFIG
1.Host receives QCA_NL80211_VENDOR_SUBCMD_MLO_LINK_STATE
  vendor command.

2.Parse the new attribute
  QCA_WLAN_VENDOR_ATTR_LINK_STATE_CONFIG and get the
  link and corresponding link state.

3.Send it to FW via WMI command
  WMI_MLO_LINK_SET_ACTIVE_CMDID

Change-Id: I78a055f4a9fb60ccce106f9e4761fbf6d4d2f262
CRs-Fixed: 3529456
2023-06-20 20:47:19 -07:00