Граф коммитов

17248 Коммитов

Автор SHA1 Сообщение Дата
Shwetha G K
2c87e51684 qcacmn: Apply CFR filter on top of default config
Changes to fetch the default monitor ring config and then
apply CFR filter settings on top of it instead of overwriting
the default one.

CRs-Fixed: 3241818
Change-Id: I7b9d1c9560fd665e0f6418176e6dd3642450442f
2022-07-14 14:49:01 -07:00
Jingxiang Ge
8b82e08d02 qcacmn: Add QCA vendor attribute for TIM beacon statistics
Add the following two vendor attributes to send TIM beacon
statistics to userspace which can be used for power saving:
    QCA_WLAN_VENDOR_ATTR_LL_STATS_TIM_BEACON
    QCA_WLAN_VENDOR_ATTR_LL_STATS_TIM_BEACON_ERR

Change-Id: I2986d7e573ed7eaf72a620b928daceccc43b9066
CRs-Fixed: 3234924
2022-07-14 14:48:55 -07:00
Jinwei Chen
694a2eb657 qcacmn: fix TX packet logging issue
Packet logging buffer is only 2048 bytes, if copy non-linear
TX packet with skb->len (like TSO) which is likely > 2048,
this will lead to skb panic as packet logging buffer can not
accommodate it.

Only support TX packet logging with single linear buffer.

Change-Id: I1d15f9ab80fcc1720fdb3f7fe8c89e7f5e3c0a79
CRs-Fixed: 3242090
2022-07-14 13:04:57 -07:00
Pragaspathi Thilagaraj
38b8236ddc qcacmn: Add support for initiate pasn auth vendor command
Add support for initiate pasn authentication using the vendor
command: QCA_NL80211_VENDOR_SUBCMD_PASN
Fill the below required attributes to initiate PASN:
QCA_WLAN_VENDOR_ATTR_PASN_ACTION
QCA_WLAN_VENDOR_ATTR_PASN_PEERS
QCA_WLAN_VENDOR_ATTR_PASN_PEER_MAC_ADDR
QCA_WLAN_VENDOR_ATTR_PASN_PEER_SRC_ADDR

Change-Id: If33f54eafe5986b4571cc21a80fb0b61578db116
CRs-Fixed: 3232261
2022-07-14 04:12:51 -07:00
Nandha Kishore Easwaran
93bf7e1fb1 qcacmn: Schedule CE tasklet when resource runs out
If there is no resourse to send packet via HTC, then check if interrupts
are not processed from that CE for last 3 seconds. If so, schedule a
tasklet to reap available entries. Also if Queue has reached 1024 entries
within 3 seconds, then also schedule tasklet.

This change is added because there is a case where intermittently
completion interrupts are not received from CE3 and hence adding
this WAR in host to come out of this issue scenario.

Change-Id: I126cd5e678517127659237308f8f6b1313f8f422
CRs-Fixed: 3234943
2022-07-14 01:02:11 -07:00
Shiva Krishna Pittala
053f59e4f0 qcacmn: Interrupt handling changes for UMAC HW reset interrupt
Create a HIF context for UMAC reset handler, register the datapath UMAC HW
reset callback handler with HIF layer, request for UMAC HW reset interrupt,
and schedule a high priority tasklet to process the interrupt in which
call the registered DP callback handler.

CRs-Fixed: 3184312
Change-Id: Iefc811bf0d1b093c3c63bf2238c94a1448f4f139
2022-07-13 15:25:24 -07:00
Devender Kumar
277054124d qcacmn: AST entry create and update support for IPA
To support WDS feature in IPA driver, WLAN needs
to update the ast entry for any new rx packet, and for
end-nodes connected via repeater to root.

CRs-Fixed: 3226348
Change-Id: I7383b12f18e7c70ec06499d66130667eca033131
2022-07-13 02:37:22 -07:00
Devender Kumar
3035192763 qcacmn: Easymesh feature support
Current IPA/WLAN driver does not support the WDS feature.
Packets are dropped if they came via end-node which is not
in direct connection with root AP.

