Commit Graph

7994 Commits

Author SHA1 Message Date
Rahul Gusain
b014e14517 qcacld-3.0: Logs optimization in intf del path
Modify the log level from error/info to debug, to reduce logging
time. henceforth, it reduces intf deletion time and enhance the overall
performance of device.

Change-Id: I3498438e07daa97dc5b4805271397205c7aa0cf2
CRs-Fixed: 3389896
2023-01-27 18:06:37 -08:00
abhinav kumar
f9137050ed qcacld-3.0: Avoid using fw-api defined enum at the CM layer
Currently, the definition of WMI_ROAM_GET_VENDOR_CONTROL_PARAM_ID
is present at the fw-api level. The host should not be using fw-api
definitions outside the WMI TLV code. To make sure it,

1. Add host-defined enum vendor_control_roam_param which defines
the param IDs that the host supports.

2. Add logic to convert host-defined enum vendor_control_roam_param
to fw-api defined enum WMI_ROAM_GET_VENDOR_CONTROL_PARAM_ID and
vice versa.

Change-Id: I035ece1bc0af8e583782460868193affb76db0f3
CRs-Fixed: 3363916
2023-01-27 10:39:03 -08:00
Aravind Kishore Sukla
3533a74627 qcacld-3.0: Initialize timer for SAP + SAP concurrency
In current scenario, hdd_medium_assess_init timer is initialized
only when there is single SAP. For SAP + SAP concurrency
hdd_medium_access_state() returns false as there is ongoing
timer running. So, assertion occurs as timer is
not initialized when AP stopped.

Remove hdd_medium_access_state() check as hdd_hostapd_sap_event_cb()
is called every time when SAP is started.

Change-Id: I12e8871fb606d180eabc63c8841017d7240ac829
CRs-Fixed: 3376337
2023-01-27 05:09:24 -08:00
Amruta Kulkarni
87f1a94226 qcacld-3.0: Handle 1x roaming case
In case of 1x MLO roaming, 4 way handshake is offloaded to supplicant
and link vdev is down in FW. Host has to bring up link vdev post
set key installation.

Add handling in host for following:
- During roam sync indication handle only assoc link.
- Save reassoc response and link information.
- After keys are installed bring up link vdev by
queueing connect req on link vdev.
- Enable roaming after all links are up.

Change-Id: I9c0722f88e950ba05ec3dd7f44883bedf568f97d
CRs-Fixed: 3287316
2023-01-24 09:39:31 -08:00
Jyoti Kumari
a2c2827bad qcacld-3.0: Remove passive/dfs acs channel for LL SAP
Remove passive/dfs acs channel which are configured through
userspace for LL SAP.

Change-Id: If5d3abe920b93af6cb9be02344618e484c3b0778
CRs-Fixed: 3370658
2023-01-24 06:54:35 -08:00
Asutosh Mohapatra
7b08e108e0 qcacld-3.0: Allocate skb size according to destination attribute sizes
In hdd_get_station_info skb buffer gets allocated an
arbitrary large size.

To address this issue, allocate skb buffer size based
upon the destination attribute sizes.

Change-Id: Ie36b0bb67562e302a3abe6d60d0e323ce172236e
CRs-Fixed: 3363955
2023-01-22 07:12:44 -08:00
Sheenam Monga
188ac8c5b7 qcacld-3.0: Don't reject SR command if threshold not provided
As per current implementation, SR(Spatial Reuse) commands are
rejected if STA is not connected or connected to AP that doesn't
support SR which causes issue because SR Enable/Disable command
shouldn't reject if STA is not connected instead of rejection
same configuration should be applied when SR AP connects to STA.

Fix is to not to reject SR command if PD threshold is not provided
along with enable command, so that enable command can be accepted and
applied when AP that supports SR connects to station.

