Graphe des révisions

18120 Révisions

Auteur SHA1 Message Date
Nanda Krishnan
776f11b082 qcacmn: Updating the PPE2TCL ring max size as 32k
Added changes in wifi module to update the ring size as 32k

Change-Id: I0e81c8b2b2d037f30bcb570e85d97f8ffd14a268
CRs-Fixed: 3326869
2022-11-14 05:42:36 -08:00
Manish Verma
50819e81b2 qcacmn: Add per peer PPE routing support
Add the per peer routing support for PPE-DS feature

Change-Id: I71666fc2f29b9497fd4ec9f5d50af1cb05d91fe2
CRs-Fixed: 3306766
2022-11-14 05:42:28 -08:00
Amith A
779e407465 qcacmn: Reorder pdev init and reg rules saving API calls
Move the call to reg_save_reg_rules_to_pdev after
reg_init_pdev_mas_chan_list. Since initialization is being called after
saving the reg rules, wlan_regulatory_pdev_priv_obj structure members
are not getting updated.

Since reg_set_ap_pwr_type requires reg rules to be saved in pdev, call
this API after saving the reg rules to pdev.

Change-Id: I24e98edec45114ad76490d4e3776edaa0fce66e2
CRs-Fixed: 3327492
2022-11-14 00:14:38 -08:00
Pavankumar Nandeshwar
da32e55eb0 qcacmn: Add a new enum for WBM2SW_RELEASE used for DS
Add a new enum for WBM2SW_RELEASE ring used
specifically for handling tx completions from
ppe2tcl ring in DS

Change-Id: I88f033e87f2a40e6f730728da3168b18b5e39f5c
CRs-Fixed: 3303259
2022-11-13 20:41:52 -08:00
Chaithanya Garrepalli
720568a65d qcacmn: For fast recycle case invalidate TLV header
In case of fast_recycled is set we can avoid invalidating
the complete buffer as it would have been invalidated
by tx driver before giving to recycler.

But we need to still invalidate rx_pkt_tlv_size as this
area will not be invalidated in TX path

Change-Id: I9e5202d8b251a5d59117609a705a311e499d05b0
CRs-Fixed: 3332713
2022-11-13 12:13:44 -08:00
Asutosh Mohapatra
1ca035fa80 qcacmn: Add missing hardware info
Define and update missing Helium based target
mappings in qwlan_hw_list.

Change-Id: I9c1aa3d7ce492397e555e59b361f6855bc431183
CRs-Fixed: 3317892
2022-11-12 09:34:20 -08:00
Sheenam Monga
d57a764281 qcacmn: Change value of domain ETSI18_WORLD from 0x6E to 0x3D
Currently, value of domain ETSI18_WORLD is 0x3D which is not
correct.

Fix is to map ETSI18_WORLD to correct hex value to avoid any
issue.

Change-Id: I064896a089fd512bc350ff4401c03822dd78fa96
CRs-Fixed: 3331649
2022-11-12 05:01:12 -08:00
Yeshwanth Sriram Guntuka
9b059a3bc0 qcacmn: Add support for getting CE srng info for Direct Link
Add support to fetch CE srng information used for
direct link datapath.

Change-Id: If38b892b28eba711d7949fa02926205dc601a50e
CRs-Fixed: 3317501
2022-11-12 03:11:01 -08:00
Yeshwanth Sriram Guntuka
e228622034 qcacmn: Add support to configure MSI registers for Direct Link CE
The MSI address and data information for Direct Link
copy engines will be available once the WiFi driver
on LPASS is initialized. Add support to configure the
IPCC address and data values into Direct Link copy
engines at runtime.

Change-Id: I5e7dff90c2f1ff764462c235deb5795ed019a16b
CRs-Fixed: 3316679
2022-11-12 03:10:53 -08:00
Yeshwanth Sriram Guntuka
99615e170d qcacmn: Add support for Direct Link refill ring
Add support and ops for initialization and
deinitialization of Direct Link refill ring.

