Commit Graph

3876 Commitit

Tekijä SHA1 Viesti Päivämäärä
Edayilliam Jayadev
0571d2f7bf qcacmn: Handle ingress reo list overflow
Handle overflow of management Rx reorder ingress list.

CRs-Fixed: 3402355
Change-Id: I2e7ab5b672e6cb2db2cb1e47d3854ad55d6b540a
2023-02-14 11:03:23 -08:00
Pragaspathi Thilagaraj
52c0ba9a7a qcacmn: Choose the most secure AKM for association
Driver doesn't sort the AKM properly based on security
to use for the association. This causes lower secure AKM to be
used when AP advertises multiple AKMs.

Choose more secure AKM for association. Below is the new
changed order of Secure AKMs:
1. FT-FILS SHA384
2. FT-FILS SHA256
3. FILS SHA384
3. FILS SHA256
4. WPA3 FT-SUITE B Sha 384
5. WPA3 802.1x Suite B - 192
6. WPA3 802.1x Suite B
5. WPA3 FT-SAE
6. WPA3 SAE EXT Key
7. WPA3 SAE
8. WPA3 OWE
9. WPA3 DPP
10. WPA2 FT-802.1x
11. WPA2 802.1x SHA256
12. WPA2 802.1x
13. WPA2 FT-PSK SHA384
14. WPA2 PSK SHA384
15. WPA2 PSK SHA256
16. WPA2 FT-PSK
17. WPA2 PSK

Change-Id: I18910b56b15624725ad4fc0cdb0b37ff241e82ff
CRs-Fixed: 3400535
2023-02-14 04:44:42 -08:00
Gururaj Pandurangi
3739c21995 qcacmn: Add vdev cap to exclude sta profile from MLO IE
Define a new per vdev capability flag to exclude the sta
profile from MLO IE in unicast probe request frames.

Change-Id: I4486e4efbbb85dfa1e7b9d47326c60c79c974829
CRs-Fixed: 3392086
2023-02-14 03:26:55 -08:00
Divya R
3d76f47ca8 qcacmn: Update the maximum bandwidth of CHAN_5835_5895_1 to 40
In the current implementation, the frequency range and maximum
bandwidth of the regulatory rule CHAN_5835_5895_1
are 60 MHz and 80 MHz respectively. Which means that maximum
bandwidth is greater than the frequency range for this rule. But the
kernel does not allow us to have such a rule.

If we change the maximum bandwidth to 40 MHz for this rule, the kernel
warning disappears. However, it introduces a new problem.
If the beginning frequency of rule CHAN_5835_5895_1 matches with the
end frequency of a previous rule, say CHAN_5735_5835_2,  then the
function 'reg_do_auto_bw_correction' cannot stitch them (the rules)
properly as it simply adds the max bandwidths the two rules.
In this case, if the maximum bandwidth was reduced from 80 MHz to
40 MHz and previous rule's maximum bandwidth was 80 MHz and
the new stitched rule would have 120 MHz as the maximum bandwidth.
We should consider the frequency range of both the rules in order to
achieve the max bandwidth possible. Therefore, use the version of the
function 'reg_do_auto_bw_correction' that already does it.

Change-Id: Ib3cb1a31b6d376b9b02f3d4e6b56cd7b5e6fed3a
CRs-Fixed: 3381553
2023-02-14 01:56:05 -08:00
David Oladunjoye
79e577fcfe qcacmn: Fix TWT documentation
Kernel doc script identified documentation issues
in twt, so fix these issues.

Change-Id: I9168e01e5a1941c947726d5f7ac67b6d17af4fb6
CRs-Fixed: 3400817
2023-02-13 14:01:49 -08:00
sandhu
89c50d8df3 qcacmn: Add API to access scan entry partner info
Add API to access scan entry partner info by bssid
and freq.

Change-Id: I8340c6c654cf03f63aee9ed622e3db38056d714f
CRs-Fixed: 3376315
2023-02-13 12:45:24 -08:00
Jeff Johnson
5ef54a9f8a qcacmn: Fix umac/cmn_services documentation
The kernel-doc script identified many documentation issues in the
umac/cmn_services folder. A series of patches have already fixed most
of the issues on a sub-folder basis, so fix the remaining ones.