Change-Id: Ie4a973053b79d0d5931bcc2520da42f9aab93089
CRs-Fixed: 3350451
2023-01-21 02:55:33 -08:00
Paul Zhang
6c0f977367 qcacld-3.0: Don't acquire wakelock for initial connection
In function hdd_cm_connect_success_pre_user_update, the
variable is_auth_required is true by default. During roaming,
it should acquire wakelock if key installation is pending.
But during initial connection, it does not need to acquire
wakelock for initial connection in this function.

Change-Id: I967e6d97dd9c7a40d111b0040ee53876b7be6192
CRs-Fixed: 3383907
2023-01-20 22:11:14 -08:00
Vijay Patil
155532b250 qcacld-3.0: Add a log to print the supported features bitmap
Driver sets the bit mask for supported feature to turn on or
set the feature flag for the requested feature. 

Add a log to print the supported features bitmap in the driver.

Change-Id: I1a47697f605a62807a9612b2c5bd04491a67cedc
CRs-Fixed: 3383080
2023-01-20 19:08:09 -08:00
Prakash Manjunathappa
a633ef49c1 qcacld-3.0: Querry HTT_DBG_EXT_STATS_PDEV_RX stats to get rxdma errors
Get sum of complete rxdma stats handled by host and FW.

Change-Id: I6e1af21c37fe2cd71b7c613bcdfc0a02136cf988
CRs-Fixed: 3382454
2023-01-20 05:18:11 -08:00
Srinivas Dasari
b8db5ef04a qcacld-3.0: Handle SAP restart case in fixed chan SAP
Currently, unsafe channels are avoided when SAP restart happens.
If WMI_COEX_FIX_CHANNEL_CAPABILITIES is advertised by firmware
and if the SAP is started in a fixed channel, don't restart even
if the current operating channel is unsafe.

Change-Id: I5f7d632bcc00a1b5351dad64aca0ce16f1057537
CRs-Fixed: 3381394
2023-01-19 23:32:58 -08:00
Mohammed Ahmed
776c4cc10e qcacld-3.0: add SSR host log collection API usage
Current code does not use the SSR host log collection API.
Fix this by adding SSR host log collection API usage.

Change-Id: I364bd6281e886e8c50dfd6f45f78fb98e822f962
CRs-Fixed: 3339953
2023-01-19 20:43:32 -08:00
Liangwei Dong
b9383fb56a qcacld-3.0: revert "qcacld-3.0: Cancel scan before set mac address"
This reverts commit I440bcfbc3b9699ab42d4304535cc2d86d702d21d.
The "Roc delay set mac issue" is fixed by change
If53d5ee446fc5f4df2fcf117a436133116270b9e

Change-Id: Ica97a9d829e74a8b43030086d478bbfb125a371e
CRs-Fixed: 3381663
2023-01-19 12:27:13 -08:00
Rahul Gusain
4d22da60ff qcacld-3.0: Add print log for new roam scan type
Firmware sends the roam scan info tlv to driver during roaming.
Currently, in this tlv, firmware fills scan type as (0-3) and
driver log this as "PARTIAL", "FULL", "NO SCAN" and "Higher Band"
But with new requirement, idle roaming shall only roam to higher band
(2.4 GHz < 5 GHz < 6 GHz) than current band.
1. If current band is 2.4 GHz, it cannot roam to 2.4 GHz.
It can roam to 5 GHz and 6 GHz.
2. If current band is 5 GHz, it cannot roam to 2.4 GHz and 5 GHz.
It can roam to 6 GHz.
So, to add this requirement, firmware introduces new scan type 4 for
which driver need to log.

Change-Id: I80d1c47a434da5009aed4cab08c6eae91bda5b0e
CRs-Fixed: 3379468
2023-01-19 12:27:01 -08:00
Paul Zhang
ae8bda23bc qcacld-3.0: Add log category setting for T2LM
Currently, T2LM log is not printed by default. Setting
category_verbose_mask to QDF_TRACE_LEVEL_ALL.

Change-Id: If3f347b922d916b2594182067c3e4021e66fa3e0
CRs-Fixed: 3381636
2023-01-19 02:53:53 -08:00
Asutosh Mohapatra
dee1c76bd6 qcacld-3.0: Add new INI to separate scan policy for rest of world users
Currently host drops an AP from scan list if host country is set to
US and AP country is non-US. This implementation violates our
standard regulatory scan policy.