Change-Id: I2c7018c4f8411fb7a590cfbb8b991f9152b22397
CRs-Fixed: 3316656
2022-11-12 01:23:24 -08:00
Bing Sun
4fb2121bbe qcacmn: Add INI to disable wake IRQ
Some platform would like to disable wake IRQ, so add INI to disable
wake IRQ.

Wake IRQ can't share the same IRQ with the copy engines. In one MSI
mode, we don't know whether wake IRQ is triggered or not in wake IRQ
handler. known issue CR 2055359.

Disable wake IRQ for one MSI mode. If you want to support wake IRQ.
Please allocate at least 2 MSI vector. The first is for wake IRQ while
the others share the second vector.

Change-Id: Id9e54e287f146ff64d94669bbc44dc0a724d9480
CRs-Fixed: 3290867
2022-11-11 03:56:11 -08:00
Bing Sun
186e8421e0 qcacmn: Support one MSI vector dynamically
MSI vector number is defined in platform driver, so use platform
driver API to check whether it is in one MSI mode or not.

In case of one MSI vector, interrupt migration needs to be disabled.
This is because when interrupt migration happens, the MSI data may
change. However, MSI data is already programmed to rings during initial
phase and there is no way to know that MSI data is changed during run
time and reprogram again.

If it is in one MSI mode, disable interrupt migration by adding IRQ
flag IRQF_NOBALANCING.

Change-Id: I54579dfe1e658c1a2c395be93875d013d6e6affd
CRs-Fixed: 3290829
2022-11-11 03:56:04 -08:00
Sushant Butta
9a6e6ec056 qcacmn: Enhancements of SKB Frag Debug Framework
Enhancements of SKB Frag Debug Framework as per
Waikiki monitor architecture.

Change-Id: Iea336348c0c4f6a5f40ea16777298dd529870aee
CRs-Fixed: 3300916
2022-11-11 03:55:57 -08:00
Mohammed Ahmed
b36ae3c3aa qcacmn: add psoc null check before passing to wlan_objmgr_get_peer_by_mac
Current code directly passes the result of wlan_vdev_get_psoc(vdev) to
wlan_objmgr_get_peer_by_mac, without null pointer checking, which can
result in null pointer dereferencing.
To fix this issue, add checking of the psoc pointer before passing to
wlan_objmgr_get_peer_by_mac.

Change-Id: Ica5ebbc448a6da8b1e7c846f05773d95f995eaca
CRs-Fixed: 3327337
2022-11-10 16:43:43 -08:00
Divya R
8791a90b2d qcacmn: Rename the function names
80+80 MHz support HE capability as well. To make it generic,
change the function name from dfs_is_precac_done_on_ht8080_chan
to dfs_is_precac_done_on_80p80_chan.

The function dfs_is_precac_done_on_ht20_40_80_160_165_chan_for_freq
checks for 320 MHz channel width also. To make it generic, this function
has been renamed as dfs_is_precac_done_on_non_80p80_chan_for_freq.

Change-Id: I942e27b85f4f9e2ccc1786072b044deb0b4a6e45
CRs-Fixed: 3317795
2022-11-10 11:35:32 -08:00
Liangwei Dong
436c73ee60 qcacmn: Add WAKELOCK_DYN_MAC_ADDR_UPDATE wake lock reason
Add new enum WIFI_POWER_EVENT_WAKELOCK_DYN_MAC_ADDR_UPDATE
for dynamic MAC address update wake lock reason code.

Change-Id: I61b9b54b2aca30eec9aa1d153a40877bfda88af9
CRs-Fixed: 3327592
2022-11-10 11:35:24 -08:00
Sheenam Monga
fee16fbe5a qcacmn: Handle SRG and NON-SRG pd threshold
Currently, only single pd_threshold is fetched and
treated as SRG and NON-SRG pd threshold instead of
handling both threshold separately.