Fix is to enable WDS support and update the same to IPA
driver and create/update AST entries for end-node in
roaming, new src port learn case. Send WDS support to IPA
at wdi init and AP client connect event.

CRs-Fixed: 3226348
Change-Id: I26211613334b33d0d601629405597be329a56774
2022-07-13 02:37:14 -07:00
Harsh Kumar Bijlani
b1461c9317 qcacmn: Add QCA vendor subcommand and attributes for SCS rule configuration
Add a new vendor subcommand QCA_NL80211_VENDOR_SUBCMD_SCS_RULE_CONFIG
for configuration event of Stream Classification Service (SCS) rule.

Also define the attributes present in this subcommand.

Change-Id: Idab722532f9870a377e5f1c02185bdfe2ccb39eb
CRs-Fixed: 3226253
2022-07-13 00:22:35 -07:00
Harsh Kumar Bijlani
f3aa35e599 qcacmn: Add enum for SCS rule configuration index
Add enum for SCS rule configuration index.
This index is used by vendor subcommand
QCA_NL80211_VENDOR_SUBCMD_SCS_RULE_CONFIG while sending NL event
to SCS daemon.

Change-Id: Ic2491d8ec6c2f13f5c45ebaec189b239f0ee9933
CRs-Fixed: 3241704
2022-07-13 00:22:27 -07:00
Vignesh Mohan
93eaeb9799 qcacmn: Modify the get chan enum API to binary search
Modify the get API that fetches the channel index given a frequency,
from a linear search to a binary search to improve the search time.

CRs-Fixed: 3230932
Change-Id: Id6a1a20d80989a797505772954fb913c4f57d227
2022-07-13 00:22:20 -07:00
Vignesh Mohan
216322b1de qcacmn: Use formula to get IEEE from frequency
Instead of looping through the current channel list, which takes O(N),
use the existing formula to directly convert frequency to
IEEE channel number, which will take O(1). This will reduce the CPU load.

CRs-Fixed: 3230932
Change-Id: I38e3a67c6ef4295cea3a8a57f3a853651445f0b5
2022-07-13 00:22:13 -07:00
Aditya Kodukula
bf46176516 qcacmn: Add QCA vendor attribute to configure DBAM feature
Add a new QCA attribute QCA_WLAN_VENDOR_ATTR_CONFIG_DBAM
to configure Dedicated Bluetooth Antenna Mode (DBAM) feature.
It is used to switch between dedicated antenna mode for BT and
COEX shared antenna mode for WLAN and BT.

Change-Id: Id1e04e8647a0b4ff6bb83f272c0f891aa88f111c
CRs-Fixed: 3239894
2022-07-12 22:33:50 -07:00
Liangwei Dong
0b43b9f1f8 qcacmn: Drop beacon or probe rsp with invalid RSN IE
Check RSN ie valid or not for beacon or probe response frames
in scanning. The invalid RSN ie will cause the AP filtered out
during candidate selection in connecting.

Change-Id: Id324ddfaa0f438482673e66b683dcf903d9fc0e3
CRs-Fixed: 3218707
2022-07-12 22:33:43 -07:00
Vijay Krishnan
bcf7463728 qcacmn: Add Function pointer to Enable/Disable BW_Expand
When BW Expansion feature is enabled using UCI or cfg80211tool
command, the utility function to set/get the BW Expand feature
is introduced inside DFS module.

A new dfs member dfs_use_bw_expand is used to store the status
of BW Expansion feature.

CRs-Fixed: 3229250
Change-Id: If01e080f8e60e883fbeb2d7dfd599b91584bc293
2022-07-12 22:33:36 -07:00
Subrat Mishra
1ecf591ecf qcacmn: Fix TWT configuration for 2.4 GHz PHYB mode MAC
Fix TWT configuration for 2.4 GHz PHYB mode MAC.

Change is macro protected. Wlan resource config sets twt_ap_pdev_count
to number of Radios per psoc. But for 2.4 GHz vap coming up in PHYB
mode needs the value 2 if only one radio is enabled per psoc. WAR is
done from host driver to enabled TWT certification process. Actual fix
must be done from Firmware code.