Change-Id: Ibdfe9f0c5e8d6ddf9696d66d2a4a31978ff89004
CRs-Fixed: 3403261
2023-02-13 05:28:22 -08:00
Edayilliam Jayadev
f90aff5d36 qcacmn: Avoid queuing of stale frames
Avoid queuing of stale frames into the management
Rx reorder egress list. Instead drop the stale frames
at the entry itself.

CRs-Fixed: 3402325
Change-Id: I80de6311e345feb2518ce7f042c53ffa95d22dfa
2023-02-13 01:08:02 -08:00
Varsha Mishra
d6afad86bc qcacmn: Add global context
Global context will contain fst context, fst ref count
and global desc count.

Change-Id: I272fa2c3b8945822268d29b6c329df3f659753d4
CRs-Fixed: 3392039
2023-02-12 03:21:18 -08:00
Jianmin Zhu
fad8228802 qcacmn: Fix wrong congestion score issue
When calculate mlo score, partner link congestion score is used wrongly.
Total congestion score after considering both assoc and partner link should
be used.

Change-Id: I6f94fc1bcbfd1adf547dbf519e03524409509260
CRs-Fixed: 3399624
2023-02-11 01:12:07 -08:00
Vinod Kumar Myadam
5a67617bdc qcacmn: Update reg_fill_channel_list to use pwrmode API
The current channel list alone is not enough to represent the
capability of the chip or device. Given a channel, in many
cases it may be required to know all the power modes that are
supported by this channel.

Update caller APIs to use super channel list. Remove
reg_fill_channel_list, reg_fill_pre320mhz_channel and
reg_fill_channel_list_for_320 to use the super channel list APIs.

Change-Id: I917eb3414b6339678f84eb7cf6e3547ed52b6335
CRs-Fixed: 3360452
2023-02-10 18:10:57 -08:00
Vinod Kumar Myadam
999d064b46 qcacmn: Update callers of wlan_reg_get_5g_bonded_channel_and_state_for_freq
Replace callers of wlan_reg_get_5g_bonded_channel_and_state_for_freq to
use super channel list API
wlan_reg_get_5g_bonded_channel_and_state_for_pwrmode in API
wlan_dcs_afc_reduce_bw.

Change-Id: Ie7b5d88f57064d5345699c64f3b7e5ed694a0425
CRs-Fixed: 3397213
2023-02-08 22:56:14 -08:00
Liangwei Dong
91f844bfce qcacmn: Handle link active_inactive command
Add code to handle new set link state command -
MLO_LINK_FORCE_MODE_ACTIVE_INACTIVE.

Change-Id: I4fad93e9e09309f7e8ac07f2e3c43a0aa6472a3a
CRs-Fixed: 3352970
2023-02-08 06:56:46 -08:00
Edayilliam Jayadev
060f2a7ebc qcacmn: Separate reorder list into ingress and egress lists
Reorder list holds incoming frames and frames to be delivered to
upper layers. Split the reorder list into two, ingress list and
egress list. Ingress list stores the incoming management frames
and egress list stores the management frames which are ready to
be delivered to upper layers.

CRs-Fixed: 3386123
Change-Id: I479f5d15bfab40649053b0ee2a0d8c13d80f8bba
2023-02-08 06:56:36 -08:00
Vinod Kumar Pirla
cad19e4fc7 qcacmn: Introduce API to modify MAC address in action frame
Introduce two APIs which will change the RA, DA and BSSID fields
of 802.11 MAC header.

For any non-public action frame, supplicant will send RA, DA and BSSID
with MLD address which needs to be translated to link addresses to
transmit over the air. wlan_mlo_update_action_frame_from_user() API
will do the address translation from MLD to link.

If any non-public action frame is received over the air that needs
to be sent to userspace, the kernel expects MLD address in RA, DA
and BSSID fields. wlan_mlo_update_action_frame_to_user() API will
do the address translation from link to MLD.

Change-Id: Iab93dd1301003b78edf6d619cfbf552afa53ae7a
CRs-Fixed: 3394706
2023-02-07 23:41:52 -08:00
Surya Prakash Sivaraj
c595a4abdf qcacmn: Cleanup link vdev SM on roam HO failure
In legacy to MLO roaming case, the link vdev will be
moved from INIT->UP via EV_ROAM event. Similarly, if
the Hand-off fails in host due to host-related handling,
treat the failure as HO-FAILURE and move the link VDEV
SM from UP->INIT directly.