To address this issue, introduce a new INI to differentiate
between our standard regulatory policy with others.

Change-Id: Ie6bd2d1925048aef427136b34d00d361955f40b2
CRs-Fixed: 3377242
2023-01-18 06:00:09 -08:00
abhinav kumar
86c6a13b8e qcacld-3.0: Sort roam channel list in descending order
Host receives channel list via an event
WMI_ROAM_SCAN_CHANNEL_LIST_EVENTID as
getroamscanchannels command response on disconnection.

As per the new requirements:
1. Restrict Maximum Channel Count to MAX_RCL_CHANNEL_COUNT(30),
   in supplicant VendorEvent, if the driver/firmware has more
   than MAX_RCL_CHANNEL_COUNT channels.
2. Sort the channel list in descending order before sending
   the list to the supplicant.

Change-Id: I27eb8c625d6d38634b3b18eacbf593a5be9671bc
CRs-Fixed: 3376549
2023-01-17 16:41:07 -08:00
Ashish Kumar Dhanotiya
21ec244877 qcacld-3.0: Trigger SSR on wakeup from pagefault
According to new requirement, use INIs
max_pagefault_wakeups_for_ssr,
interval_for_pagefault_wakeup_counts and
ssr_frequency_on_pagefault
to trigger SSR if host wakes up because of pagefault.
For ex: If max_pagefault_wakeups_for_ssr = 30,
interval_for_pagefault_wakeup_counts = 180000 (3 mins) and
ssr_frequency_on_pagefault = 3600000 (1hr), in this case host
will trigger the SSR if it receives 30 wakeups because of
pagefaults in 3 mins, host will trigger SSR only once in 1 hr.
Once the SSR is triggered, host will not trigger next SSR for
next 1 hr even if it receives 30 wakeups from fw because of
pagefaults. This 1 hr time is getting monitored from last SSR.

Change-Id: Ia06f87aff6d1552e37c582e7464f1b2451543502
CRs-Fixed: 3378502
2023-01-17 07:33:48 -08:00
David Oladunjoye
6baed2b783 qcacld-3.0: Return error when unpermitted character is parsed in ini
Currently, when an unpermitted character is added to ini, driver
flags as an unknown config item and continues parsing. This could
be an issue. Change is to return error when invalid character is
parsed in ini.

Change-Id: I275c5093866906d5424dcd80d1cdecc98744b7ec
CRs-Fixed: 3366214
2023-01-17 05:29:18 -08:00
Balaji Pothunoori
92af7ea7b3 qcacld-3.0: Set 160 MHz chan width for 6 GHz band channel
Currently 160 MHz chan width set for 6 GHz band channel is not
allowing.
This change is to set 160 MHz chan width if 6 GHz band channel support.

Example cmd: hostapd_cli DRIVER CHANNEL_SWITCH <Channel> <BW>

Change-Id: I5955ba524d3e77fb49d7acf4098fd0c564e138b0
CRs-Fixed: 3356605
2023-01-17 05:29:13 -08:00
Asutosh Mohapatra
89c2d25ba1 qcacld-3.0: Use mac_addr pointer as constant
Use mac_addr pointer as constant in wlan_hdd_ml_sap_get_peer,
hdd_set_mld_address and use the same for consecutive APIs.

Change-Id: Ie1b959b14d42b4040b7f960ee3a13b355210e6fd
CRs-Fixed: 3331292
2023-01-17 05:29:07 -08:00
Liangwei Dong
4a18155583 qcacld-3.0: Add phy regulatory frequency range check
If phy regulatory capability doesn't support high or low
frequency indicated by MACRO such as HIGH_5GHZ_FREQ,
LOW_5GHZ_FREQ, we should not hard code to the MACRO.
The change adds new mlme API wlan_mlme_get_phy_max_freq_range
to get phy regulatory ranges from target info.