Change-Id: Id29692097ee555c94c54f53d7540eb108fbe98e0
CRs-Fixed: 3238210
2022-07-12 14:02:02 -07:00
Shashikala Prabhu
79b3391de9 qcacmn: Replace WLAN_FEATURE_T2LM flag with WLAN_FEATURE_11BE
Replace WLAN_FEATURE_T2LM compile-time flag with WLAN_FEATURE_11BE.

Change-Id: If3253bf3aae04f434252bfc92d00b8649f831bfe
CRs-Fixed: 3238444
2022-07-12 08:57:02 -07:00
Amith A
d298ea09cd qcacmn: Restrict LPI channels in mas chan list in outdoor deployment
When the deployment is outdoor, there will be only SP rules for AP and no
LPI rules. But there can be LPI rules for client and when this happens,
master chan list is filled with the LPI rules for client modes. It is
then propagated to super chan list when super chan list is computed.
In AFC, when power/expiry event is received, ol_ath_trigger_acs_for_afc
iscalled. In the path of ol_ath_trigger_acs_for_afc, channels are marked
with IEEE80211_CHAN_NO_IR based on availability using super chan list.
This check is failing as there are LPI client entries in super chan list
with enabled state.

In order to fix this issue, LPI rules must be restricted when filling
master chan list.

Change-Id: I7085c376f78f65c2ff3e2c9ec98d4047b5bff896
CRs-Fixed: 3234395
2022-07-12 08:56:55 -07:00
Harsh Kumar Bijlani
82708b0aab qcacmn: Use static memory for ppdu_info in Rx monitor
a. to avoid dynamic memory allocation of ppdu_info per-pkt path
which is leading fragmentation, use statically  allocated
ppdu_info.
b. Disable rxmon workqueue processing as statically allocated
ppdu_info is being used.

Change-Id: Idbcd49863954582349900a414bb1aa80f68aab72
CRs-Fixed: 3239974
2022-07-12 08:56:49 -07:00
Hariharan Basuthkar
967441ed46 qcacmn: Check if opclass is supported by country
When operating class 137 (320 MHz width) is filled in the AFC partial
request on a radio that supports upto 160 MHz bandwidth, there is a
crash observed.

The 160 MHz platform on which the issue is reported does not have
enough memory to accommodate a 320 MHz AFC response. Therefore, the
crash happens.

To fix this issue, fill the operating class in the AFC partial request
based on the max_5g_bw sent in the WMI_REG_CHAN_LIST_CC_EXT_EVENT.

Change-Id: I3be0e0aa7dc2a41f987a6725bc74444311408e51
CRs-Fixed: 3238405
2022-07-12 07:01:04 -07:00
Nandha Kishore Easwaran
34b8c3c3b9 qcacmn: Add extra tx actions for peer filtering
Add extra actions for tx peer filtering. This actions are used
to indicate to FW for the first peer addition and the last peer
deletion. This will be used by FW to set and clear peer filtering
related registers.

Change-Id: I1488146f54f3aab82651f4a27823a9b977d7b307
CRs-Fixed: 3237958
2022-07-12 07:00:57 -07:00
Vignesh U
65ae278074 qcacmn: Add the regdomain definition for ETSI15_ETSIC
The full regdomain pair ETSI15_ETSIC is not split into 5 GHz regdomain
and 2 GHz regdomain. So the corresponding country configuration (country
alpha 'LK') and the regdomain configuration (regdomain id '0x7A')fails.

Add the 5 GHz and 2 GHz regdomain definition for the regdomain pair
ETSI15_ETSIC .

Change-Id: Ia54516cd15d081c315f988bb3c1ecb258b352f05
CRs-Fixed: 3236859
2022-07-12 07:00:50 -07:00
Nandha Kishore Easwaran
bd880419d7 qcacmn: Set only required dtlvs and utlvs
Subscribe only for the required downstream and upstream tlvs instead
of subscribing for all the tlvs. Also set only the required word mask
configuration