Change-Id: Ia6bfeb958f0302a934d24c9b40fadd4a8f557236
CRs-Fixed: 3389148
2023-02-07 20:02:03 -08:00
Pragaspathi Thilagaraj
daf6b01d39 qcacmn: Remove unused TWT API
Remove the below unused TWT API's:
-wlan_twt_tgt_caps_get_requestor
-wlan_twt_tgt_caps_get_bcast_req_support
-wlan_twt_tgt_caps_get_bcast_res_support
-wlan_twt_tgt_caps_get_requestor
-wlan_twt_tgt_caps_get_bcast_res_support
-ucfg_twt_get_requestor
-ucfg_twt_get_twt_bcast_req_support
-ucfg_twt_get_twt_bcast_res_support

Change-Id: I98b2f829a47ed727712828376ddb0c6eb1f02706
CRs-Fixed: 3397194
2023-02-07 18:04:39 -08:00
Jianmin Zhu
a8fbfe3aae qcacmn: Enable dynamic puncture for DFS radar
1. Enable sub chan DFS type if QCA_DFS_BW_PUNCTURE defined, or all bonded
operation freq will be affected and disabled for nol, puncture can't work,
always need to switch freq.

2. Find nearest puncture pattern for a bitmap.
For example, SAP started with channel width 320 MHz, if only 20 MHz freq
affected by radar, 320 + 20 puncture pattern is invalid, but puncture
pattern 320 + 40 can be used.