Change-Id: I95f48296ca093c20b1391d7657204eecfb418908
CRs-Fixed: 3376402
2023-01-15 10:13:33 -08:00
Vinod Kumar Myadam
096eb8ce07 qcacld-3.0: Add support to disable concurrency
Add feature flag to disable concurrency

1. STA+P2P+P2P
2. STA+SAP+P2P
3. SAP+P2P
4. P2P+P2P
5. SAP+NAN
6. STA+SAP
7. STA+NAN

Change-Id: Ibbdfa866e5cdefc036ea7f401997a8ab71e0629b
CRs-Fixed: 3345359
2023-01-13 23:20:16 -08:00
Bing Sun
1c4eb765df qcacld-3.0: Add API to notify channel switch to EasyMesh
When the channel of AP is changed, notify the new channel to
EasyMesh.

Change-Id: If38306110d5b69cb4d5211b49ea484ce4f6626bb
CRs-Fixed: 3371337
2023-01-13 20:23:08 -08:00
Amit Mehta
3d43f1c6fe qcacld-3.0: Move TSF related variables to single structure
Move TSF related variables to single structure

Change-Id: Id358774d96c07162537407fbc04142b52b48e0e8
CRs-Fixed: 3366522
2023-01-13 10:38:11 -08:00
Bing Sun
5556d8cba7 qcacld-3.0: Get vdev phymode from vdev desired channel
sme_get_phy_mode does not return correct phymode for vdev.
For vdev, get phymode from vdev desired channel.

Change-Id: I316cd6cfb18427b25c10bbac68bda90857bf5922
CRs-Fixed: 3368679
2023-01-11 17:23:42 -08:00
Bingkui Liu
1b746c479c qcacld-3.0: Remove wowlAddPtrn input limit
wowl_add_ptrn sysfs interface can't accept the full length of
pattern command. This change fixes the problem through dynamic
memory allocation.

Change-Id: Iddeee56cf4ed675bc7578dd9ce976028fae77b3c
CRs-Fixed: 3358847
2023-01-11 17:23:37 -08:00
Ananya Gupta
ec471e92f2 qcacld-3.0: Create sysfs file and ini for direct link unit test
Create sysfs file for direct link unit test command to
generate traffic from LPASS.
Add ini to enable direct link unit testing.

Change-Id: I5b143bc6751eedb1a65cd836ea738744b72cc2cc
CRs-Fixed: 3365576
2023-01-11 03:46:53 -08:00
Ananya Gupta
2da1a92077 qcacld-3.0: Create sysfs entry to generate direct link commands
Create sysfs entry to send unit test commands to generate direct
link traffic.

Change-Id: Ib07e3a9785e3abbdff0d7cee89d7e56824c47f78
CRs-Fixed: 3362761
2023-01-11 03:46:48 -08:00
Vinod Kumar Pirla
1d2d3223c6 qcacld-3.0: Enhance hdd_get_sta_info_by_mac() API for MLO
The sta_info_list of SAP adapter has two entries for a single
ML STA client, one with link address and other with MLD address.

Hostapd will request peer stats with MLD address for ML client,
and driver will lookup in sta_info_list with MLD address and
finds one, but that entry will not have link address and sends
MLD address to FW to get peer stats which results in timeout
as FW doesn't respond to peer stats request with MLD address.

Remove the second entry in sta_info_list for ML client and
enhance hdd_get_sta_info_by_mac() API to also lookup mld_addr
of each single sta_info in the list.

Change-Id: I8a0f38cec0290e5f82a71380585ebac78812bb53
CRs-Fixed: 3363384
2023-01-09 23:34:52 -08:00
Pragaspathi Thilagaraj
d987cd9e12 qcacld-3.0: Send PMKID in PMKSA delete command
When delete pmksa is received, firmware looks up the entries
against the vdev mac address and the AP bssid. But during
disconnect, when update mac address happens, the pmksa entry in
firmware is not deleted since the self mac address lookup fails.
This causes roaming failures after next connection.