Change-Id: I998d0bf3b331bf2d5227bbba4b5962bcba80a2e5
CRs-Fixed: 3238211
2022-07-12 02:30:56 -07:00
Amruta Kulkarni
34afd4b92f qcacmn: Define runtime pm lock for roaming
Define new runtime pm lock to be used during roaming.

Change-Id: Ia0d440d432b655c1e7fe41bdb12e4ad5207e7ad1
CRs-Fixed: 3239693
2022-07-12 02:30:48 -07:00
Jayachandran Sreekumaran
1b244cfcb0 qcacmn: target_if support for spatial reuse feature
Add target_if support for spatial reuse feature

Change-Id: If0ad6e459e7b7d215d5016c8c7c0e94df5d36649
CRs-Fixed: 3213486
2022-07-11 23:13:02 -07:00
Liangwei Dong
25e13778d6 qcacmn: Fix scan entry age out failure
If STA is connected to AP (non MBSS AP), the scm_age_out_entries
try to age out check for APs which are not non-tx AP of MBSS.
But the API doesn't check the current connect AP is MBSS or not
and do the mbssid_info.trans_bssid mac address comparing. So
the check is invalid if both trans_bssid is zero.
Fix by check mbssid_info.profile_num value first and then
trans_bssid field of two scan nodes.

Change-Id: I64ed1eddf0583211a305ba61e1d15a6c674be3fe
CRs-Fixed: 3236072
2022-07-11 21:24:50 -07:00
Rakesh Pillai
9ba8236444 qcacmn: Add support to track high watermark for SRNGs
Add support to track the high watermark for the number
of entries which are used at any given instant. This helps
in identifying if the ring size is sufficient or is being
full for certain use-cases.

Change-Id: Id3ffa52c653696699fbcfbb556a815d5f7908863
CRs-Fixed: 3235115
2022-07-11 03:59:38 -07:00
Sheenam Monga
162ab8974a qcacmn: Remove multiple definitions of regulatory enums
Currently, separate reg_domain and country_code are defined for
qcacmn and qcacld and add correct enum values for 5 GHz & 2 GHz domains.

Define reg_domain and country_code in reg_db.h and include
reg_db.h to avoid multiple definitions.

Change-Id: Icd1da48a51a107a7b8ba04570d01c44d504492c4
CRs-Fixed: 3206927
2022-07-11 03:59:30 -07:00
Rakesh Pillai
6529ad7117 qcacmn: Enable CE7 history for perf build
Enable CE7 event history for perf build to
have more debug information in-order to
debug issues.

Change-Id: I35f295ca1fef8f29ffa27af49b1aa4e2b3963a87
CRs-Fixed: 3237420
2022-07-11 03:59:23 -07:00
Paul Zhang
b4a50cb3ce qcacmn: Lock protection when access mlo peer list
The api wlan_mlo_peer_list_peek_head is invoked with lock acquired.
wlan_mlo_peer_create api does not invoke ml_peerlist_lock_acquire
and ml_peerlist_lock_release when invoking api mlo_get_mlpeer, this
causes race condition issue.

To resolve this issue, using api wlan_mlo_get_mlpeer instead of
api mlo_get_mlpeer.

Change-Id: Ifb41b7d83bf17938d210ce5a2d7f370d6355197c
CRs-Fixed: 3228243
2022-07-11 03:59:16 -07:00
jinbliu
bb29a06aad qcacmn: Add hal API to get L3 type field
In some cases we need to classify frames accordinging
to l3 type. This change mainly focus on this issue.

Change-Id: I4bc49a808a02b4bc8c65f920690922045d65e739
CRs-Fixed: 3198481
2022-07-11 02:10:05 -07:00
Devender Kumar
bf35825b9f qcacmn: AST entry definition for IPA
To support the EasyMesh feature WDS need to be enable and
same status need to be given to IPA driver for that add
new AST definition and declaration.

CRs-Fixed: 3226348
Change-Id: Id2c38b55310f6f0ef9e3d42d606feca16c7d9d78
2022-07-10 23:40:36 -07:00
VIJAY RAJ
b3113d5540 qcacmn: TX status conversion for Datapath frame during diag logging
Wrong value of tx status sent to supplicant for Datapath frame
via diag logging.