Fix is to get SRG and NON-SRG pd threshold from
userspace instead of single pd threshold.

Change-Id: I414843dfd08068c81531d0e96d71fb68d8bfccd1
CRs-Fixed: 3328201
2022-11-10 09:33:46 -08:00
Rachit Kankane
58ee0d8e0b qcacmn: Add MAC ID to get per MAC stats
Add MAC ID to which the Spatial Reuse stats is requested from.
Pass this MAC ID to FW to get the respective Spatial Reuse stats.

Change-Id: Ief2434bf1f2fc82d9339ee38933effbd580088af
CRs-Fixed: 3328686
2022-11-10 00:22:15 -08:00
Yu Tian
0dd0da3ac0 qcacmn: Disable FISA update in suspend state
FISA update may come when target in suspend state, then
UMAC force wake may return failure and lead to system timeout
crash. Change is used to defer the update when resume happens.

Change-Id: If033bed692dccf2d27e9c76825ab2063a3f56841
CRs-Fixed: 3324926
2022-11-09 11:17:01 -08:00
Liangwei Dong
52590a8a70 qcacmn: Add set mlo link validation callback
Add "validate_set_mlo_link_cb" callback to mlo link set serialization
request context. Mlo mgr component client can register such callback to
be invoked before set mlo link command to target.

Change-Id: I0e860186dd33fc45b3f662d6af91329f10e4c638
CRs-Fixed: 3324888
2022-11-09 04:03:36 -08:00
Sai Rupesh Chevuru
7768a45743 qcacmn: Debug enhancement for rx packet tlvs
Dump all the tlvs when WORD_BASED_TLV is disabled.

Change-Id: I2615474c905417986fa8b43005db5c8e48039d0a
CRs-Fixed: 3324208
2022-11-09 02:03:13 -08:00
Divya R
2c0d802926 qcacmn: Enable ADFS 320 MHz capability bit
A new capability bit from FW is introduced that provides
ADFS 320 MHz support information. supports_adfs_320 signifies
chainmask capability service bit if FW supports ADFS on 320 MHz
channel width. Add this capability bit(supports_adfs_320) in host.

Change-Id: I09c689658ef495d8a8707425ecc9ba922fce4d41
CRs-Fixed: 3317795
2022-11-09 02:03:06 -08:00
Yeshwanth Sriram Guntuka
2ac8820056 qcacmn: Reduce CE0 src and dest ring size for XPAN usecase
Reduce CE0 source and destination ring sizes for XPAN
usecases to reduce memory footprint based on the
frequency of transactions between LPASS and FW.

Change-Id: I65076a2720fa72d10327981994763dc4ac295ab3
CRs-Fixed: 3319659
2022-11-08 18:52:40 -08:00
Priyadarshnee Srinivasan
ed3f00bb01 qcacmn: Add min_psd changes for best power mode
Add reg txops to fetch min_psd for punctured SP channels.
min_psd is computed from afc response. Using the min_psd power value,
EIRP is computed for the non-punctured BW using the formula
EIRP = PSD + 10 * log10(non-punctured BW).
Add an entry in bw_to_10log10_map for all possible non-punctured
bandwidth.

CRs-Fixed: 3329625
Change-Id: I79707cb233640342c521e41e9c4d776e121c1d6d
2022-11-08 12:50:34 -08:00
Amit Mehta
f8e6f61b2e qcacmn: Get vdev id from tx descriptor
Currently vdev id is passed from nbuf cb
but vdev_id is not being updated in nbuf cb
which is resulting in passing wrong vdev id to the
packet logging function.

So to fix issue pass vdev id from tx descriptor instead
of nbuf cb and also rate limit the error log in vdev NULL
case.