Send PMKID in the PMKSA delete command to delete the individual
pmksa entries based on PMKID alone.

Change-Id: Icf9ff2dc8aa85ffa212167ce1691fe18fe3a23c5
CRs-Fixed: 3363253
2023-01-08 03:51:33 -08:00
Yeshwanth Sriram Guntuka
9972a80234 qcacld-3.0: Set to_fw bit in DP vdev for Direct link use case
Set to_fw bit in DP vdev for direct link use case
and also set it when the use case is unspecified as
well.

Change-Id: I7306e22e81303720830cfce4ce19b15d2080d93c
CRs-Fixed: 3369891
2023-01-07 17:58:59 -08:00
Kai Liu
6d6aaec9b7 qcacld-3.0: clear DEVICE_IFACE_OPENED before starting idle timer
Idle shutdown timer will be triggered once all interfaces are closed.
Clear interface open flag before idle timer triggered.

Change-Id: Ib4a238ccb11ca6d418788d62df44ba800928fdf1
CRs-Fixed: 3374187
2023-01-07 04:55:31 -08:00
Aditya Kodukula
1f276e0631 qcacld-3.0: Fix set_ratemask policy to avoid stack overflow
Currently in the function hdd_set_ratemask_params, which handles
requests for the vendor command QCA_NL80211_VENDOR_SUBCMD_RATEMASK_CONFIG,
parses the attributes according to the wlan_hdd_set_ratemask_param_policy,
and copies them into the struct config_ratemask_params.

But in the nla_policy, the length of the parameter
QCA_WLAN_VENDOR_ATTR_RATEMASK_PARAMS_BITMAP is set to 128 bytes instead
of 128 bits (16 bytes), causing stack buffer overflow when copied onto
16 bytes stack buffer. To avoid this issue change the parameter length
from 128 bytes to 16 bytes.

Change-Id: I053d3810e3b4942344d7f1a12e365e9cfc71a492
CRs-Fixed: 3342629
2023-01-06 09:56:31 -08:00
Paul Zhang
0a8f4239ab qcacld-3.0: Add check about num radio
When process hdd_process_ll_stats, the results->num_radio
may be 0 and it causes issue like
"Cannot malloc 0 bytes @ hdd_process_ll_stats:1475"

To resolve this issue, add checking before malloc memory.

Change-Id: I48d4a4045ebdad7465a97417e6514849cf12ef15
CRs-Fixed: 3374212
2023-01-06 09:56:26 -08:00
Vinod Kumar Pirla
d3ede92170 qcacld-3.0: Remove link DP intf on mode change to ML SAP
If ML SAP interface is created on ML STA interface, the MAC
address of the link adapter is changed to MLD address as SL SAP
uses same address for MLD and link. This leaves the DP interface
created with link address during open adapter is not cleared
and also leading to two adapter having same link address which
results in calling DP interface delete with same MAC address twice
and eventually leading to device crash.

Release the DP interface on mode change to ML SAP and create new
DP interface on mode change from SAP to STA. If close adapter is
called while in SAP mode then don't delete DP interface for link
adapter.

Change-Id: I001d4733ba208ccbbd2d65b53497d5120f27a179
CRs-Fixed: 3351414
2023-01-06 09:56:20 -08:00
Vinod Kumar Pirla
e1c408080d qcacld-3.0: Fill RSSI and SNR value from FW in adapter
The stats from FW are not updated into the adapter
which can cause driver sending invalid RSSI and SNR values
to userspace when the target/host doesn't support ML.

Updated to the stats received from FW into the adapter.

Change-Id: I4040d61f91396b094ea4237a22cc8f103c6433af
CRs-Fixed: 3372110
2023-01-04 12:40:15 -08:00
Divyajyothi Goparaju
30fcd43512 qcacld-3.0: Fix compilation errors in extscan vendor cmd policy
Issue1:Compilation fails when CONFIG_FEATURE_WLAN_EXTSCAN
is enabled as the latest kernels(>=5.2) expect
two params(policy and maxattr) as vendor_command_policy
whereas vendor_command_policy is empty for old kernel.
When the macro FEATURE_EXTSCAN_VENDOR_COMMANDS is
replaced, it results in a compilation error as
the comma is missing between vendor_command_policy
and the previous param for latest kernel.