Convert the tx status value to enum diag_tx_status specific value.

Change-Id: I3bcf47ed5265d82fb64f1499f79e89be52d23a3e
CRs-Fixed: 3236391
2022-07-10 05:07:40 -07:00
Harsh Kumar Bijlani
fb99e9066d qcacmn: Enable interrupts for CE4 ring
Enable interrupts for CE4 ring for WIN specific
Li and BE platforms.

Change-Id: I1ae28cd0e70ec41fd6ae88c0827ffa3ddfaf8c73
CRs-Fixed: 3226251
2022-07-09 16:58:30 -07:00
Gerrit - the friendly Code Review server
9ca62ccf26 Merge changes into wlan-cmn.driver.lnx.2.0 2022-07-09 15:15:43 -07:00
Harsh Kumar Bijlani
836a658783 qcacmn: Return failure when mpdu is NULL
Return failure when mpdu is NULL

Change-Id: Ie4d27e5bdb8bc56d869ad10628deeacd51ecc605
CRs-Fixed: 3235962
2022-07-09 12:33:44 -07:00
Amith A
5bb1139116 qcacmn: Add API reg_is_supr_entry_mode_disabled to check AFC_NOT_DONE flag
Add an API reg_is_supr_entry_mode_disabled to check if
REGULATORY_CHAN_AFC_NOT_DONE is cleared for a given frequency and
input power mode.

Change-Id: I6ca851bbe89e6003d8084856eb30b4796d01616e
CRs-Fixed: 3230917
2022-07-09 09:59:36 -07:00
Pragaspathi Thilagaraj
788ca7bb89 qcacmn: Set 11az Ranging related feature capabilities
Set 11az Ranging related extended capabilities over the
wiphy extended capabilities. Mask these fields for SAP iface

Change-Id: Ib6ce92f42d7125b4e9532d5c893ffe955be0f0dc
CRs-Fixed: 3235143
2022-07-08 21:30:55 -07:00
Pragaspathi Thilagaraj
ba8cfc391a qcacmn: Add AP and STA specific P802.11az security capabilities (vendor command)
Add feature capability indication for P802.11az security for the drivers
to advertise capabilities such as secure LTF support, secure RTT
measurement exchange support, and protection of range negotiation and
measurement management frames for station and AP interfaces
independently. This allows a more fine-tuned capability indication as an
alternative to the upstream nl80211 mechanism that is not specific to
the operating mode.

Change-Id: I53073fec66abf38986038ab9e4d17531ddd67b5a
CRs-Fixed: 3235149
2022-07-08 21:30:49 -07:00
Namita Nair
ec77b33cd4 qcacmn: Rate limit PN error handle message
Currently, the PN error message is logged with
QDF_TRACE for every occurrence of PN_CHECK_FAILED
or PN_ERROR_HANDLING_FLAG_SET. This causes a crash
due to excessive logging when there is a high number
of PN errors. Hence rate-limit this message.

Change-Id: I57bc3401ba8239151f0791040c649d372ec0a953
CRs-Fixed: 3236492
2022-07-08 14:48:00 -07:00
Kani M
c9f08ae24b qcacmn: Add beacon ratelimiting
Rate-limiting will be based on number of beacons received.
When the beacon is not from connected AP, the beacons
are dropped on a percentage of received beacons and
rate limit, which is configured by the user.

CRs-Fixed: 3230508
Change-Id: Iac591c37129fda6923ef254c2950cb0bdbb44ce9
2022-07-08 11:57:54 -07:00
Harsh Kumar Bijlani
eb56570ae1 Revert "qcacmn: Use qdf flex mem to allocate rx ppdu info"
This reverts commit I2318f6c5f33e5337f6398263d6717da698be7c92.

Change-Id: Ia60fe6ddb66623761c11398d89d6039c66994b66
CRs-Fixed: 3235962
2022-07-08 19:47:28 +05:30
Harsh Kumar Bijlani
1f40cb6ec2 Revert "qcacmn: Initialize ppdu info flex mem pool during pdev attach"
This reverts commit I7970ab056e600ccfe28ae1ccdc50a66d5ae0ade8.