Change-Id: I69f568b7da52f1c96f208a220c6c4a7f6d98e082
CRs-Fixed: 3327359
2022-11-08 05:10:12 -08:00
Bing Sun
8c1db79cea qcacmn: Provide center freq when getting 320 MHz chan parameters
320 MHz bw are overlapped, if you want special 320 MHz center freq,
pass center freq of 320 MHz to reg_set_channel_params_for_pwrmode
through ch_params->mhz_freq_seg1.

Change-Id: If5947ed1303c5c7d978161b6ffc6490ab07b8296
CRs-Fixed: 3326837
2022-11-08 05:10:04 -08:00
Rakesh Pillai
927771f08c qcacmn: WAR for incorrect indication of first_msdu_in_mpdu
Currently the mdpu_desc_info from the msdu buffer tlvs,
for 2K-jump or OOR errors, if its the first-msdu-in-mpdu.
But if this flag is incorrectly indicated, there is a chance
of decoding garbage data and accessing invalid/NULL memory area.

In order to mitigate the above mentioned issue, add a sanity
check to determine if the first-msdu-in-mpdu has been processed
once and process/drop subsequent msdus based on this flag. This
flag also helps in handling cases, where first-msdu-in-mpdu
is indicated incorrectly for multiple msdus in an mpdu.

Change-Id: I990301d5a101dc7aa71303420bf49ab6fcee27c6
CRs-Fixed: 3325334
2022-11-07 18:44:17 -08:00
Bing Sun
7b317d2b63 qcacmn: Define new_ch_width in csa_offload_params as phy_ch_width
Currently sme_switch_channel set new_ch_width as phy_ch_width, while
wma_csa_offload_handler set new_ch_width as raw bit in wide bandwidth
channel switch IE.
Clean up the code. Define new_ch_width in csa_offload_params as
phy_ch_width.

Change-Id: Ie1999860421aa60c18cdc8059275954d910b4b66
CRs-Fixed: 3324746
2022-11-07 16:46:12 -08:00
Chaithanya Garrepalli
86f7649e19 qcacmn: gracefully handle error packets on partner soc
Ideally in MLO, Rx buffers should be routed to error
rings of the SOC which owns the RX buffer or link desc
incase of any error or fragment

But in case of HW issue if the packets are routed to
partner soc. Handle gracefully instead of assert

Change-Id: Ia56188808dfd034e960e1c1345de8f760e4b05f1
CRs-Fixed: 3327959
2022-11-07 14:58:21 -08:00
Santosh Anbu
f0811fb133 qcacmn: Handle CSA RESTART in MLO SYNC WAIT state
In case of MLD, if one of the partner vdev is not brought up and
CSA is triggered on self pdev with multiple vdevs configured then
all the vdevs of this pdev will move to restart state.
But the ML AP vdev in MLO_SYNC_WAIT will not handle CSA restart
leading to multivdev restart request timeout.

Add change to handle CSA_RESTART when the ML AP vdev is in MLO_SYNC_WAIT
state. Thereby all vdevs of this pdev will move to restart state.

Change-Id: I9b729e2f81d3c72ab5e321f3a396f157424c1663
CRs-Fixed: 3328931
2022-11-07 13:11:37 -08:00
Neha Bisht
bd144caad7 qcacmn: Set fast_recycled flag in fast xmit path
Set fast_recycled flag for packets in fast xmit path

Change-Id: I6388beb5d187d000c300898d1d1480e6654836eb
CRs-Fixed: 3306873
2022-11-07 13:11:32 -08:00
Jhalak Naik
8ed6f1a778 qcacmn: Add QCA vendor attributes for EHT support in external ACS
Add support for new vendor sub-command attributes for 320 MHz
channel width and puncturing information as part of the
external ACS.

Change-Id: Ic8181619949061794775bfe55f4afd0f408a7316
CRs-Fixed: 3323216
2022-11-07 13:11:26 -08:00
Chaithanya Garrepalli
67fa8470e3 qcacmn: WAR to avoid processing corrupted packet
In defrag path match addr1 with VAP mac address
and if there is mismatch do not process considering
it as corrupted packet