Fix1:Add a comma between vendor_command_policy and
the previous param(.doit) to make it compilable
for newer kernels as well.

Issue2:As part of recent code changes
all occurrences of  blacklist/whitelist replaces to
denylist/allowlist in the driver.
which replaced interface structure member in the driver,
without changing actual definition of interface structure,
causes compilation error.

Fix2:Rename to actual structure member names.

Change-Id: I0024de7bf237c13297ed9a088a73a9f5c6a78d17
CRs-Fixed: 3370114
2023-01-03 11:48:27 -08:00
Pragaspathi Thilagaraj
25089e6a5e qcacld-3.0: Authorize peer after install key command for OSEN
For OSEN connection, there is no RSN IE advertised by the
HS2.0 AP. So the driver marks the auth type as open and
sends peer authorization before EAP, EAPOL and vdev
key installation is completed. This causes the EAPOL 4/4 frame
to be dropped by the firmware and AP sends de-authentication to
the Station.

For OSEN connection, authorize the peer after install key
happens based on the connect_rsp->is_osen_connection flag.

Change-Id: Ie490cc20de4f24f0343dcec0d12a9a4be5a1ab76
CRs-Fixed: 3349792
2023-01-03 09:40:07 -08:00
Jianmin Zhu
fff3e6bb11 qcacld-3.0: Don't stop SAP while CSA in progress
1. If CSA failed for last CSA in progress, can't stop SAP, SAP stop and
SAP CSA concurrency may lead to assert.
2. When access global var like pm_conc_connection_list, always need add
lock protection.
3. During CSA in progress,  NAN CSA don't block current thread, just
return.
4. When SAP CSA completed, need check whether need CSA again for NAN
started during CSA.

Change-Id: I076ecad7395a265bbe83aaf97617a9a8b6c8b41a
CRs-Fixed: 3357265
2023-01-02 20:27:50 -08:00
Jianmin Zhu
a03a3dc504 qcacld-3.0: Enable driver puncture cap
Fix issue that driver doesn't report puncture cap to kernel and hostapd for
undefined MACRO.

Enable a new build flag CFG80211_RU_PUNCTURE_SUPPORT when kernel code
contains nl80211_put_ru_punct_supp_bw.

Change-Id: Ib375c248065b4899f2d336155b1f71a5359e6fb7
CRs-Fixed: 3356751
2023-01-01 20:16:21 -08:00
Divyajyothi Goparaju
e62e4f2ccb qcacld-3.0: Replace target params with host params
Currently host uses target params directly
which leads to layering violation

Replace target wmi pdev/vdev params with host wmi
pdev/vdev params in host to fix existing broken layering
violation.

Change-Id: Ifdfbc3151a1d81466c768e4d016a8f70971d651e
CRs-Fixed: 3333879
2022-12-30 00:07:13 -08:00
Divyajyothi Goparaju
c35a56833f qcacld-3.0: Optimize mgmt_tx_rate vdev set params
Currently host sends many ap keep alive timeout,
mgmt_tx_rate  separately to firmware.

Combine these multiple vdev set params,
send to WMI to reduce number of transactions.
Also replace target wmi pdev/vdev params with host wmi
pdev/vdev params to fix existing broken layering
violation.

Change-Id: I362770b367588220fc35508e4411635e35b3a548
CRs-Fixed: 3333872
2022-12-30 00:07:06 -08:00
Divyajyothi Goparaju
9adf7b6f77 qcacld-3.0: Optimize he_range_ext vdev set params
Currently host sends two he_range_ext vdev set
params separately to firmware.

Combine two he_range_ext vdev set params,
send to WMI to reduce number of transactions.
Also replace target wmi pdev/vdev params with host wmi
pdev/vdev params to fix existing broken layering
violation.