Change-Id: I1837ddb8840a4f567890991d41fbeb78d8d8e0de
CRs-Fixed: 3235962
2022-07-08 19:06:06 +05:30
Jia Ding
720b38fbc6 qcacmn: Use correct wbm_ring_num for SW5 and SW6
With KIWI_V2, wbm_ring_num for WBM2SW5 and WBM2SW6 have been changed
to 5 and 6. Hence properly update them in g_tcl_wbm_map_array. At the
same time, tx_ring_mask_msi and tx_ring_near_full_irq_mask are also
updated.

With IPA_OFFLOAD enabled soc->tcl_data_ring[0|1|2] is used by HOST
and the other two rings are allocated to IPA usage.

Change-Id: I4c13d0787e46be667c3a5a0ae624df8c2b2b354e
CRs-Fixed: 3229375
2022-07-08 05:41:11 -07:00
Paul Zhang
8bddc409a3 qcacmn: validate frame length in util_find_extn_eid
A malicious input can cause a buffer over-read in util_find_extn_eid.
When len==2 and frame[TAG_LEN_POS]==0, the while loop will be entered
and an over-read will happen for frame[ELEM_ID_EXTN_POS].

Since both MIN_IE_LEN and ELEM_ID_EXTN_POS are equal to 2, ensure
(len > MIN_IE_LEN) before accessing the index.

Change-Id: Ia0aa8a2b59e8bf9ac06f5454e40687c5c34c5d88
CRs-Fixed: 3236559
2022-07-08 05:41:04 -07:00
Vinay Adella
e9a54debcb qcacmn: Fix buffer copy beyond max size causing corruption
During ML IE fragmentaion, the inline copy should account for
increase in size due to difference in destination and source.
This avoids corrupting the buffer beyond the max allowed size.

CRs-Fixed: 3236544
Change-Id: I8114c15accb70fa0c92ee51453dd112875bd09d5
2022-07-08 03:01:18 -07:00
Hariharan Basuthkar
261715db9e qcacmn: Modify max_bw for 240 MHz channels after copying to psoc
A kernel warning is observed when the reg_rules are sent to the cfg80211
module on a 320mhz supported radio.

On a 320mhz supported radio, for the 5 GHz reg_rule of the 5490-5730 band,
the max_bw initially comes from the target as 240 MHz. Since
reg_modify_max_bw_for_240mhz_5g_chans is called before copying
the reg_rules to psoc, the max_bw is set to 320 MHz. There is a warning
condition the cfg80211 module to check if the max bandwidth is greater
start and end frequency difference. This check causes the warning.

To fix this issue, call reg_modify_max_bw_for_240mhz_5g_chans after
copying the reg_rules to the psoc.

Change-Id: I385971a2f6c849f7cdd17903ff33646f0fa9d47e
CRs-Fixed: 3236069
2022-07-08 01:21:01 -07:00
KARTHIK KUMAR T
0365423471 qcacmn: update RSSI specific parameters in mon pdev
Update RSSI specific parameter from beryllium
specific path to common path as part of
extending feature for lithium also.
RSSI calibration parameters are received as part
of WMI event from FW, update these parameters to
monitor pdev via CDP interface.

Change-Id: I4e35d873db6d1ad03d86694a8d36decffe409a0e
CRs-Fixed: 3231120
2022-07-08 01:20:55 -07:00
Utkarsh Bhatnagar
000a8135b3 qcacmn: Use ch_freq instead of chan num for TDLS update peer TLV
Use ch_freq instead of chan_num while using tdls_ch_params
structure. As chan_num no longer exists and is replaced by
ch_freq.

Change-Id: Ifd6fd49e201b97a16294bad6c6e4ae49a04c380f
CRs-Fixed: 3234931
2022-07-07 23:29:51 -07:00
Himanshu Batra
53eac0def3 qcacmn: QDF changes to support vlan traffic in IPA offload
QDF changes to support vlan traffic in IPA offload

Change-Id: I41e1511284f16ac2afa91115bd953b0055a31d47
CRs-Fixed: 3229809
2022-07-07 23:29:44 -07:00