Change-Id: I003c07949e760ff4e64a7d22bfbefc25cc817ae2
CRs-Fixed: 3327977
2022-11-07 13:11:20 -08:00
Himanshu Batra
d7c7a5b0bb qcacmn: Handle back to back connect for MLO
In case of MLO, when back to back connect is received, if the previous
connection is still in progress, hold the disconnect and the new
connect.
The same is the behavior for disconnect followed by connect.

Change-Id: I174f5fa40df2441d3dce693550542fd43d6dd991
CRs-Fixed: 3323721
2022-11-07 13:11:12 -08:00
Ananya Gupta
bb3702c339 qcacmn: Increase target pipe entries count to 64 for CE2
CE2 ring gets full pretty quickly as target side entries
count is 32, host side config is 64.
Increasing target's pipe entry to 64 as well.

Change-Id: Idbcb3675af0b39fc9741ae68d7ec3f1ad5e67bf1
CRs-Fixed: 3322383
2022-11-07 13:11:07 -08:00
Namita Nair
5ae67c7042 qcacmn: Fix argument type for vdev_ref_cnt
Typecast vdev->ref_cnt, from qdf_atomic_t to int,
using qdf_atomic_read() when logging as an
integer value.

Change-Id: I3432f5b8247a3031f1896d8964529a568fc3af19
CRs-Fixed: 3326096
2022-11-07 13:11:01 -08:00
Jeff Johnson
45e1b1f348 qcacmn: Fix wmi_unified_tlv.c documentation
The kernel-doc script has identified numerous documentation issues in
wmi_unified_tlv.c, so fix them.

Change-Id: Icf82bc87e576965f5bfe64d416be2da71a250cb6
CRs-Fixed: 3326205
2022-11-07 13:10:55 -08:00
Aravind Kishore Sukla
781d4bb22e qcacmn: Add all 6 GHz channels in scan request
User space issues scan, which does not include non-PSC channels.
If user space does not customize these channels, kernel fills
all the supported channels (2 GHz, 5 GHz and 6 GHz all channels).
Driver does not add channels to the scan channel list even if
it is present in RNR IE, as this increases the number of channels
given by user space and increases scan time.
User space should not send customized channel list, even if it
wants to scan the RNR channels.

If the flag NL80211_SCAN_FLAG_COLOCATED_6GHZ is set or at least
one 6 GHz channel is present, driver need to add all 6 GHz
channels which are not present in the scan request and sets
RNR flag for those channels so that FW can do co-located 6 GHz
channel scans on these channels.

Without the change, Driver adds 6 GHz channels to the scan request,
which are present in PSC list only.

Withdraw logic to add all 6 GHz channels to the channel list,
if Scan req carries at least one 6 GHz channel in
scm_add_all_valid_6g_channels, which indicates that the target
or regulatory supports 6 GHz channels, as they are added if
Scan req carries NL80211_SCAN_FLAG_COLOCATED_6GHZ flag.

Change-Id: I3c8f5cd7eadf39557f24f685a260fe76ea5d08be
CRs-Fixed: 3312385
2022-11-07 13:10:50 -08:00
Nidhi Jain
315630671a qcacmn: Populate phase delta for proper chains in scan radio
This change is to populate the phase delta for the valid
chains as per rx_chainmask for scan radio in special
vap mode.

Change-Id: I3ff9a928d93b0e81221b2bf9a515c63150f04272
CRs-Fixed: 3316528
2022-11-07 13:10:44 -08:00
syed touqeer pasha
e44617cc32 qcacmn: Extract TID from the SAWF MSDUQ
Extract TID from the SAWF MSDUQ