3. Fix build issue when QCA_DFS_BW_PUNCTURE defined as following.
error: incompatible pointer types passing 'qdf_freq_t[16]' (aka
'unsigned int[16]') to parameter of type 'uint16_t *' (aka 'unsigned
short *')

Change-Id: I374ed76c6a13ef5fac1a78073f1b8974b0a9bb30
CRs-Fixed: 3386020
2023-02-07 11:32:35 -08:00
Jeff Johnson
b0fa96084a qcacmn: Fix umac/cmn_services/crypto documentation
The kernel-doc script identified some documentation issues in the
umac/cmn_services/crypto folder, so fix them. In addition there are
multiple instances of both the interface and the implementation being
documented, so remove the duplicates, keeping just the interface
documentation.

Change-Id: Ied5bfcdff185d0b144f8c41affb5adcb3b8a5b88
CRs-Fixed: 3394398
2023-02-07 09:41:28 -08:00
Prakash Manjunathappa
3cde321196 qcacmn: Add PEACH device support
Add support for peach device. Add peach conditional statements.

Change-Id: Ia107e60fd00b4938984414fd92d6699d11fd3797
CRs-Fixed: 3394198
2023-02-07 00:54:44 -08:00
Anbarasan Ganesan
8921c69fe7 qcacmn: Initialize whole char array elements
Initialize whole char array elements instead of initializing
just the first element in an array.

Fixed below compiler optimization error:
error: suggest braces around initialization of subobject.
[-Werror,-Wmissing-braces]

Change-Id: I103d95274e654cb7d232775cf7986a772741a152
CRs-Fixed: 3357183
2023-02-06 08:58:51 -08:00
Anbarasan Ganesan
a15ee7308e qcacmn: Export symbol when compile time macro is enabled
As function is defined under compile time macro, also
export the symbol under the same macro.

Change-Id: Id2eba221dcb9c6d8cd7503e9d473199a50508309
CRs-Fixed: 3357183
2023-02-06 08:57:09 -08:00
Liangwei Dong
1ffc60a883 qcacmn: Add API to stop reconfig timer
Add API to stop link reconfig timer on vdev or ml dev.
Add API to query the reconfig timer state.

Change-Id: I729d403122e4e84cdf0dced21c49176397e10e5d
CRs-Fixed: 3352937
2023-02-05 22:51:38 -08:00
Himanshu Batra
97524335e8 qcacmn: Add mlo peer check in disconnect handling
In case of handling disconnect while sta is connected, if previous
connection is non-ml and a new connect is received with ml
connection on partner link then disconnect request on connected link
is getting ignored.
Fix to add mlo peer check in disconnect handling.

Change-Id: I456b45a080375b93ce209300bf7719e9e53733dc
CRs-Fixed: 3394233
2023-02-05 18:57:30 -08:00
Jeff Johnson
f57c0cf483 qcacmn: Fix umac/dfs documentation
The kernel-doc script identified some documentation errors in the
umac/dfs folder, so fix them.

Change-Id: Ia86989a39fe502480e2d2358a6f23759f78707e0
CRs-Fixed: 3382430
2023-02-05 12:40:54 -08:00
Vijay Krishnan
a53c0e8a6d qcacmn: Perform null check before memory allocation
When calculating 6 GHz Opclasses and channels through API
reg_dmn_get_6g_opclasses_and_channels, memory allocation
is performed based on number of opclasses.

In some cases if the number of opclasses is zero, we
try to memory allocate for 0 bytes resulting in error
in console.

To avoid this issue, verify that the number of opclasses
is non-zero before performing the allocation.

Change-Id: Ieae85130eb77c9637153ae1505c9d9b578e0bf2e
CRs-Fixed: 3379534
2023-02-03 14:45:03 -08:00
Neha Bisht
30bc8285d2 qcacmn: Add global context for maintaining descriptor count
Add global context to maintain descriptor count at global level.

Change-Id: Ibfe3379bb4a747530794956cc0cba31e423598d3
CRs-Fixed: 3334340
2023-02-03 05:57:55 -08:00
Rahul Gusain
fbc9c86186 qcacmn: Do not add 6 GHz RNR flag in PNO scan
In suspend mode, driver issues the PNO scan with frequency list to
firmware. Currently, for 6 GHz PNO scan, driver adds the RNR flag
for non-PSC channels and sent the scan request to firmware. But
firmware is unable to scan for non-PSC frequencies as 2.4 GHz and
5 GHz frequencies are not present in the frequency list.

So, to fix this, driver exempts the addition of RNR flag for
non-PSC channel in PNO scan.

Change-Id: If2403586460f9da1647bc904027ed738e255af22
CRs-Fixed: 3384972
2023-02-03 05:57:42 -08:00
Vinod Kumar Myadam
f1664a7c8a qcacmn: Replace reg_get_5g_bonded_channel_for_freq to pwrmode API
The current channel list alone is not enough to represent the
capability of the chip or device. Given a channel, in many
cases it may be required to know all the power modes that are
supported by this channel.

Replace the references of "reg_get_5g_bonded_channel_for_freq"
with "reg_get_5g_bonded_channel_for_pwrmode".

Change-Id: I4c978c7f938b14d79d0eadf4251a86a9165f496e
CRs-Fixed: 3147900
2023-02-03 03:37:43 -08:00
Vinod Kumar Myadam
e1c58ad3cb qcacmn: Replace reg_get_5g_bonded_chan_array_for_freq to pwrmode API
The current channel list alone is not enough to represent the
capability of the chip or device. Given a channel, in many
cases it may be required to know all the power modes that are
supported by this channel.

Update API to use supper channel list.
Remove reg_get_5g_bonded_chan_array_for_freq API to use the
super channel API reg_get_5g_bonded_chan_array_for_pwrmode

Change-Id: I4714ae628add81de776bfaec07756df56f27094f
CRs-Fixed: 3143152
2023-02-03 03:37:20 -08:00
Abhishek Singh
7ce0c12e54 qcacmn: Use freq hint in scan for ssid
When Scan db reaches max size, driver deletes the oldest node,
so chances are that BSS on 1st freq scanned is removed.

This lead to scan for SSID, which will do a scan again on
all freqs, and thus we end up in flushing the entry again.

TO fix this use freq hint to scan for ssid to quickly find the
AP so that required AP remains in scan database as it will
be the latest entry.

Change-Id: I28849ee97ff1f492d372870c362288206c4ec9a5
CRs-Fixed: 3392831
2023-02-03 03:36:44 -08:00
Uraj Sasan
52f91b32b9 qcacmn: Reduce the value of macro due to memory Impact
In Multi-Chip MLO, FW is having memory constrain
while increasing the maximum supported MLO LINKS.

Reduce the values to avoid memory issue in FW

Change-Id: Id191f45f25de915e88ed1e12ae56d4a6e7b7095f
CRs-Fixed: 3391537
2023-02-02 22:01:06 -08:00
Surya Prakash Sivaraj
1d91f07450 qcacmn: Align RSNXE with IEEE P802.11az/D7.0 definitions
RSNXE bits are modified in the recent draft. Rename
WLAN_RSNX_CAPAB_PROT_RANGE_NEG to WLAN_RSNX_CAPAB_URNM_MFPR
and the bit position is changed to 15 instead of 10.

Change-Id: Iebca652a952b338f0533023581ebe45bc0aae452
CRs-Fixed: 3387173
2023-02-02 10:21:04 -08:00
Jeff Johnson
56519552e2 qcacmn: Fix umac/cmn_services/regulatory documentation
The kernel-doc script has identified documentation issues in the
umac/cmn_services/regulatory folder, so fix them.

Change-Id: I134c0692507f58e2c9b13d71bec74d57a566a91c
CRs-Fixed: 3390471
2023-01-31 19:43:39 -08:00
Vignesh U
3388a6e5a2 qcacmn: Enhance regulatory debug
The regulatory API reg_get_bonded_chan_entry() does not print the input
parameter "cen320_freq" which indicates the 320 MHz center frequency and is
used in 11be regulatory calls.

Add the parameter "cen320_freq" in the existing regulatory debug print for
the API.

Change-Id: I9edec5855326e78b6898d3a443d96d938fbfe44f
CRs-Fixed: 3369874
2023-01-31 15:01:56 -08:00
Amruta Kulkarni
8a67a212c5 qcacmn: Add documentation for mlme api
Adds documentation for callback api
mlme_cm_roam_get_scan_ie_cb.

Change-Id: Ibc0e3ad80bff24afa8e6f31090a30753f9228ef5
CRs-Fixed: 3390453
2023-01-31 13:18:30 -08:00
Jeff Johnson
6b13d7bbdf qcacmn: Fix umac/cmn_services/sm_engine documentation
The kernel-doc script identified some documentation issues in the
umac/cmn_services/sm_engine folder, so fix them.

Change-Id: I08e56fabac869555719230c53537a8cd671ca4e5
CRs-Fixed: 3390481
2023-01-31 13:18:18 -08:00
Jeff Johnson
1b381119de qcacmn: Fix umac/mlo_mgr documentation
The kernel-doc script identified some documentation issues in
umac/mlo_mgr, so fix most of them. However some issues are due to
kernel-doc being unable to parse the qdf_bitmap() macro, so disable
kernel-doc in those cases.

Change-Id: I1c32ffae58aedbbafa2ab4c9e4faa33c426ea7b5
CRs-Fixed: 3380021
2023-01-31 13:17:53 -08:00
Jeff Johnson
f576a0ab92 qcacmn: Fix umac/cmn_services/serialization documentation
The kernel-doc script identified some documentation issues in the
umac/cmn_services/serialization folder, so fix most of them. However
one issue is due to kernel-doc being unable to parse the qdf_bitmap()
macro, so disable kernel-doc in that case.

Change-Id: I4b579891db315484b465322e9f9e5fe2564f8909
CRs-Fixed: 3390576
2023-01-31 11:24:28 -08:00
Jeff Johnson
4113a5f404 qcacmn: Fix umac/cmn_services/interface_mgr documentation
The kernel-doc script identified some documentation issues in the
umac/cmn_services/interface_mgr folder, so fix them.

Change-Id: I699fd75a0827324872da4ca6a3be13a5ebcfda37
CRs-Fixed: 3390584
2023-01-31 11:24:15 -08:00
Jeff Johnson
08131fd0bb qcacmn: Fix wlan_utility.h documentation
The kernel-doc script identified some documentation issues in the
umac/cmn_services/utils folder, all in wlan_utility.h, so fix them.

Change-Id: I91763c8103083b75dd26aa21b254f45de793b8b6
CRs-Fixed: 3390582
2023-01-31 08:36:17 -08:00
Srinivas Pitla
6f49a4b14b qcacmn: Add API to invoke MLO peer delete
This API invokes peer delete on all link peers

Change-Id: If20274ca67c93a3e6c0706c04007215d5330bea0
CRs-Fixed: 3389049
2023-01-30 12:38:31 -08:00
Vinod Kumar Myadam
c50244f2b8 qcacmn: Replace reg_is_chan_supported to use pwrmode API
The current channel list alone is not enough to represent the
capability of the chip or device. Given a channel, in many
cases it may be required to know all the power modes that are
supported by this channel.

Update callers of reg_is_chan_supported with super channel list.
reg_is_chan_supported to use the super channel list API
reg_is_chan_supported_for_pwrmode.

Change-Id: I5d33f7bb0bee6012c28d35e6138f5a03525c33ca
CRs-Fixed: 3357157
2023-01-30 10:37:03 -08:00
Divyajyothi Goparaju
61d3b23a1c qcacmn: Give valid range of value for aliasing INI
There are two different name with different range of value for
aliasing INI's.
So, it should pick the valid range of value wrt INI name.

Change-Id: I81ece854a2d8b34f232e03c8ab835161d58c56b1
CRs-Fixed: 3355346
2023-01-30 10:36:50 -08:00
Vinod Kumar Myadam
006220cc0d qcacmn: Replace callers to use super channel list API
The current channel list alone is not enough to represent the
capability of the chip or device. Given a channel, in many
cases it may be required to know all the power modes that are
supported by this channel.

Update caller APIs to use super channel list. Removed
wlan_reg_get_bonded_channel_state_for_freq and
wlan_reg_get_5g_bonded_channel_and_state_for_freq to use the
super channel API wlan_reg_get_bonded_channel_state_for_pwrmode
and wlan_reg_get_5g_bonded_channel_and_state_for_pwrmode
respectively

Change-Id: If51bd130892cd712f5a218067a5d321e874e134a
CRs-Fixed: 3357153
2023-01-30 06:27:57 -08:00
Vinod Kumar Myadam
5abb61b966 qcacmn: Update API to use super channel list
The current channel list alone is not enough to represent the
capability of the chip or device. Given a channel, in many
cases it may be required to know all the power modes that are
supported by this channel.

Remove reg_get_5g_bonded_channel_state_for_freq,
wlan_reg_get_5g_bonded_channel_state_for_freq and
reg_update_5g_bonded_channel_state_punc_for_freq APIs to use the
super channel APIs reg_get_5g_bonded_channel_state_for_pwrmode,
wlan_reg_get_5g_bonded_channel_state_for_pwrmode and
reg_update_5g_bonded_channel_state_punc_for_pwrmode.

Change-Id: I895d70d3a07e239500f97b9ab7884d7723de5080
CRs-Fixed: 3144661
2023-01-30 06:27:44 -08:00
Jeff Johnson
f68d690127 qcacmn: Fix umac/thermal documentation
The kernel-doc script found a documentation issue in umac/thermal, so
fix it.

Change-Id: I27daf243812490a615bb0e5a93b5e20a401cfe9b
CRs-Fixed: 3389336
2023-01-29 13:31:40 -08:00
Himanshu Batra
110b8dfe15 qcacmn: Add mlo peer check in validating disconnect
In case of handling disconnect while sta is connected, if previous
connection is non-ml and a new connect is received with ml
connection then disconnect request is getting ignored.
Fix to add mlo peer check in validating disconnect

Change-Id: I037854f2b4f16e17b8cc75d8a27f5806ed5f783a
CRs-Fixed: 3387398
2023-01-29 10:28:23 -08:00
Gururaj Pandurangi
8b08576fda qcacmn: Change logging level of error logs in reg APIs
Reduce logging level to debug for certain error log prints
in regulatory APIs to decrease console logging.

Change-Id: I35d27fa08269c48b097f0a0811612e8191f723eb
CRs-Fixed: 3389491
2023-01-27 23:21:34 -08:00
abhinav kumar
3bf50ce182 qcacmn: 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, Add
host-defined enum vendor_control_roam_param which defines the param
IDs that the host supports.

Change-Id: I0aaba99c1af7c7c50a62f9bc763d0968c3a3a99c
CRs-Fixed: 3366594
2023-01-27 10:39:38 -08:00