Change-Id: I6b83b37eb73aa3c1946c8463a335d404aa373c2f
CRs-Fixed: 3333780
2022-12-30 00:06:51 -08:00
Divyajyothi Goparaju
eac0115f2e qcacld-3.0: Optimize pdev txpower limit set param
Currently host sends two tx power limit pdev set params
separately to firmware.

Combine the two tx power limit pdevset params and also
bmiss cnt vdev set params,
send to WMI to reduce number of transactions.
Also replace target wmi pdev/vdev params with host wmi
pdev/vdev params.

Change-Id: I3a232b57677ad604a25d71e9ff3069814a2c338c
CRs-Fixed: 3333774
2022-12-30 00:06:45 -08:00
Divyajyothi Goparaju
c9808c04b6 qcacld-3.0: Combine process_rate_update set param
Currently wma_process_rate_update_indicate sends
two vdev set params separately to firmware.

Combine two vdev set params of
wma_process_rate_update_indicate,
send to WMI to reduce number of transactions.
Also replace target wmi pdev/vdev params with host wmi
pdev/vdev params to fix existing broken layering
violation.

Change-Id: Icc50569bcc851c5ee269558b80a560b03e1fdcee
CRs-Fixed: 3333758
2022-12-30 00:06:21 -08:00
Divyajyothi Goparaju
5f85944f38 qcacld-3.0: Optimize ndpinactimeout vdev set param
Currently host sends two ndp inactivity timeout
params to firmware one after the other.

Combine these two ndp inactivity timeout vdev
set params and send to WMI to reduce number of
transactions.
Also replace target wmi pdev/vdev params with host wmi
pdev/vdev params to fix existing broken layering
violation.

Change-Id: Icaeca85f2aa074f04d268b819fe86f4b7879c25b
CRs-Fixed: 3333749
2022-12-30 00:06:13 -08:00
Divyajyothi Goparaju
adfb3a43d6 qcacld-3.0: Optimize pdev/vdev set param command
Currently host sends many pdev/vdev set param
commands separately to firmware from hdd.

Combine multiple pdev/vdev set params and
send to WMI to reduce number of transactions.
Also replace target wmi pdev/vdev params with host wmi
pdev/vdev params to fix existing broken layering
violation.

Change-Id: Ib76f5bd5f582a2c67486f6773ff6fd486b3d84cf
CRs-Fixed: 3333732
2022-12-30 00:06:07 -08:00
Divyajyothi Goparaju
fd4205850c qcacld-3.0: combine tx_rx chain mask pdev set params
Currently host sends tx chain mask and rx chain mask
pdev set params separately to firmware.

Combine these tx_rx chain mask pdev set params,send to WMI
to reduce number of transactions.
Also replace target wmi pdev/vdev params with host wmi
pdev/vdev params to fix existing broken layering
violation.

Change-Id: I6bd27b4bc99cbe44e6bdca2a8d55050a49719673
CRs-Fixed: 3333635
2022-12-30 00:06:01 -08:00
Jianmin Zhu
476236fec2 qcacld-3.0: Fix RSO race condition issue
While scheduler thread init and enable RSO after MLO connected,
wpa_supplicant deinit RSO for MLO disconnect.
At last, RSO is enabled on host, RSO is deinited on F/W side,
no event for RSO stop cmd, vdev0 disconnect not finished for
cm_disconnect_continue_after_rso_stop isn't called.

To fix it, hold cm_rso_lock in cm_roam_state_change to make sure RSO
operation atomic. RSO operation of one thread not preemptied by RSO
operation of another thread. RSO init and enable process of connect thread
isn't preemptied by RSO deinit of another thread, no host F/W RSO out of
sync issue will happen.

Remove ucfg_user_space_enable_disable_rso from hdd_init_station_mode since
cm_rso_lock is held before created.

Change-Id: I3010895d26a622c2a14960847089a63736598b7c
CRs-Fixed: 3365417
2022-12-29 18:33:41 -08:00