Change-Id: Iaa3e396644898eef32c4474a85421150e301eff5
CRs-Fixed: 3315716
2022-11-07 13:10:38 -08:00
Yu Tian
aa6032dba5 qcacmn: Use rate limit print for BAR frames
Use rate limit print for BAR frames to in avoid of
slow processing when BAR flood happens.

Change-Id: I92063787501c8f6467a211bd2695108a9fe42724
CRs-Fixed: 3325043
2022-11-07 13:10:30 -08:00
Nanda Krishnan
72592f40f8 qcacmn: Updating the correct vdev_id for multivap
When Multivaps are configured in a radio, the vdev_id's are
not updated as expected.
With the changes, the vdev_id are properly updated in the registers

Change-Id: I7d987e96bd0f8a91f13025fa6975415ea235ce12
CRs-Fixed: 3318563
2022-11-07 13:10:24 -08:00
Paul Zhang
47c7d6990d qcacmn: resolve race between vdev create and wifi_pos_get_vdev_count
In function wifi_pos_process_app_reg_req(), it uses function
wifi_pos_get_vdev_count to get vdev_count;
Then wifi_pos_process_app_reg_req->
     wifi_pos_get_vdev_list-> wlan_objmgr_iterate_obj_list,
it uses wlan_psoc_get_max_vdev_count to get max_vdev_cnt,
if vdev is not NULL, it invokes function wifi_pos_vdev_iterator
to fill the vdev_info.

For the failure scenario:
In wifi_pos_process_app_reg_req, it gets 2 for vdev_count
from function wifi_pos_get_vdev_count; Then the process is
interrupted and vdev 2 is created in another process; Now
since there are vdev 0, 1, 2, wifi_pos_vdev_iterator is
called 3 times and memory corruption happens since it writes
two more bytes with op mode and vdev id in vdev_info.

Change-Id: I5222836a1448bfaa7df31c919419d448eaa20895
CRs-Fixed: 3320183
2022-11-07 13:10:18 -08:00
Kannan Saravanan
9456298da5 qcacmn: New ini config for scan radio
For scan radio add new section
SCAN-RADIO for parsing the ini config.

Change-Id: I41de46b3f5b9a3e1ddc2d529f90b21a7c7fb8a3d
CRs-Fixed: 3317082
2022-11-07 13:09:30 -08:00
Linux Build Service Account
1f462776a5 Merge "qcacmn: Enable monitor mode flag for special vap" 2022-11-07 08:21:27 -08:00
Linux Build Service Account
4bb3b90e65 Merge "qcacmn: Changes to enable CFR on special vap" 2022-11-07 08:21:26 -08:00
Nidhi Jain
d340e5bc02 qcacmn: Enable monitor mode flag for special vap
This change is to enable monitor mode flag is special vap is up.

Change-Id: Id7f169406e25f8f121f5e32074ac3c8049870e01
CRs-Fixed: 3326413
2022-11-07 00:45:03 -08:00
Nidhi Jain
2e2003d54f qcacmn: Changes to enable CFR on special vap
This change enables CFR captures on special vap.

Change-Id: Ifdaeccf7cc2211af5a2b82feae3a0b3ee45b617a
CRs-Fixed: 3308460
2022-11-07 00:44:52 -08:00
Sai Rupesh Chevuru
692be85e20 qcacmn: Forward 4 addr eapol frames to hostapd
Forward the 4 addr eapol packets received in
dp_rx_process_rxdma_err() to osif stack instead of network stack.

Change-Id: I1d8ff065096844ebe61974329754e54fc9d28640
CRs-Fixed: 3323480
2022-11-04 15:24:21 +05:30
Prasanna JS
adb0db98bc qcacmn: Array Indexing after validating 'ce_id'
Indexing array after checking 'ce_id' for boundary
condition to avoid array out of bound.

Change-Id: Iffa776021dbd70bc135152ad06cb9488a74c335f
CRs-Fixed: 3328146
2022-11-03 06:26:08 -07:00