The number of perf CPU clusters can vary across
different targets. Currently only the second CPU
cluster is considered as the perf cluster, whereas
there can be more than 1 perf clusters.
Fix this perf cluster derivation for interrupt
affinity.
Change-Id: Ie4407064ac5124fc050715fd75400ca516c9c6b8
CRs-Fixed: 3498024
On some third-party platforms, we observe the memory physical
address below 0x2000 is allocated will cause HW/FW NOC error,
so this region memory should not use by host.
This change will hold the memory if the allocated memory physical
address below 0x2000 until driver unload.
Change-Id: I37b6abc98033230dc4f572dafb849101497f6e93
CRs-Fixed: 3419648
Kernel 6.0 and above has deprecated the use of
topology_physical_package_id() and instead of this
API topology_cluster_id() needs to be used to get
the cluster ID of a given CPU.
Add QDF abstraction API for topology_cluster_id().
Change-Id: I4ca555c016730afc6cac2a4bf55d9f48c6f4cae0
CRs-Fixed: 3488031
Diag logging is used for logging datapath event such
as EAPOL and DHCP events
Remove legacy logging mechanism for datapath events
Change-Id: I8a987c1a4ab9954c7662e2f76e7904b02619f661
CRs-Fixed: 3470476
PMAC is giving fatal when mgmt packet is getting queued
with non-zero version in frame control
Adding a check for version before queueing mgmt packets.
Change-Id: I606513b6ce027f1126e9cd40a9909886441de240
CRs-Fixed: 3422973
-Support to route IGMP packet to correct netdev coming from
legacy and mld sta.
-Support to detect mld model based on ini setting
Change-Id: I10ea5af9a4315642b262c8404d7bebd88ee06ab1
CRs-Fixed: 3467808
qdf assert always, assert without debug information.
Added support to dump needed information before assert.
Change-Id: I19898ec11c1bade4340cf1737a760d9507012f12
CRs-Fixed: 3480596
Add new QDF APIs to handle gpio, irqf and timer related
handling in TSF feature.
Change-Id: Iff6f85c6debe351c5533906559400b4a51333d4d
CRs-Fixed: 3469020
Fix the following 2 memory leaks in Rx monitor path:
1. When MPDU queue is empty and MON_BUF_ADDR_TLV is received,
then free page fragment memory.
2. In case of small size packets, 1 MPDU can have more than
2*QDF_NBUF_MAX_FRAGS fragments wherein each nbuf can have maximum of
QDF_NBUF_MAX_FRAGS frags. In this case, add the frags to nbuf in the
following way.
parent_nbuf (QDF_NBUF_MAX_FRAGS frags attached)
|
| (fraglist)
|
----> tmp_nbuf1 (QDF_NBUF_MAX_FRAGS frags attached) ----> tmp_nbuf2
(next)
Change-Id: I54e8162bf0b9da8629a3c80d123421fbeaf8df11
CRs-Fixed: 3453676
In WBM2SW Rx Error path for BE
specific functionality
1) HAL API's/Function pointers are replaced
with specific function calls.
2) Efficient read/write of WBM Error Info
from HAL Rx desc.
3) Minimize reading data from Nbuf TLV.
4) Peer_id fix for MLO clients with security
Change-Id: I760694073a06c1829f28e7e92cd1657560d8eb06
CRs-Fixed: 3472220
Add an API qdf_file_read_bytes to read a file from within the driver
and return the contents of it along with its size.
Change-Id: If777e1b9c610e8cc7dd35be42fa9ced2bb1c6560
CRs-Fixed: 3456115
qdf assert always, assert without debug information.
Added support to dump needed information before assert.
Change-Id: I2b53b7fa6a600b2a1aafdbc608b95b75feb2133d
CRs-Fixed: 3464724
As part of TX Mon 2.0, WIN has IEEE80211 specific macros only in WIN side
header file, but now Tx Mon 2.0 is required to be supported on MCC side
and these macros are not available. Hence extend by adding the required
type/subtype macros in qdf common header file.
Change-Id: I76cf0a0c226664c34c9c8bd10e280a500b3c61a9
CRs-Fixed: 3415715
On some third-party platforms, we observe the memory physical
address below 0x2000 is allocated will cause HW/FW NOC error,
so this region memory should not use by host.
This change will hold the memory if the allocated memory physical
address below 0x2000 until driver unload.
Change-Id: I9d5df20cbdf23c230d7c910cce9b9489dd9dd614
CRs-Fixed: 3419648
Some IOT APs only allow to connect if last 3 bytes of
BSSID and self MAC is same. They create a new bssid on
receiving unicast probe/auth req from STA and allow STA to
connect to this matching BSSID only. So boost the matching BSSID
to try to connect to this BSSID.
And add logic to refresh the candidate list before next
candidate try when the last candidate connect fail.
Change-Id: I482e122c8c9febbab42f64013fbb78c266f49655
CRs-Fixed: 3432618
This reverts Change-Id: I2c19b72b82092d553d474a50385ed3095a0fab39
since it results in increased memory allocation due to 8 bytes of
headroom at the beginning of buffer, particularly for data path modules
when size is at the edge of the page boundary.
Change-Id: I72fd7e63b93f2646812acc09e817e3be531f27d8
CRs-Fixed: 3458603
As IPA has moved out of the kernel, ipa_uc_reg_rdyCB
interface call from WLAN is not needed anymore
as ipa_wdi_init_per_inst() initialization call will
handle this. This change will add support to retain
this call only for legacy devices.
Change-Id: Icb479562e091d388e03ef5a38b3e95d4dbf06271
CRs-Fixed: 3459071
In WBM2SW Rx Error path for BE
specific functionality
1) HAL API's/Function pointers are replaced
with specific function calls.
2) Efficient read/write of WBM Error Info
from HAL Rx desc.
3) Minimize reading data from Nbuf TLV.
Change-Id: Ic8793ffcbeb2411c9b81fb32acae062e8a1f40cc
CRs-Fixed: 3362828
IPA_OFFLOAD path will be enabled by default for MSM,
inorder to support optional wifi datapath feature.
This change is a WAR to disable IPA offload during
compile time, if the feature is not enabled.
This is done using the IPA_WDI_OPT_DPATH feature flag
from IPA. If the flag is not defined in the IPA test
module file, IPA offload path and optional wifi dp
feature will be disabled.
This is a WAR, and will be fixed once a Kernel config is
available from IPA to enable or disable the optional
wifi datapath feature.
Change-Id: Ic1b961656f52fa009ab4c3b3d8d3cac305c2c7c4
CRs-Fixed: 3431972
done the following changes to improve the RX path KPI
1. remove the extra invalidate in RX path as
we no longer dirty the RX TLV cache lines.
we now store the rx error codes in nbuf cb instead
of RX TLVs reserved memory bytes.
2. with features like flow tag and wds extended mode
enabled by default, the rx_fast_flag is always set
to false, this resulted in lot more instructions
being executed in RX path.
Now we ensured this flag is at least set for other
features which are not enabled by default.
Change-Id: I04c6bdc52a2b3f1248b822a108d8bd1a70abcc7c
CRs-Fixed: 3406505
On some profiles memory debug is disabled. Add memory debug disabled
version to fix compilation error on such profiles.
Change-Id: I1ea99767a02e9b2e919cb1892c5d9ecbf04d470a
CRs-Fixed: 3442812
rx_user_stats were used to update HE info in
Radio tap header, but HE info is stored at ppdu level
stats.
So changes are done to update HE info using ppdu level
stats.
Change-Id: I4734ee5df73d3a865a8b63a9ed28d647cc52d9f2
CRs-Fixed: 3405611
The datarate for Data packets and QOS NULL packets,
shown in the Radiotap header was wrong for QCN9224.
In Lithium based devices, for data packets datarate
is not included in the radiotap header.
So for WKK also changes are done to not to include
data rate.
Change-Id: I3fa8a65973e3e0b01ef589551c6621d35b34b984
CRs-Fixed: 3408916
When CONFIG_QCOM_IOMMU_UTIL is enable in vendor config, we have to
use new set of API's to get iommu domain attributes, and while using
__qdf_iommu_attr_to_os seeing compilation issue as some identifiers
like, QCOM_IOMMU_MAPPING_CONF_S1_BYPASS are not declare.
even when CONFIG_QCOM_IOMMU_UTIL is not enable we have dependency
on qcom-iommu-util.h file as it has some identfiers which are in use,
with or without CONFIG_QOM_IOMMU_UTIL.
Fix is to include the header file qcom-iommu-util.h which contains
the declaration of all the identifiers used in __qdf_iommu_attr_to_os
and this file is included if CONFIG_ARCH_QCOM or CONFIG_ARCH_MSM
is enable.
Change-Id: I881622c0c447331c53576ce2263c587e1f074a22
CRs-Fixed: 3419264
To support splitphy and MLO operation when multiple
TX ring are present under single soc, then to differentiate
the TX lmac, pmac id in per packet is require. As pmac_id in
bank register is always constant for pinnacle case, so need
to pass per packet in TX desc.
Change-Id: Ic6d8e14e8c1948e218c52c8eeaf99fcd6c437753
CRs-Fixed: 3356413
Some platforms support a skb_recycler feature which patches the Linux
kernel to add a bool fast_xmit member to struct sk_buff.
Add a QDF abstraction to return the value of this member when it is
supported, and return false when it is not supported.
Change-Id: I6dfe6276779218f4d0245ec44035b4aa596d0e2a
CRs-Fixed: 3418516
There is a chance for null pointer dereference for
num_eht_user_info_valid and array out of bounds for eht_user_info.
Add checks for both the cases as it may cause crash.
Change-Id: Icb5235612a1225b9991c99519b5ee49536c577bc
CRs-Fixed: 3426873
Add qdf_mem_common_alloc/qdf_mem_common_free for
the platform that want to replace malloc with valloc
due to limited continuous physical memory.
Change-Id: If3c5716ff6d62c0a4f6f21b7ebf9eef1e3f0e529
CRs-Fixed: 3429140
Add support of HW Link ID in PeerMetaData.
Retrieve the HW Link ID in both Rx per packet
path and RX Error path, store it in nbuf cb.
Use the stored value from nbuf while updating
MLO peer link statistics.
Change-Id: I11596d44fe8557af568fd399d0c0a04d2b887b2a
CRs-Fixed: 3397721
Create the new qdf_in_atomic to wrap the kernel API in_atomic to be
used in the driver to check whether current running thread is in atomic
context.
Change-Id: I69843ff79559612561d57965a6754990e9b6f4f9
CRs-Fixed: 3414725
The kernel-doc script identified documentation issues in the QDF
time-related abstractions, so fix those issues.
Change-Id: Ieffd4a5b2a38674da1b19735ad6f35844d355f09
CRs-Fixed: 3406200
Currently, hardware supports checksum offload for only ipv4, tcpv4/v6 and
udpv4/v6 packets. But driver sets checksum as CHECKSUM_UNNECESSARY for
all rx packets if tcp_udp_err and ip_err bit in rx_attention_tlv is not
set. If driver sets CHECKSUM_UNNECESSARY in skb then network stack will
not validate checksum and will reply to even wrong checksum packets
which is incorrect.
So, fix is to set checksum for all rx packets other than ipv4, tcpv4/v6 and
udpv4/v6 to CHECKSUM_NONE instead of CHECKSUM_UNNECESSARY so that network
stack validates checksum.
Change-Id: Ifb9c74fb729361da6db715fa667f926b71ce948f
CRs-Fixed: 3378925
The DUT should drop the mcast packet from itself when
receiving it. However, a mcast packet from the DUT
itself has been failed to be discarded due to code
refactoring. This change aims at fixing this issue.
Change-Id: Ic80aa2aeb107b7b5a1b1d88f2ee0a72e316d7fcc
CRs-Fixed: 3372169
The kernel-doc script identified a large number of documentation
issues in the QDF memory abstractions, so fix those issues. In addition,
there are a number of instances where public functions have their
implementation documented instead of having their interface
documented, so move that documentation.
Change-Id: I4e30fd85e65567485cdc7a9adfc38c69df0cfa55
CRs-Fixed: 3406199
The kernel-doc script identified documentation issues in the QDF MC
Timer abstractions, so fix those issues. In addition, there are a
number of instances where public functions have their implementation
documented. In those cases make sure only the interface is documented.
Change-Id: Ied6cf02d2091099351cd82245a667fd1e6cad461
CRs-Fixed: 3405262