Commit graph

1,403,262 commits

Author SHA1 Message Date
Manivannan Sadhasivam
a729c16646 PCI: qcom: Remove custom ASPM enablement code
Since the PCI subsystem has started enabling all ASPM states for all
devicetree based platforms, the ASPM enablement code from this driver can
now be dropped.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/20250922-pci-dt-aspm-v2-2-2a65cf84e326@oss.qualcomm.com
2025-09-23 18:07:01 -05:00
Manivannan Sadhasivam
f3ac2ff148 PCI/ASPM: Enable all ClockPM and ASPM states for devicetree platforms
So far, the PCI subsystem has honored the ASPM and Clock PM states set by
the BIOS (through LNKCTL) during device initialization, if it relies on the
default state selected using:

* Kconfig: CONFIG_PCIEASPM_DEFAULT=y, or
* cmdline: "pcie_aspm=off", or
* FADT: ACPI_FADT_NO_ASPM

This was done conservatively to avoid issues with the buggy devices that
advertise ASPM capabilities, but behave erratically if the ASPM states are
enabled. So the PCI subsystem ended up trusting the BIOS to enable only the
ASPM states that were known to work for the devices.

But this turned out to be a problem for devicetree platforms, especially
the ARM based devicetree platforms powering Embedded and *some* Compute
devices as they tend to run without any standard BIOS. So the ASPM states
on these platforms were left disabled during boot and the PCI subsystem
never bothered to enable them, unless the user has forcefully enabled the
ASPM states through Kconfig, cmdline, and sysfs or the device drivers
themselves, enabling the ASPM states through pci_enable_link_state() APIs.

This caused runtime power issues on those platforms. So a couple of
approaches were tried to mitigate this BIOS dependency without user
intervention by enabling the ASPM states in the PCI controller drivers
after device enumeration, and overriding the ASPM/Clock PM states
by the PCI controller drivers through an API before enumeration.

But it has been concluded that none of these mitigations should really be
required and the PCI subsystem should enable the ASPM states advertised by
the devices without relying on BIOS or the PCI controller drivers. If any
device is found to be misbehaving after enabling ASPM states that they
advertised, then those devices should be quirked to disable the problematic
ASPM/Clock PM states.

In an effort to do so, start by overriding the ASPM and Clock PM states set
by the BIOS for devicetree platforms first. Separate helper functions are
introduced to override the BIOS set states by enabling all of them if
of_have_populated_dt() returns true. To aid debugging, print the overridden
ASPM and Clock PM states as well.

In the future, these helpers could be extended to allow other platforms
like VMD, newer ACPI systems with a cutoff year etc... to follow the path.

Link: https://lore.kernel.org/linux-pci/20250828204345.GA958461@bhelgaas
Suggested-by: Bjorn Helgaas <helgaas@kernel.org>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
[bhelgaas: tweak comments and dmesg logs]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/20250922-pci-dt-aspm-v2-1-2a65cf84e326@oss.qualcomm.com
2025-09-23 18:06:33 -05:00
Martin KaFai Lau
55d5a5154d Merge branch 'bpf-next/xdp_pull_data' into 'bpf-next/net'
Merge the xdp_pull_data stable branch into the net branch. No conflict.

Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
2025-09-23 15:46:52 -07:00
Wolfram Sang
649764145b i3c: Remove superfluous FIXME
I2C adapters can already change timeout and retry parameters via IOCTL.
This allows for better tuning to workloads compared to per-adapter
defaults. So, the FIXME is not needed.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://lore.kernel.org/r/20250923203557.18298-2-wsa+renesas@sang-engineering.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2025-09-24 00:46:15 +02:00
Bartosz Golaszewski
da3a88e965 pinctrl: use more common syntax for compound literals
The (typeof(foo)) construct is unusual in the kernel, use a more typical
syntax by explicitly spelling out the type.

Link: https://lore.kernel.org/all/20250909-gpio-mmio-gpio-conv-part4-v1-13-9f723dc3524a@linaro.org/
Suggested-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2025-09-24 00:41:08 +02:00
Alistair Francis
2e48265501 nvme: Use non zero KATO for persistent discovery connections
The NVMe Base Specification 2.1 states that:

"""
A host requests an explicit persistent connection ... by specifying a
non-zero Keep Alive Timer value in the Connect command.
"""

As such if we are starting a persistent connection to a discovery
controller and the KATO is currently 0 we need to update KATO to a non
zero value to avoid continuous timeouts on the target.

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Keith Busch <kbusch@kernel.org>
2025-09-23 15:38:28 -07:00
Max Gurtovoy
20015410fb nvmet: add safety check for subsys lock
Replace comment about required lock with a lockdep_assert_held()
check in the following functions:
 - nvmet_p2pmem_ns_add_p2p()
 - nvmet_setup_p2p_ns_map()
 - nvmet_release_p2p_ns_map()

This ensures the subsystem lock is held at runtime.

Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Keith Busch <kbusch@kernel.org>
2025-09-23 15:38:28 -07:00
Martin George
80e653fab6 nvme-core: use nvme_is_io_ctrl() for I/O controller check
Replace the current I/O controller check in
nvme_init_non_mdts_limits() with the helper nvme_is_io_ctrl()
function to maintain consistency with similar checks in other
parts of the code and improve code readability.

Signed-off-by: Martin George <marting@netapp.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Keith Busch <kbusch@kernel.org>
2025-09-23 15:38:28 -07:00
Kamaljit Singh
f7e9a61530 nvme-core: do ioccsz/iorcsz validation only for I/O controllers
An administrative controller does not support I/O queues, hence it
should ignore existing checks for IOCCSZ/IORCSZ. Currently, these checks
only exclude a discovery controller but need to also exclude an
administrative controller.

Signed-off-by: Kamaljit Singh <kamaljit.singh@opensource.wdc.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Keith Busch <kbusch@kernel.org>
2025-09-23 15:38:28 -07:00
Kamaljit Singh
a5b8527974 nvme-core: add method to check for an I/O controller
Add nvme_is_io_ctrl() to check if the controller is of type I/O
controller. Uses negative logic by excluding an administrative
controller and a discovery controller.

Signed-off-by: Kamaljit Singh <kamaljit.singh@opensource.wdc.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Keith Busch <kbusch@kernel.org>
2025-09-23 15:38:28 -07:00
Martin KaFai Lau
5000380e32 Merge branch 'add-kfunc-bpf_xdp_pull_data'
Amery Hung says:

====================
Add kfunc bpf_xdp_pull_data

v7 -> v6
  patch 5 (new patch)
  - Rename variables in bpf_prog_test_run_xdp()

  patch 6
  - Fix bugs (Martin)

v6 -> v5
  patch 6
  - v5 selftest failed on S390 when changing how tailroom occupied by
    skb_shared_info is calculated. Revert selftest to v4, where we get
    SKB_DATA_ALIGN(sizeof(struct skb_shared_info)) by running an XDP
    program

  Link: https://lore.kernel.org/bpf/20250919230952.3628709-1-ameryhung@gmail.com/

v5 -> v4
  patch 1
  - Add a new patch clearing pfmemalloc bit in xdp->frags when all frags
    are freed in bpf_xdp_adjust_tail() (Maciej)

  patch 2
  - Refactor bpf_xdp_shrink_data() (Maciej)

  patch 3
  - Clear pfmemalloc when all frags are freed in bpf_xdp_pull_data()
    (Maciej)

  patch 6
  - Use BTF to get sizes of skb_shared_info and xdp_frame (Maciej)

  Link: https://lore.kernel.org/bpf/20250919182100.1925352-1-ameryhung@gmail.com/

v3 -> v4
  patch 2
  - Improve comments (Jakub)
  - Drop new_end and len_free to simplify code (Jakub)

  patch 4
  - Instead of adding is_xdp to bpf_test_init, move lower-bound check
    of user_size to callers (Martin)
  - Simplify linear data size calculation (Martin)

  patch 5
  - Add static function identifier (Martin)
  - Free calloc-ed buf (Martin)

  Link: https://lore.kernel.org/bpf/20250917225513.3388199-1-ameryhung@gmail.com/

v2 -> v3
  Separate mlx5 fixes from the patchset

  patch 2
  - Use headroom for pulling data by shifting metadata and data down
    (Jakub)
  - Drop the flags argument (Martin)

  patch 4
  - Support empty linear xdp data for BPF_PROG_TEST_RUN

  Link: https://lore.kernel.org/bpf/20250915224801.2961360-1-ameryhung@gmail.com/

v1 -> v2
  Rebase onto bpf-next

  Try to build on top of the mlx5 patchset that avoids copying payload
  to linear part by Christoph but got a kernel panic. Will rebase on
  that patchset if it got merged first, or separate the mlx5 fix
  from this set.

  patch 1
  - Remove the unnecessary head frag search (Dragos)
  - Rewind the end frag pointer to simplify the change (Dragos)
  - Rewind the end frag pointer and recalculate truesize only when the
    number of frags changed (Dragos)

  patch 3
  - Fix len == zero behavior. To mirror bpf_skb_pull_data() correctly,
    the kfunc should do nothing (Stanislav)
  - Fix a pointer wrap around bug (Jakub)
  - Use memmove() when moving sinfo->frags (Jakub)

  Link: https://lore.kernel.org/bpf/20250905173352.3759457-1-ameryhung@gmail.com/
====================

Link: https://patch.msgid.link/20250922233356.3356453-1-ameryhung@gmail.com
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
2025-09-23 15:21:41 -07:00
Amery Hung
efec2e55bd selftests: drv-net: Pull data before parsing headers
It is possible for drivers to generate xdp packets with data residing
entirely in fragments. To keep parsing headers using direct packet
access, call bpf_xdp_pull_data() to pull headers into the linear data
area.

Signed-off-by: Amery Hung <ameryhung@gmail.com>
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Link: https://patch.msgid.link/20250922233356.3356453-9-ameryhung@gmail.com
2025-09-23 15:21:26 -07:00
Pratyush Yadav
89a3ecca49 kho: make sure page being restored is actually from KHO
When restoring a page, no sanity checks are done to make sure the page
actually came from a kexec handover.  The caller is trusted to pass in the
right address.  If the caller has a bug and passes in a wrong address, an
in-use page might be "restored" and returned, causing all sorts of memory
corruption.

Harden the page restore logic by stashing in a magic number in
page->private along with the order.  If the magic number does not match,
the page won't be touched.  page->private is an unsigned long.  The union
kho_page_info splits it into two parts, with one holding the order and the
other holding the magic number.

Link: https://lkml.kernel.org/r/20250917125725.665-2-pratyush@kernel.org
Signed-off-by: Pratyush Yadav <pratyush@kernel.org>
Cc: Alexander Graf <graf@amazon.com>
Cc: Baoquan He <bhe@redhat.com>
Cc: Changyuan Lyu <changyuanl@google.com>
Cc: Chris Li <chrisl@kernel.org>
Cc: Jason Gunthorpe <jgg@nvidia.com>
Cc: Mike Rapoport (Microsoft) <rppt@kernel.org>
Cc: Pasha Tatashin <pasha.tatashin@soleen.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2025-09-23 14:14:17 -07:00
Pratyush Yadav
20571b1870 kho: move sanity checks to kho_restore_page()
While KHO exposes folio as the primitive externally, internally its
restoration machinery operates on pages.  This can be seen with
kho_restore_folio() for example.  It performs some sanity checks and hands
it over to kho_restore_page() to do the heavy lifting of page restoration.
After the work done by kho_restore_page(), kho_restore_folio() only
converts the head page to folio and returns it.  Similarly,
deserialize_bitmap() operates on the head page directly to store the
order.

Move the sanity checks for valid phys and order from the public-facing
kho_restore_folio() to the private-facing kho_restore_page().  This makes
the boundary between page and folio clearer from KHO's perspective.

While at it, drop the comment above kho_restore_page().  The comment is
misleading now.  The function stopped looking like free_reserved_page()
since 12b9a2c05d ("kho: initialize tail pages for higher order folios
properly"), and now looks even more different.

Link: https://lkml.kernel.org/r/20250917125725.665-1-pratyush@kernel.org
Signed-off-by: Pratyush Yadav <pratyush@kernel.org>
Reviewed-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
Cc: Alexander Graf <graf@amazon.com>
Cc: Baoquan He <bhe@redhat.com>
Cc: Changyuan Lyu <changyuanl@google.com>
Cc: Chris Li <chrisl@kernel.org>
Cc: Jason Gunthorpe <jgg@nvidia.com>
Cc: Pasha Tatashin <pasha.tatashin@soleen.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2025-09-23 14:14:17 -07:00
Lance Yang
0389c305ef selftests/mm: skip soft-dirty tests when CONFIG_MEM_SOFT_DIRTY is disabled
The madv_populate and soft-dirty kselftests currently fail on systems
where CONFIG_MEM_SOFT_DIRTY is disabled.

Introduce a new helper softdirty_supported() into vm_util.c/h to ensure
tests are properly skipped when the feature is not enabled.

Link: https://lkml.kernel.org/r/20250917133137.62802-1-lance.yang@linux.dev
Fixes: 9f3265db6a ("selftests: vm: add test for Soft-Dirty PTE bit")
Signed-off-by: Lance Yang <lance.yang@linux.dev>
Acked-by: David Hildenbrand <david@redhat.com>
Suggested-by: David Hildenbrand <david@redhat.com>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Gabriel Krisman Bertazi <krisman@collabora.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2025-09-23 14:14:16 -07:00
SeongJae Park
8d009da32f mm/damon/sysfs: set damon_ctx->min_sz_region only for paddr use case
damon_ctx->addr_unit is respected only for physical address space
monitoring use case.  Meanwhile, damon_ctx->min_sz_region is used by the
core layer for aligning regions, regardless of whether it is set for
physical address space monitoring or virtual address spaces monitoring. 
And it is set as 'DAMON_MIN_REGION / damon_ctx->addr_unit'.  Hence, if
user sets ->addr_unit on virtual address spaces monitoring mode, regions
can be unexpectedly aligned in <PAGE_SIZE granularity.  It shouldn't cause
crash-like issues but make monitoring and DAMOS behavior difficult to
understand.

Fix the unexpected behavior by setting ->min_sz_region only when it is
configured for physical address space monitoring.

The issue was found from a result of Chris' experiments that thankfully
shared with me off-list.

Link: https://lkml.kernel.org/r/20250917160041.53187-1-sj@kernel.org
Fixes: d8f867fa08 ("mm/damon: add damon_ctx->min_sz_region")
Signed-off-by: SeongJae Park <sj@kernel.org>
Cc: Chris Mason <clm@fb.com>
Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: ze zuo <zuoze1@huawei.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2025-09-23 14:14:16 -07:00
Uladzislau Rezki (Sony)
7ef5268a90 mm/vmalloc: move resched point into alloc_vmap_area()
Currently vm_area_alloc_pages() contains two cond_resched() points. 
However, the page allocator already has its own in slow path so an extra
resched is not optimal because it delays the loops.

The place where CPU time can be consumed is in the VA-space search in
alloc_vmap_area(), especially if the space is really fragmented using
synthetic stress tests, after a fast path falls back to a slow one.

Move a single cond_resched() there, after dropping free_vmap_area_lock in
a slow path.  This keeps fairness where it matters while removing
redundant yields from the page-allocation path.

[akpm@linux-foundation.org: tweak comment grammar]
Link: https://lkml.kernel.org/r/20250917185906.1595454-1-urezki@gmail.com
Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
Cc: Baoquan He <bhe@redhat.com>
Cc: Michal Hocko <mhocko@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2025-09-23 14:14:16 -07:00
Matthew Wilcox (Oracle)
1b00ab4889 ksm: use a folio inside cmp_and_merge_page()
This removes the last call to page_stable_node(), so delete the wrapper. 
It also removes a call to trylock_page() and saves a call to
compound_head(), as well as removing a reference to folio->page.

Link: https://lkml.kernel.org/r/20250916181219.2400258-1-willy@infradead.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Chengming Zhou <chengming.zhou@linux.dev>
Acked-by: David Hildenbrand <david@redhat.com>
Cc: Longlong Xia <xialonglong@kylinos.cn>
Cc: xu xin <xu.xin16@zte.com.cn>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2025-09-23 14:14:16 -07:00
Johannes Weiner
19c5fb83f2 mm: page_alloc: avoid kswapd thrashing due to NUMA restrictions
On NUMA systems without bindings, allocations check all nodes for free
space, then wake up the kswapds on all nodes and retry. This ensures
all available space is evenly used before reclaim begins. However,
when one process or certain allocations have node restrictions, they
can cause kswapds on only a subset of nodes to be woken up.

Since kswapd hysteresis targets watermarks that are *higher* than
needed for allocation, even *unrestricted* allocations can now get
suckered onto such nodes that are already pressured. This ends up
concentrating all allocations on them, even when there are idle nodes
available for the unrestricted requests.

This was observed with two numa nodes, where node0 is normal and node1
is ZONE_MOVABLE to facilitate hotplugging: a kernel allocation wakes
kswapd on node0 only (since node1 is not eligible); once kswapd0 is
active, the watermarks hover between low and high, and then even the
movable allocations end up on node0, only to be kicked out again;
meanwhile node1 is empty and idle.

Similar behavior is possible when a process with NUMA bindings is
causing selective kswapd wakeups.

To fix this, on NUMA systems augment the (misleading) watermark test
with a check for whether kswapd is already active during the first
iteration through the zonelist. If this fails to place the request,
kswapd must be running everywhere already, and the watermark test is
good enough to decide placement.

With this patch, unrestricted requests successfully make use of node1,
even while kswapd is reclaiming node0 for restricted allocations.

[gourry@gourry.net: don't retry if no kswapds were active]
Link: https://lkml.kernel.org/r/20250919162134.1098208-1-hannes@cmpxchg.org
Signed-off-by: Gregory Price <gourry@gourry.net>
Tested-by: Joshua Hahn <joshua.hahnjy@gmail.com>
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Zi Yan <ziy@nvidia.com>
Cc: Brendan Jackman <jackmanb@google.com>
Cc: Joshua Hahn <joshua.hahnjy@gmail.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2025-09-23 14:14:16 -07:00
Lorenzo Stoakes
fde591dad1 mm/oom_kill.c: fix inverted check
Fix an incorrect logic conversion in process_mrelease().

Link: https://lkml.kernel.org/r/3b7f0faf-4dbc-4d67-8a71-752fbcdf0906@lucifer.local
Fixes: 12e423ba4e ("mm: convert core mm to mm_flags_*() accessors")
Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Reported-by: Chris Mason <clm@meta.com>
  Closes: https://lkml.kernel.org/r/c2e28e27-d84b-4671-8784-de5fe0d14f41@lucifer.local
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2025-09-23 14:14:16 -07:00
Kiryl Shutsemau
f8a01513f5 mm/khugepaged: do not fail collapse_pte_mapped_thp() on SCAN_PMD_NULL
MADV_COLLAPSE on a file mapping behaves inconsistently depending on if PMD
page table is installed or not.

Consider following example:

	p = mmap(NULL, 2UL << 20, PROT_READ | PROT_WRITE,
		 MAP_SHARED, fd, 0);
	err = madvise(p, 2UL << 20, MADV_COLLAPSE);

fd is a populated tmpfs file.

The result depends on the address that the kernel returns on mmap().  If
it is located in an existing PMD table, the madvise() will succeed. 
However, if the table does not exist, it will fail with -EINVAL.

This occurs because find_pmd_or_thp_or_none() returns SCAN_PMD_NULL when a
page table is missing, which causes collapse_pte_mapped_thp() to fail.

SCAN_PMD_NULL and SCAN_PMD_NONE should be treated the same in
collapse_pte_mapped_thp(): install the PMD leaf entry and allocate page
tables as needed.

Link: https://lkml.kernel.org/r/v5ivpub6z2n2uyemlnxgbilzs52ep4lrary7lm7o6axxoneb75@yfacfl5rkzeh
Signed-off-by: Kiryl Shutsemau <kas@kernel.org>
Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Dev Jain <dev.jain@arm.com>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Reviewed-by: Zach O'Keefe <zokeefe@google.com>
Cc: Barry Song <baohua@kernel.org>
Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
Cc: Liam Howlett <liam.howlett@oracle.com>
Cc: Mariano Pache <npache@redhat.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2025-09-23 14:14:15 -07:00
Arnd Bergmann
ff0bebab77 Add Qualcomm TEE driver (QTEE)
This introduces a Trusted Execution Environment (TEE) driver for
 Qualcomm TEE (QTEE).
 
 QTEE enables Trusted Applications (TAs) and services to run securely. It
 uses an object-based interface, where each service is an object with
 sets of operations.
 
 Kernel and userspace services are also available to QTEE through a
 similar approach. QTEE makes callback requests that are converted into
 object invocations. These objects can represent services within the
 kernel or userspace process.
 
 We extend the TEE subsystem to understand object parameters and an ioctl
 call so client can invoke objects in QTEE:
   - TEE_IOCTL_PARAM_ATTR_TYPE_OBJREF_*
   - TEE_IOC_OBJECT_INVOKE
 
 The existing ioctl calls TEE_IOC_SUPPL_RECV and TEE_IOC_SUPPL_SEND are
 used for invoking services in the userspace process by QTEE.
 
 The TEE backend driver uses the QTEE Transport Message to communicate
 with QTEE. Interactions through the object INVOKE interface are
 translated into QTEE messages. Likewise, object invocations from QTEE
 for userspace objects are converted into SEND/RECV ioctl calls to
 supplicants.
 -----BEGIN PGP SIGNATURE-----
 
 iQJOBAABCgA4FiEE0qerISgy2SKkqO79Wr/6JGat8H4FAmjIS8AaHGplbnMud2lr
 bGFuZGVyQGxpbmFyby5vcmcACgkQWr/6JGat8H4Wzg/+KnIx5XCYpj1QmL2H8vz5
 dkqB5+QEHfaUIKxUrbk7X/Gow7ZTO8IuDPaiWPSIaGhOosio7fr9J6SdGWySSvBw
 qXazPLgRP7tvhhUA8H1zGO6J9GSGIGENtzRyeK9QzglmkBQcoK9fLRH7StGiwFdP
 f3NKPIx3YZKKL5+I4Xe8J0jvLZmiJW59cSj7m1sfDbPobuLLEKff4VFd4NSv8ufc
 JKpxlxwa3xCtpjNsDJFNlpRwtO0YvF10V3xlDtRGZQs7Gq/dbOA48koA0EqZtTc9
 Yhigl+F4gjleQcrpVT2QM7qJt8fdmuR77FI67YQCmr1cqY1pT/gT3l3Fri0Ok3XU
 Yl+EBI32QLFTjJeGvoEehaEhhpJsWJaLDNDgOV9gDJfZoJK3UgYVjUFwWlVF8Xju
 6iplkDBGpexogjDXoBo8vZEP+/EGwr+cGhWvokLymZCe8R8tfmbA4KkU1mhxo3ma
 eHleGKKghC78xQzUc7gwt0pVJm4FY+uoCzbdV/S/i5j5Kn6l4un5lkUOzXH6D7lj
 HBLExWqL8nxc7mC0Zxtvcd58FiVbLgjEmgMQEGOTliuO8/BXxKU1OJeyNGd4D9vz
 8F2vwBSgyCcrpkx1MmDC2NxYPzUOQ58ct6z07UxlpUCcBgCXlnrRBMjX1k8CwJpn
 BkiizW+aj53HRTQlWlBZLp0=
 =+Jqo
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmjTDEkACgkQmmx57+YA
 GNk5ww//TTwhmt8/XMNbozvUHYvz2/BsJJ9jVlFZUp9nuf7nVkDESGiNAvj439Fy
 xSwnFKjplRxDwLWixsi92QSF60VfhTm3pQ7ggsga/5IoHr+R2l0L2aMzkZUl4jKX
 y6pCg9A/FE1D87AfOh4dzuagddkwzOf1CEcJlE95t7NH9uome3QdsIzmc7/yg/MV
 01xq+30YaSRNbGxiQkmIqChU8bJBFqaH+ygPWZVyAX0gzk9nQHhzNgvbsi8v0Otv
 iFNO3/VF7uzsv2Q8Qx0unIBq6kJIxhHC3K3M1TXHJKRtax8N/8M6UVVkdfshes5+
 reg0CIsOEQ9FqevyabEkirtiwvCF61knmhkKJjCnysd+18PCzLjxnNEVtY+tUomH
 sFI++U5MLuybfCAx4jqjW9dEUrLNiGF8sbJTkQ4ToBjRJR1YihT9aBHeoH7OCKfb
 izS03PlJqDAK7qGH7PTjabi/YmYujizxVrh29CsP3Lk0FfB5m2h2dsX1gr9Z9V5d
 hq0z8nAsh6UJt26Nfq2+hhMaC4AiBn4foc+YaCx/Z8pf9pejzEu/NxRNox05LZem
 EThVNRF1zTtI+0SCHGDAwV3Tuj/uuvrOl9FkcdPbP0kFErsW8b5zwZWIDvzqc2FT
 L39E/C91Ptoe9ZpmCAfnyzKcfI6FeEfXwtMsLcagHsm6pcVbfyc=
 =BBL5
 -----END PGP SIGNATURE-----

Merge tag 'tee-qcomtee-for-v6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/jenswi/linux-tee into soc/drivers

Add Qualcomm TEE driver (QTEE)

This introduces a Trusted Execution Environment (TEE) driver for
Qualcomm TEE (QTEE).

QTEE enables Trusted Applications (TAs) and services to run securely. It
uses an object-based interface, where each service is an object with
sets of operations.

Kernel and userspace services are also available to QTEE through a
similar approach. QTEE makes callback requests that are converted into
object invocations. These objects can represent services within the
kernel or userspace process.

We extend the TEE subsystem to understand object parameters and an ioctl
call so client can invoke objects in QTEE:
  - TEE_IOCTL_PARAM_ATTR_TYPE_OBJREF_*
  - TEE_IOC_OBJECT_INVOKE

The existing ioctl calls TEE_IOC_SUPPL_RECV and TEE_IOC_SUPPL_SEND are
used for invoking services in the userspace process by QTEE.

The TEE backend driver uses the QTEE Transport Message to communicate
with QTEE. Interactions through the object INVOKE interface are
translated into QTEE messages. Likewise, object invocations from QTEE
for userspace objects are converted into SEND/RECV ioctl calls to
supplicants.

* tag 'tee-qcomtee-for-v6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/jenswi/linux-tee:
  Documentation: tee: Add Qualcomm TEE driver
  tee: qcom: enable TEE_IOC_SHM_ALLOC ioctl
  tee: qcom: add primordial object
  tee: add Qualcomm TEE driver
  tee: increase TEE_MAX_ARG_SIZE to 4096
  tee: add TEE_IOCTL_PARAM_ATTR_TYPE_OBJREF
  tee: add TEE_IOCTL_PARAM_ATTR_TYPE_UBUF
  tee: add close_context to TEE driver operation
  tee: allow a driver to allocate a tee_device without a pool

Link: https://lore.kernel.org/r/20250915174957.GA2040478@rayden
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-23 23:08:25 +02:00
Arnd Bergmann
ebc5eb9ea0 Memory controller drivers for v6.18
1. STM32 OMM: Fix ineffective/missing setting of the req2ack in the
    device based on DT property, if the value is different than 0.
 
 2. Samsung Exynos SROM: Fix IO map resource leak if
    of_platform_populate() in probe() failed.
 
 3. Broadcom brcmstb: Document existing, older devices in Devicetree
    bindings.
 
 4. Tegra 210 EMC: Document OPP table for interconnects (driver usage
    will come later) and define memory client IDs as bindings, because
    these are shared between DTS and driver.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmjEJ1cQHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD18U9D/9yJMQHjwf+ztRI7MDJwMa3uPhKm38qrr6x
 YIc2eDooXsYmG05aXsqtUZSxCFD38O1kQzrfTYjbRTNzA4D9jZn5jiFUPUrDlZmT
 RFOkwxDO1Ks3D4ly5e1t5oeI5LTJ9LGLuafjQ76uN5waIdKhIYDIio9JcYycdyvM
 ULkPghHEp6WP5arnRivp3FsbyDTIOsBvF1GYvjNgvQxO88smfByjtonH5zeUXyv3
 YaMdzKN7d/ORZhf3amov86QbeENVEVLtCb65G3j28N0IVSrV8DkfHopVbYNtFouL
 mfhmsQQGAPJYrNdOAs72whuGe4Z1xlJQmhW7CpfiV55woMSyw+jSXM0muFOIcjBc
 lMPtLU/C38aqCepKbESiFomRpgd4JyvzB35D5yeign2cd10kY01Q2oVmWIeVFkyq
 yC9nADwIVXJ7PR53O9BlwgnMn6RTdqlGko75oWaOdOTD4sSeaEBo+RyB/zx2xLsz
 upvBSHQ964BD7YSDW2rlOC6n48o68NaNXK8UncQwQVIBtfYOQLHIdbMS2ll580Fl
 K/yiRpDS96YDyrdh0b47xfSHMjSKi6C9AJlVrStuVEjKgbSBA7WbjbQiMIoR+8Nt
 7AnCN1J7SjYfQ6kl8fT3ZLvmYr1V6fFldh1wTGOm23IEXLq84RN6XxPo9Nbww6FX
 vHOhmoyRmQ==
 =w0Tq
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmjTDBYACgkQmmx57+YA
 GNlzIw//cp0CtBP9PBB7qxbwoR8ppRBQdrLiuc+cDqDMC5wURXkEw7VbqAoMqiAv
 grBVcqlQoc4+iycCIKZF/JTjQJnlruBn5AFkaBNdf5lwNQ93qX/KrtfelcJNsIL9
 LKMI3a58tjothVJgnN4TXRw5nJhSoTv3+YK2r/IGdGfEB7Nt+FCvxWBk0LWEXAqY
 KUZCxq9DgBPPtF+8zQ8EVMIBGZGoqkoBR74AzN/SHbLwWRfGLPGy3WfiK21FjZ1c
 YIwfOCeYHOtb/x8rh3kyeaIT6EZVOLEeZJ07ID0IPyv5qMOatzVEgPSQmJOYdI9Y
 v7q3wk6QmqYphJ60Tdsawi8zVXvlsgnJPpmFrKNx27P6zaAf2rYgGUcEeTEKfv4T
 NYCqn39jEj19kajM6h52s4x8efzex3VvA6wdV5iyt/Uqtw3sujhSjpKs081UUyOj
 y/qjdXV91bB9k2iyIq8FqQ2wea4eAK0bGt1ylAYXwhiqsNn7RFH+WNSfJ/iJJukD
 PTee8DEySMaIWxOV7nYRb+oy8SMN3txLIF5emI6hZw1Xw+2pid3fkZdt/F3F0yEY
 xBwKprIcruZYglk0DY7JvboraKd4Ly71GBPcAT4YDcsHT8gXznogb8ZgafotgOrp
 Rd5nE8oWfCaRQrsGdXMkca0+NYriRAKkyTK5MmqEdjyfYvyxJnw=
 =VjUi
 -----END PGP SIGNATURE-----

Merge tag 'memory-controller-drv-6.18' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl into soc/drivers

Memory controller drivers for v6.18

1. STM32 OMM: Fix ineffective/missing setting of the req2ack in the
   device based on DT property, if the value is different than 0.

2. Samsung Exynos SROM: Fix IO map resource leak if
   of_platform_populate() in probe() failed.

3. Broadcom brcmstb: Document existing, older devices in Devicetree
   bindings.

4. Tegra 210 EMC: Document OPP table for interconnects (driver usage
   will come later) and define memory client IDs as bindings, because
   these are shared between DTS and driver.

* tag 'memory-controller-drv-6.18' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl:
  memory: tegra210: Use bindings for client ids
  dt-bindings: memory: tegra210: Add memory client IDs
  dt-bindings: memory: tegra210: emc: Document OPP table and interconnect
  dt-bindings: memory: Update brcmstb-memc-ddr binding with older chips
  memory: samsung: exynos-srom: Fix of_iomap leak in exynos_srom_probe
  memory: stm32_omm: Fix req2ack update test

Link: https://lore.kernel.org/r/20250912140030.204650-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-23 23:07:34 +02:00
Arnd Bergmann
32cdf411b4 Commit d1bef995f6 ("ARM: rockchip: force built-in regulator support for PM")
introduced the REGULATOR if PM dependency for the suspend code, while
 commit d1558dfd9f ("ARM: rockchip: Force CONFIG_PM on Rockchip systems")
 later always enabled PM.
 
 So we can simplify the REGULATOR dependency by dropping the if PM.
 -----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAmjQYWcQHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgahyB/91+3a20fEtbwo/JrwR4FCgLM+wFy4o1e22
 zq16sadoPmzZp8Kf3pw3XXMttZCg2DfapT5WIoN7DmGwUOFqzAeWDFEbVKsKnOu3
 rWuMC7qvAJVMyaES7ByKXdHQfYLFwxhoDcK+tkOsv64OCx40WOacDRmHKoGDxvZ4
 bizKiMwvvLKSk5c2jupQaO/OpB+3IF/+L+YrGNOfd6HMROqxsC7bI5riE/rmpz9O
 QcSo8nAsPSBnYcXElimy/SBi9+2jsO+k6eESzsQyQOBhNIvPpr0zmvmpL4WTRS6X
 BFzF/i9MYW84U3WkfAWn5idklXvVl9wSQTHF544uRw1tz6RPO09g
 =ZXaN
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmjTC9gACgkQmmx57+YA
 GNkxHQ//UBqpggfRKOWP/z7GrWo5b00bulYbGqfuVCYk6l0S8GcaSSZOTxC8DqbI
 3wQM/BD9bw9x1Pw4WxGHQ7N0u0NVwKuFsEEjmj3RAFfBhgYyiOFpWtRcysPK+d3/
 l2nmiMUS+4jdVO7CZEs59kv1/fQZHYt+1+1mOxEQYhMxLcU9h3qraF2OSr00fK7Q
 RxxD8BTelXw/pP/gMZ9fTDkH4A4jKYHKliUNZBxILKPkeGB6zkhQiKM+m9yZIjd1
 sV4ipFa3o61lY5e2kbTKoAjZv075E0m2MZ1AtDRbg5WTGzzkvdQgq1frrEvb/Sxv
 30tbpQKcj1EC1LjbvlmPvduYH0BQj286INjQf3d89ulJDNGsafRnagd4hENcsY29
 ekApuGAH8ZlfmAKLL9Nt+nu2e8eM50WXQPHlV/B11RFXrGD2Wm4UIT34J4H2ymJa
 7sUMxfsL5lKN9ae0YA7MMY1N9lttm5nuTdqOqiTclmAKGkZ/mNIuDLXFBxXO+2w0
 BRYint292ChNRUoPde9Y/0K5d1iwuHFfqraPFNl6S23YCfAKm8TmYMeDzHcvZii9
 D6Bq5fjjh8DeMfCU33snaLHMerIhR+17Cq9AoZmt71d+LUPd1TNQeCNweNcOLBtt
 XODeo/XaR7YlyxHQRzOARKCkBUmv4wFQWQbA90/A5cdD8IyR/Gc=
 =tftF
 -----END PGP SIGNATURE-----

Merge tag 'v6.18-rockchip-arm32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/arm

Commit d1bef995f6 ("ARM: rockchip: force built-in regulator support for PM")
introduced the REGULATOR if PM dependency for the suspend code, while
commit d1558dfd9f ("ARM: rockchip: Force CONFIG_PM on Rockchip systems")
later always enabled PM.

So we can simplify the REGULATOR dependency by dropping the if PM.

* tag 'v6.18-rockchip-arm32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  ARM: rockchip: remove REGULATOR conditional to PM

Link: https://lore.kernel.org/r/6025175.zQ0Gbyo6oJ@diego
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-23 23:06:32 +02:00
Arnd Bergmann
ca8f96ffe6 ARM: OMAP: SoC: updates for v6.18
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEe4dGDhaSf6n1v/EMWTcYmtP7xmUFAmjNyJ0ACgkQWTcYmtP7
 xmUtIQ/+LmqNTwXMPypu6hvdkTRH7rECUy8VmkEl7d07B8FlQT4idotN5qYc/dJx
 BlDsXCNZNh8E5iY6m87zr4F/LJaPTojTiM0kkrTCU0CQFcYvmacY9E+uG45jHJD1
 9+8S4d0GHoo2WnYX35tBKqhHVYrHbAsPsbqYAZ7UtBHPLzsZwaHaKMQf5fEWuk/0
 S0uGxVuyAn9TRr2G9kAlQVJaQwAgvG50JVITsvapeO8uGBWvlbuERWWkCR15y3d+
 p4qmWTEa0hdKP5axdj7LcxXDC1HttrYTW0+0pJCFt/t/ur+XD4Awf1SDBYcmQik+
 CiXmfDpkFB5k9KakchpUwb160YvUDisWxcgyy04ljxYsNLk7ykKUrf0esO9i7PGa
 Z0W/pVpgA3lUG9sqF4Zw6bVCS95pjwR4j+AHwOdPF+2gNNELhndZopMHDX5HQyw+
 CayovRwnvfhmBA90GCnu0sfPze6jjgwJusDGfISlLVfDPshC0TD8NSNo2eMHbJMi
 QAA5pPD18WyR+G+jCFx/hpRe4GQ8ujpJ9jN0i47/aulVE+siDMVyJzdYG3c6rtcC
 14KgWjIhW1vfWG4FCCG2xPzdLyvLYvyi6byjG79ZKNqaYQ6DaXk7EZKGeFN5Ztoe
 AtDFRZMba8v81/QvC5Z8SVuPos8s4nHA81rtfk8PHW25tv256+4=
 =FJF7
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmjTC5YACgkQmmx57+YA
 GNm1DBAAmfoV9JQn8B0LVsisC3o71qhvVUjHFCGVoEdn2t3U40z7yikgXALU8YWC
 oMj74OQEVVr1eU296bZTODUfU+EcPq9TG3+Imva6VSWxGgsBR9zKLzCzWjvbNtsw
 I8u7R9a2WgVO9frk7xWfWlUgM7mnpzQ8WJOARxsT3ueYB4vDhTe8BKk7tQr3YhtB
 eBB56GOBKk+CprhHZOiy0OuxRZva9OQVuSI3YArAlDvcIAK5E8FWEKKK73oJHk4x
 Xed4LkheZEA3+xHEHNP50geBQXTSFeFWwB9vnIKOCEZ6DRqi+6gOg/bjXolMfuxF
 78F3OSqVCZy6HqMkz31xQktN4I9FCNvixJjO9zsIwH3gFcTRVi8/2Q6hVulKBVjI
 dhgAL0xgy44EE2wql7N3yxc6H7/f4D9RfZR8iCRuKYKGP57tMns8BJD73lppl4ue
 yYq8EavcTYSZKv0Asw55PLykiyObuZXvGipTs5+tBuPJp0qiXmVtWkDVT9OUBqKY
 AZdKl0fmm8EgOf2LaKm1r+QpmhW832l4C4HE0bI0P7OVKcGhy4cJ4INMQ/i6aP8z
 jwmg488G/qap9RWPTqGw/P20seEkUzht1PiDStSNz2Ywsdih37ZL0twMfNB4S+XB
 NAdjyRnqm/VFtPpmmJInG5zuJ8oUwybiRbK/sNsM5CTUJi9g5Po=
 =wMwm
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v6.18/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap into soc/arm

ARM: OMAP: SoC: updates for v6.18

* tag 'omap-for-v6.18/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap:
  ARM: OMAP2+: clock: convert from round_rate() to determine_rate()
  ARM: OMAP1: clock: convert from round_rate() to determine_rate()
  arm: omap2: use string choices helper
  ARM: OMAP2+: pm33xx-core: ix device node reference leaks in amx3_idle_init
  ARM: OMAP2+: use IS_ERR_OR_NULL() helper
  ARM: AM33xx: Implement TI advisory 1.0.36 (EMU0/EMU1 pins state on reset)

Link: https://lore.kernel.org/r/7h7bxup0ob.fsf@baylibre.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-23 23:05:26 +02:00
Arnd Bergmann
1cdfe53d57 Microchip arm-soc updates for v6.18
This update includes:
 - low priority fixes to the PM code, in relation to recent addition of
   sam9x75 or sama7d65 SoCs
 - removal of the 2.5V regulator for low power modes since this is
   no longer supported
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQQ5TRCVIBiyi/S+BG4fOrpwrNPNDAUCaMl72AAKCRAfOrpwrNPN
 DLzKAQCYcsnUOllsMHYnPkxO+js6t0nwzoOCUBvTZFKO+87r1gEA1aznYKK8FadV
 Mmp6RUB7c9VNgYh7nocK8lqNcUzdJQE=
 =Jmao
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmjTC1kACgkQmmx57+YA
 GNn6Sg//b3fcj+8B2CdHK/hnBBaJUR7aJ/JCCxJjq8s/k14IMYoU+fEEwuyN3BII
 TwPGskMS10/APyqGL+m0rcIZoPGhnhO+Tm8ESjbAAygjrZlVW+T0PqwYeiCPEjjg
 SmSiS1gO4cLlL+7ZTbTf419gMC1/Nb5q+tAEdaHN5issOPmZEKa1ovkfmYt1FRNe
 q+musqyLLqYogmzKcmM+D03T6nht6HNhoszP2+cc1t6XpPvYL8alMH5sEiHsmIvR
 sWvw02OQPPMVortxJcYrab4EIXf3A+AW88oTPera9EbuO9yiHJ/ZEz0H37oNv3un
 5/EVp1UUGnDV9LtYefGcYymazGxbwBcYdSk6blRoMlstFObNvOqIkQQzaNtfU/S6
 +Tw4UT51zijxHHGCCJQJx5Pf8pZfntoE1kBg0HHwU+NNuaoGhwQPlYkltY1WFZzy
 LKTG7uZuCG9TjqpgPAPGgZo3uspQUPmWjTV0DN508Ek2jvjfUYpjePODSA00rDGB
 QqZGgkhvA/ykzWOju11UxWAWf2u3e1GNSTtu/rgGQ6dnU7uTpjmvxKZe8QFaCO8F
 OW4v5Wx1B0nINMm0xvUHwdzvoOJisVObmERYk7nomdsFUUqMheD5G2EE8whRmZVL
 NVpOChN5+zJrFOP7e4DIupCyOJcaHhkWYbrOfo4Nqg3WFyPuXqg=
 =3t5Z
 -----END PGP SIGNATURE-----

Merge tag 'at91-soc-6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into soc/arm

Microchip arm-soc updates for v6.18

This update includes:
- low priority fixes to the PM code, in relation to recent addition of
  sam9x75 or sama7d65 SoCs
- removal of the 2.5V regulator for low power modes since this is
  no longer supported

* tag 'at91-soc-6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux:
  ARM: at91: pm: Remove 2.5V regulator
  ARM: at91: pm: save and restore ACR during PLL disable/enable
  ARM: at91: pm: fix MCKx restore routine
  ARM: at91: pm: fix .uhp_udp_mask specification for current SoCs

Link: https://lore.kernel.org/r/20250916150328.27015-1-nicolas.ferre@microchip.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-23 23:04:25 +02:00
Arnd Bergmann
7150189b62 Allwinner driver changes for 6.18
Some changes to the sram driver. One to register a syscon explicitly.
 Another to add a new driver entry for the A523, which has two Ethernet
 controllers, and thus has two RGMII clock delay control registers.
 -----BEGIN PGP SIGNATURE-----
 
 iQJCBAABCgAsFiEE2nN1m/hhnkhOWjtHOJpUIZwPJDAFAmjK4tAOHHdlbnNAY3Np
 ZS5vcmcACgkQOJpUIZwPJDCVdA/8DabyvP4jSnWZZx+RJDUhdEFDRzRVAt88oA2B
 an7U/sCzzPtsI1qi+PV37QqziySQ1X1oS9W1Vzya5lBAxLBjuBG7z08oMyMJOsJF
 TsF/1GeBTPmYUUs/Pt5bei2Rw7iIW10RMRlzefo0zG4/rFAWqcySjgDP5PZw5uT0
 ztYFfznE6ufOx3vlD/37G5MbftIjgY/u4+xd2ahnzcokpN/Mn4wL4GGdfWJKBgl/
 WSBSQx9fcEj0kr1j6DUIqCDWmrSjSa3CfKEd8ARM85tezen+NF+1SLFBQysYjyWm
 il1XAgFxQjGB0M16y/n4b51So1yWIHbE7UaVBJVceJLYIRYoMaW/6fp9/EfPNpyO
 I7JNzGuN5P0JxeyJOY290wvm/BS9K8KW6E9EjkQRaxQBMPDL6eAF0hc0j9q2fvrd
 NjWVUICvS16gGjpZR0EDLTRb/hIf3NAwWKPoXfe8LqAKCovN0dCFlPsZjoAhKToe
 MwySbcVlXnOySRa4t/7qtHkvBpBmzXbbR/BQ3nqUr40XU1KpMtV0CkLzH3T4Xtto
 tkxio30xEhPWR/7PIEKl7YjKmLmJWtBw4Jq4ZMgfInzVyqwt0r2U28jdpbapj0CY
 5LaRvi/I+mGdhvuuyGKyksSe9N3pDzhJ7JAFKEXZ7vcqwxkGjC/sOlgEcTgn2O3+
 DMlN1ic=
 =9X/c
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmjTCwIACgkQmmx57+YA
 GNky1w//cQZjuYHQ9mmfJMYtfZHq4Kug0LqljOUQKD41EmZQic9rjSGhYYtxDu5u
 JW9FdIqpYjT79oYb0n3ATs3ajkxae0fVphqDrfmzDPYK6QbFuFQgN4cxF5mUQ6bK
 fx14HGqDc6BZEcsTuOzniAISapaa8sdrtlhHuFAuKiXaudGcTZi2MbHsbyOWg8KB
 DNK3Ri7gV5e2LDqvVyOphYGRw6yRIbz/kCROJ3FeMQkDnNaTXLtv54a4Gc4DmvbM
 0HjXujggNyh1DNxy4fEZTLk535B9RIpcItCHOFud8MOnJrbIkz+5QCz2mJh/dvMk
 IZDYlz1C2+uDQS96lGhk9SciTGIvtkZH47O1Gw2V7MVA43EwQxEUrngdaRQPvp94
 1kgvelvH+7rBJzmsXEBUtsloLwf/S9kSH1Go8SXH/gIhqGZRbkF1LMdUJh+kou6X
 lX4dAk+t/2bIR3SvLjqInTLjj5bg4P7EEPcSGq0dIktr/zup6vitv+NG7lCxfzyo
 2SUUtawgu0Z9SVjz9dBwYLeisdCC/YsYAIPZwXeav59aMm0uhbuMh0YqtMui+89H
 3gsG406duPQuS9xCmMdGzDgnI/8SB6T0SVb6PQ0LllA9ekp4ZG0iyBpqtuMGOcku
 VHxWyfzIXOoFaKqgPxgI3pP1O7QK6rgBvTrtaX6GjfeXd0YqW7o=
 =zN5T
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-drivers-for-6.18' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/drivers

Allwinner driver changes for 6.18

Some changes to the sram driver. One to register a syscon explicitly.
Another to add a new driver entry for the A523, which has two Ethernet
controllers, and thus has two RGMII clock delay control registers.

* tag 'sunxi-drivers-for-6.18' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  soc: sunxi: sram: register regmap as syscon
  soc: sunxi: sram: add entry for a523

Link: https://lore.kernel.org/r/aMrsfw-_v3IAiKH8@wens.tw
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-23 23:02:58 +02:00
Arnd Bergmann
be6d263680 TI SoC driver updates for v6.18
- ti_sci: Add support for abort handling of entry to Low Power Mode
 - k3-socinfo: Add decode for AM62L SR1.1 silicon revision
 - pruss: Replace usage of %pK in printk with safer %p formatting
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE+KKGk1TrgjIXoxo03bWEnRc2JJ0FAmjJnesACgkQ3bWEnRc2
 JJ1beQ/7B5TCcVSP5FtKQgPGMZmYHiC3jMwbRUJgRY+usW4LHNzEDrN5hXYqTnmb
 K/1OKmYgcBbxJd6NF5jZqjDjQ2AvBfgqqq/kYvzryCmbFbO3ERKL7hYWvPxUkuQ3
 vGGywUVeSfhcEPRDmxuYMoqcgc2yF1z0MRFEZ3ZhooLdrNpDic2PmW5hXHKTxtPZ
 ra/QMbyxIc9vODcVJtLGVbi+YBreXH9vMWmKvbyisg4VDBAGAMzkfPaWQP7sh5P5
 T7668n+9+zd7uu7ALcfLl+hzc+UCPpFS9BuOTtA6xDTNdRvl8iA78CBiwVjfVbK1
 /EO2Dx59Y/3nYd95zVB5JraqO2Q+kLjyU0qRRBZ9g4o2KghjJ+v+xV6t0y5wF17n
 HHK5DXh3ZRNcupxYDSH5d3plyaCrsSa8itv+SbQPni97jqdgoAWc3gASS46krng1
 H9TfxQzoZULmuT0z4ffSYl7TZP344hxwbxdNcEJa/Fgb76sI7BglIYtl0DmrxtCg
 8SlvX1VphFyC97dZfG7NBVJIo7Fp27CntDDLLIIMpdwEvdfHeFSLGVcYiXDL6Z7T
 8djkOdBYMXUH2fdFyhe8QWjB22wlwfICGqXtPapsF4yYDz2zl7hysu2D1CFPdmcI
 saGROi/bKDgJjXri9gf2ItdMZ/1yFnXl2LqW80ioqiLwnbeFl70=
 =YbaZ
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmjTCqcACgkQmmx57+YA
 GNnf/xAAwK8s2GBoske+1I6HRTKp7Mz+Dw3j1EKZtScNS1KcROg+2fbMNC+poHrC
 HwU5/URmnEsHkX9x4wDAn7q4wLEYTzFVC2tFW3kV0pmVltZWug7R7jfgQQg/ksay
 apfrDy6io/vgRUbXN+Cow4Nr8jSDdT/oj+b5z1CLIRDp2bqLhqvqHMFBePLIDdr0
 AFyh/WUqSGT4DkZaD4Ng2SYjIVeyDvFN+WKBB8u2LO2S+BGEHI6h7YDRHRL8oBR8
 mJs3PFGTVP0dJuTEpxZiF48Y1p5mEl3k1Jcy8Nu/p5mcU8/o7Y3nWKZ4BwhouGdD
 3nE8HyRxOvXlsMCqgzFJNMmdpL1qqaOgQjUa7Nm063eXEXsnv61E5hdxvGl9dTwO
 zDyEzXOFwCXZjH5Gtsca0/DOMtShI0pSBmY3viFu00Bcxr9jrO8DmiRIxCrExyol
 uNQgfGmFLng5+yIWXxjYLh2oyqbMR6zSb7mA7BsP+Kc7TgFzzqecp2cAaFGYCcck
 XumFusd9HZXM4wwABEdywQZj0WoJHKq9RLRqNBt3JhUqnhlHyINiTR8uVDaopJc8
 jaxPSZ7p78QZbiabjIYy0o+QlozmHVkhzScVY6pEltoKxczqI7C6EysWup++zPh2
 82G2shIAN3RIDHVBzjb50d5ryIXcfVC8siL0+TgJoeLPz8ySaS0=
 =tx5G
 -----END PGP SIGNATURE-----

Merge tag 'ti-driver-soc-for-v6.18' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into soc/drivers

TI SoC driver updates for v6.18

- ti_sci: Add support for abort handling of entry to Low Power Mode
- k3-socinfo: Add decode for AM62L SR1.1 silicon revision
- pruss: Replace usage of %pK in printk with safer %p formatting

* tag 'ti-driver-soc-for-v6.18' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux:
  soc: ti: k3-socinfo: Add information for AM62L SR1.1
  firmware: ti_sci: Enable abort handling of entry to LPM
  soc: ti: pruss: don't use %pK through printk

Link: https://lore.kernel.org/r/20250916175441.iehltsk2377rg5c6@alike
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-23 23:01:27 +02:00
Arnd Bergmann
833bb53d5e Amlogic Drivers changes for v6.18:
- device leak at probe in meson_sm
 - fix compile-test default for meson_sm
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEPVPGJshWBf4d9CyLd9zb2sjISdEFAmjJCIgACgkQd9zb2sjI
 SdH3Yg//bew1pt0igY75eZ3vuBZ4AwwDWrOveinJhWk2bOiYl+kX286D+Lz5lFE4
 B/8xbd/yOVvGAa71cpn8xCKFvnw8CjG76t/9ooHMPw1evPcsRhjFC8uZqtLU7zMB
 hUdmgMs1Ma7yes00fdsRlK1oSc3kE6IDa4sKnKtO33ej5FwrY2jvV4T87DCTBUYL
 kb3IAMFJ41KV29lky9AVS8tvCSQA1ZPo6JJlg3fksgpeV/+NqySXECKv+CzbPWmT
 fz3g4QAc36RDQq4T+dZtcEewA00xb2vMsO7stOT5n4EtrlYn3qwP3injySfPMT/o
 BIABl/ZAUHYFf9YlIk+GxXoMYbRiaEBK+SxV4f2DB9rLz+3qgy5kujw7bLlI1Zdl
 uKkg3r269k/yapCURbsd4k/Lt/2FP86wKhehM/nto4tG39KW/X1kIzzsYHoVdGYL
 nkhGBTnzlsfwQcVvWQwmNnLuMgb1iFyVnYJVXA88Cuc98pEFl+IDgeD0lX5eo6ET
 dPNKAOqf/ScOGUvpsWb0w9Y6XhWW+B/U8jH3L1ANB1cuoxqazavz3BTtIMg+8PdU
 vRJZS8B53+w0/23wLC1JiVI8QaBlhQMy2QiizYf2d2OcbCBfcle0R8S3FolkjY9G
 N7d7qfWczFk7ekHDpcLNmBkqOk74CfCvk85HCifMcGb8dNYczmo=
 =+Xpv
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmjTCnQACgkQmmx57+YA
 GNlRcBAAtrqu6wEYI6v16HCAGF8qEsG6ZoyayyDLhqezKWiq5JFpoL46GVGh7Nj6
 52SDwYCS2ttluoYb7qQyNzA6CX3jBDlc+C6zjodqscJBrwJVhJGUJdcoNDFqgs81
 h8nT+lqoaxEcKGW+Q6vDgm12TqbFAJpn7vK4/rEP830DL612424IXTHr6gLe4Q0b
 GJCGrvXf2S4CXru6Y7a1Z7nQhHDf+HEIlMUDlrpaKzuqzKxDGbWKYQLjATV5QQSQ
 /6QBIArD/N+slnqkr+0ujWTmi50HSDbW+Hz/48OUQibjak+riBssRyot0vBSV//2
 ZCDicYMPFn9797knqbvJrPzZwfpAovH25v8EAb/nJ+Bhwi57NlcZIS3PGrV1R7RO
 bB1wr4mY36OOb9i7mY58tpUJNB0Z8LiarL5ooGjcTBw87p4IqyqVD1QPhr80xZhn
 wrn3ASHOTkpWMMSl2ny+V9B4kdbVIvP7phnSjDpMXZtVxwkn409zqn8SDmdDjQW/
 Xynd0IQdz9Y2bPjoxg9w4UQcfJpM646g/3fU/uiuI8PVH/S6N2dgF3ib+TW3wFbI
 mZYoxEJEzsN8ESqzUt7HpubRETQS5dEAUDejCID6uwcl3f58ml46TA4xzw8NDZ0S
 GFtV8+6544PTiVyvClzcwia97+TmJsPjn7wu11mSG6jDYhiqvg8=
 =JtYp
 -----END PGP SIGNATURE-----

Merge tag 'amlogic-drivers-for-v6.18' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into soc/drivers

Amlogic Drivers changes for v6.18:
- device leak at probe in meson_sm
- fix compile-test default for meson_sm

* tag 'amlogic-drivers-for-v6.18' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux:
  firmware: firmware: meson-sm: fix compile-test default
  firmware: meson_sm: fix device leak at probe

Link: https://lore.kernel.org/r/003cb467-531d-4a8d-a97f-19d59154132f@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-23 23:00:36 +02:00
Kees Cook
a40282dd3c gcc-plugins: Remove TODO_verify_il for GCC >= 16
GCC now runs TODO_verify_il automatically[1], so it is no longer exposed to
plugins. Only use the flag on GCC < 16.

Link: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=9739ae9384dd7cd3bb1c7683d6b80b7a9116eaf8 [1]
Suggested-by: Christopher Fore <csfore@posteo.net>
Link: https://lore.kernel.org/r/20250920234519.work.915-kees@kernel.org
Signed-off-by: Kees Cook <kees@kernel.org>
2025-09-23 13:59:39 -07:00
Arnd Bergmann
72af4030be Apple SoC driver updates for 6.18
Krzysztof Kozlowski asked us to move away from generic compatibles:
 - Adjust all dt-bindings to use apple,t8103-XXXX instead of apple,XXXX
   as fallback and add a comment that the old generic list should no
   longer be extended.
 - Add new fallback compatibles to pinctrl, pmdomain, spi, and mca
   drivers. These changes have been Acked by their subsystem maintainers
   to be merged through our tree together with the dt-bindings.
 
 Support for pre-M1 Apple Silicon:
 - SART and mailbox gain support for Apple's A11, which are both
   required for NVMe.
 - NVMe also gains support for Apple's A11 and the nvme maintainers
   prefer that we merge this through the soc tree together with
   the mailbox and SART changes.
 - SPMI compatibles for A11 and T2 have been added, also going through
   the soc tree due to conflicts with the generic compatible removal and
   because no driver change is required.
 
 Signed-off-by: Sven Peter <sven@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQS3vz815OHsEaWy0u9EEX0kKnUe6QUCaM6aiAAKCRBEEX0kKnUe
 6bCKAQDv0wBDcOKPVGXqsUMEk9rGlPh89f2P420LH4NbuCy10QEAhB5kBM1qT97o
 1IbIFWlngNyk3a4B2LSUQcj7pdbvBQU=
 =e1Ed
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmjTCjQACgkQmmx57+YA
 GNm7qA//Ykk5570mzFoeAOKj6Vcf8WstyoVllgdfU07WOUYbiX+KnleUZcfHu8gw
 3bWdbKKNOX/PMjVIESCSJrwIzgVBmFRbD2SMuxJs4XTpbw77cDvBl1JV/nzmiSX8
 Q+mco/RoYOqU8/ZmQKbUt4TduVlYgVEGGgypXWZ/xedpNGtRmk7u1OyUVj7qFNna
 Mb6O1UXxigCJanbU3yAwJna0yofslu0bnjf6MG62Dq9mZLmuVDIgQ6V9c7CjGT06
 00ucWkyLr/Ktpjqa+KObrMBQa/wOA5HGQm3kSCIn4EEf62DPM11IlUhDuoP7nbFp
 gIpYaWIcPUaExktMEyMiIDMyiszThkg0+dFOfkKl4gaFVmSNAuSAROcbMhxPaPpa
 ORGYJozIwIpmnfuZbyUySiGizwBcj855Jo7pgMvvXeBQ9JUKUyNZ2PbIR571jLFc
 Hjqmp2BzE+K0R2uQm8r+DnLNVLM1jMXI8VE1oDbil5PLyx8oWrQ/hZM6cigZ2xkc
 oTgtFrpQk6waBOxbr7JHUoADGX4VtnVpjguQxrtH6OVPVF1mCw0XDXXqMR038rT+
 ttyQSLYCYNve4lYWtYov2YsUsLKPawyK75JXKiKCkgxJaRn5nzah8klX8xkEJyTF
 UY6W/CnDhM792w+mYgin5xAZ7m5p6EGOiCsTaeGmUd4Vd07T4E0=
 =Nq7L
 -----END PGP SIGNATURE-----

Merge tag 'apple-soc-drivers-6.18' of https://git.kernel.org/pub/scm/linux/kernel/git/sven/linux into soc/drivers

Apple SoC driver updates for 6.18

Krzysztof Kozlowski asked us to move away from generic compatibles:
- Adjust all dt-bindings to use apple,t8103-XXXX instead of apple,XXXX
  as fallback and add a comment that the old generic list should no
  longer be extended.
- Add new fallback compatibles to pinctrl, pmdomain, spi, and mca
  drivers. These changes have been Acked by their subsystem maintainers
  to be merged through our tree together with the dt-bindings.

Support for pre-M1 Apple Silicon:
- SART and mailbox gain support for Apple's A11, which are both
  required for NVMe.
- NVMe also gains support for Apple's A11 and the nvme maintainers
  prefer that we merge this through the soc tree together with
  the mailbox and SART changes.
- SPMI compatibles for A11 and T2 have been added, also going through
  the soc tree due to conflicts with the generic compatible removal and
  because no driver change is required.

Signed-off-by: Sven Peter <sven@kernel.org>

* tag 'apple-soc-drivers-6.18' of https://git.kernel.org/pub/scm/linux/kernel/git/sven/linux: (32 commits)
  pmdomain: apple: Add "apple,t8103-pmgr-pwrstate"
  dt-bindings: spmi: Add Apple A11 and T2 compatible
  spi: apple: Add "apple,t8103-spi" compatible
  ASoC: apple: mca: Add "apple,t8103-mca" compatible
  pinctrl: apple: Add "apple,t8103-pinctrl" as compatible
  spi: dt-bindings: apple,spi: Add t6020-spi compatible
  ASoC: dt-bindings: apple,mca: Add t6020-mca compatible
  dt-bindings: dma: apple,admac: Add t6020-admac compatible
  dt-bindings: clock: apple,nco: Add t6020-nco compatible
  dt-bindings: watchdog: apple,wdt: Add t6020-wdt compatible
  dt-bindings: spmi: apple,spmi: Add t6020-spmi compatible
  dt-bindings: mfd: apple,smc: Add t6020-smc compatible
  dt-bindings: net: bcm4329-fmac: Add BCM4388 PCI compatible
  dt-bindings: net: bcm4377-bluetooth: Add BCM4388 compatible
  dt-bindings: nvme: apple: Add apple,t6020-nvme-ans2 compatible
  dt-bindings: iommu: apple,sart: Add apple,t6020-sart compatible
  dt-bindings: gpu: apple,agx: Add agx-{g14s,g14c,g14d} compatibles
  dt-bindings: mailbox: apple,mailbox: Add t6020 compatible
  dt-bindings: pinctrl: apple,pinctrl: Add apple,t6020-pinctrl compatible
  dt-bindings: iommu: dart: Add apple,t6020-dart compatible
  ...

Link: https://lore.kernel.org/r/20250920123028.49973-1-sven@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-23 22:59:32 +02:00
Arnd Bergmann
3783cdc1df More Qualcomm device driver updates for v6.18
Introduce support for loading firmware into the QUP serial engines from
 Linux, which allows deferring selection of which protocol (uart, i2c,
 spi, etc) a given SE should have until the OS loads.
 
 Also introduce the "object invoke" interface in the SCM driver, to
 provide interface to the Qualcomm TEE driver.
 -----BEGIN PGP SIGNATURE-----
 
 iQJJBAABCgAzFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmjPXH0VHGFuZGVyc3Nv
 bkBrZXJuZWwub3JnAAoJEAsfOT8Nma3Fn/8P/2cgGz6MOdQJA45IEk7Staab/XA4
 5l4p8gde3vro9JR/mB+zC/wg5ULg1fhmQwBAFNUfvuyCChyPVoIgtaHXh2z5yvrt
 nKwjmeetw4OHw53edBApll8r5ahu4dtJyiK3WcMhFV6hHle4lIaBjYBLLQ3ZRNpd
 1OY/AO5yYxStzQvYaEBVRbDMZF+i1mIzbeIjVPwe8gy1MaGreGzpXCvmf6eVbgMt
 SVN8bhTXsmg2zEh9Fi8mzDKgkhT9jK7HrE4n0/Hum8jER6o+ClgPW2OjpVJHIVPO
 TTeKy3Qd0EDFnI8Sbn+BcxRmWlKAXXmhosQxEnP+2/okpegPGJEfyQufpKOoyUcz
 qshJUX8/BP8M72Pm8LBnbWq0bqFQSW60b5HNC67Ih0edfIgpqB+xpgMTtgR8WwHZ
 KVsoGiE+yWfR+qPk+lBtZD0zWqKYT/qj5575YGxNvlWc//Itcy+NIg6Y2wkEvX8O
 BZI28+RZFoeBSKa3FqyBLHozul+WcZB3mK5SUiZFLWQlJb5mrgfE0yVyvVw/UgN3
 jhJ8QQCI9x/Enm7OhXkWsZik93YwdFl0P4CRALGVr4wqnD3n0IjkmeXoq6r4265B
 LuoI5P41wWRR3x7Qam0neOk930pgZ95punGM4/geWW0nMGbIXCNoU7yJ64czS9Xo
 hbYXWu9OXys+nCF8
 =TulG
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmjTCYQACgkQmmx57+YA
 GNlD5RAAsWpUIaZsu3S1aBl/B2qHJJAIuDsluJ4kvCSlVT+51ctRqyTd/7vxup7Q
 zBUojCCAmdLnAkym5H1y9qx3Jen1dC7BE9tYAbAjFi0NQYKdMaueik2EVffdQjoJ
 69BBpmGU/moABY/+bU2OH7xfECq2ZCim0pPmQ2jMEekpGRfVV4glzjzKItyIFBsj
 2C/sIccnr9jlyrtMkrh/ACitnyIvLstZpR70SXY8Y1yNdkYyNn7DTj+H7bWhLaZG
 35VmqIWcxmXUBckxBagQr8lgAFsOGAYF7psJnVZRR9r/ivlA1V92giE92wLh5mO9
 NBCz8f2zhz1IhHfywUBU2f6zHb4xI3UATyHxeFZ7XUHBw/FIMI/x+JyZgrkxIszZ
 mFs2Q/T9SxHmwIL5qfxQvQ6zHOE/My4oTQrchP5d2fQcQ2j00xVpB29K9QZVbwpR
 gmEhdFOBmnaZRPVrD6kQRaQdqaEbgOxxJOWLfTe1ezuS7x716CUcp/AoSZYzEqTh
 dEr8c+rXr4bg+okk6y6zl9gn4qBWOYmzs1H+2r1Duh5tVms7LkmESlY0/ciEGaX7
 /fvaVS4LeSXMcUckJ6guGdhXNAKQD7l4ZCz7xmnyPgu8urf9pukUZ81ajZiXAC0d
 bTStK3btx9AEvFK2b/MzEoN3Tcz9f+eGCHJbjI8cjQpmNnqYDgk=
 =JuVO
 -----END PGP SIGNATURE-----

Merge tag 'qcom-drivers-for-6.18-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/drivers

More Qualcomm device driver updates for v6.18

Introduce support for loading firmware into the QUP serial engines from
Linux, which allows deferring selection of which protocol (uart, i2c,
spi, etc) a given SE should have until the OS loads.

Also introduce the "object invoke" interface in the SCM driver, to
provide interface to the Qualcomm TEE driver.

* tag 'qcom-drivers-for-6.18-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  serial: qcom-geni: Load UART qup Firmware from linux side
  spi: geni-qcom: Load spi qup Firmware from linux side
  i2c: qcom-geni: Load i2c qup Firmware from linux side
  soc: qcom: geni-se: Add support to load QUP SE Firmware via Linux subsystem
  soc: qcom: geni-se: Cleanup register defines and update copyright
  dt-bindings: qcom: se-common: Add QUP Peripheral-specific properties for I2C, SPI, and SERIAL bus
  firmware: qcom: scm: add support for object invocation
  firmware: qcom: tzmem: export shm_bridge create/delete

Link: https://lore.kernel.org/r/20250921020225.595403-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-23 22:56:36 +02:00
Arnd Bergmann
2136c694a0 Qualcomm Arm64 defconfig updates for v6.18
The Qualcomm X Plus platform gained GPU support, enable the required
 clock controller.
 The support for Qualcomm QCS615 platform improved, enable the
 multimedia-related clock controllers.
 -----BEGIN PGP SIGNATURE-----
 
 iQJJBAABCgAzFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmjPXX4VHGFuZGVyc3Nv
 bkBrZXJuZWwub3JnAAoJEAsfOT8Nma3FDaMQALmJszuX4zmWkNcN+wwHBVvpJfq7
 E7SxHCnB2ePM3s7wHdkTSCF0/HL9pKtZHXwJws+EiIL/AYelracn63gLbRVgR95l
 cpaumMQtj40UFpF3HlmVXA+ea0YTTPrc1hUUOh8fWc3ITPD6GsQEg6WKUhjFtsEh
 U6THDOoqjjPawA5i3Tir9o7kaGqoJaXw+J4GKXiGz93/e5HeDVVkHp25sS81is2h
 L3CrNRhpXNaqYJGoZrVz+MiVqvYhYL940WN58VykIsj4BF/B3n6fxH7385/r0JJO
 CXrKHNDlnUhw8FiR+D0nPAYNNvCyHaowFD67lmNzaWFHZNpdz4+uJbczpAZrbKjU
 thSTRglE84L0i8XiXdX0tWBWtE+ajH6LLSmSZfp/Yz+aAlK9SB56EnOyAtw3r8T5
 kNP1/ypiLNkCX4T6sy897YvmuFWxIUQGv0T9IuDNPy5B01n4hf/zX68s47P09+8/
 1jDSDx12t0Pu3dDGukYHdmTZbNyTMDUZ2NfofFViSVwJTxgSaThOb1oornCpMajO
 wWPgx+1cQ/RCRBnRlehzR8nPdym735IL+T4VSoQpRTnodd8UT+ilGQcycF/aY4f7
 iVbo1KRBP+NVCtGVZtU72rD1+6LZFJ1lxD8qgDx/yhUBmQcgyaHBMnUcGzCkhStL
 X0bMTSL7jCtL7adl
 =zT0i
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmjTCSkACgkQmmx57+YA
 GNl43RAAvyHh55Ales+0UYJciqzevDfJgiyY+r+ZviBuNW9LMzZf4kmCqCmSr+Nx
 ThgGqQTzmKa17g2jmbJZBgkMEnXr4zv3AUgyFyr8qFt0vymnPVGM1eQRshMimwXI
 Eh7QgQKiQUiDGZYlgo0u9nHTYsfpyvhvKrW4oo3hABPiz0wAEOkD513/FH9e+rYV
 1bebV079C0vZpN2MSxe6oijUD+zj/Wuo22FJ2vFOe1kVYKVfSg8KutOQZwLi4VUU
 nf7s68d8IKOvoxKDzH1HavUfyIYLg53wmARV19btDwe8CEp1gpnpLYzPGOslI6i3
 va0n1Qt+1t+s0XS5zGN9WXK1KnO8UoGC/wDyxSgBg0flqNuxdQwd6M9iNbLWmjlN
 J8M50KyQR/6K7xMe/SjDU0KVQ02mMUMiv0eGOjilfyCmYxwoiS0RucX+Wrl+9bHX
 75pKGtZRw3Q+rqdmT3msECI0SFN+DJDFeCEizDwG6hw+/GqzBjK29BV8EgL4KRqZ
 6x/q6akMZKD9MdtKe4ekDYigP3Jh7MAWvyiVQkyPmr6g/ooOrW7t22GLX2NDmViE
 mQrtmea4zE+mFyOrqKVBxCOc5DKkfBPS/SZCBBfj4UJTn0iZAl13RQbrTM+YimPM
 XaCF/1ILGPOc+KfdPUl3cHirF4QKSokQzceBIGgERUelK4i12Mw=
 =Q9sL
 -----END PGP SIGNATURE-----

Merge tag 'qcom-arm64-defconfig-for-6.18' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/defconfig

Qualcomm Arm64 defconfig updates for v6.18

The Qualcomm X Plus platform gained GPU support, enable the required
clock controller.
The support for Qualcomm QCS615 platform improved, enable the
multimedia-related clock controllers.

* tag 'qcom-arm64-defconfig-for-6.18' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  arm64: defconfig: Enable X1P42100 GPUCC driver
  arm64: defconfig: Enable QCS615 clock controllers

Link: https://lore.kernel.org/r/20250921020612.596098-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-23 22:55:05 +02:00
Arnd Bergmann
4a77e9ed4e Qualcomm Arm32 defconfig updates for v6.18
Remove a bunch of orphaned options from the defconfigs.
 -----BEGIN PGP SIGNATURE-----
 
 iQJJBAABCgAzFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmjPXeEVHGFuZGVyc3Nv
 bkBrZXJuZWwub3JnAAoJEAsfOT8Nma3FP0gP/0mNX4LgE0+ALnEd/zimmYXtAYYQ
 BR+fkCPvQkIN/RRa5idG3SaRdEedzw2q+/UM6eVWQb7DNOQ6A7BZO/6is9tNgKKm
 n4qiXY+QT1Fk0byxFzf511aC6ywCdBJBriLOTiv5nwAaCPuqQg53ihHwzIlCV/rn
 Js5NMoz/bsyWuowMIruHsyG0UAk9XIhDMrqbrAMeZFYwvpE5iKt2dw1ra5sssSQq
 3Ck3k07qA38L3ocPoJNvg7ff8I88L1kaiOYOYqxN/dIHvepsIbSNx5bf44yHf3OV
 eJQ3Vif+Qed4ptoykK5kPc6hW/jp4HdOWv5J7rPQ33x0DqiBQCO5dpdPcWNWr/N2
 boD69fTnDqbmE6G4KYLoODZeAtq+qdITA2IvEJQ9fOalmJr+i9z8bP/0zxQCwJ7Z
 u+Y060fa0ciaO8EPumcHgkyJavadHg28wHPrv1U/XfsKY58ZKbnFtlpYz+on1S/w
 1OQfHQeRNa678WdGEhkDwvYJXnzksxmXZtZVJVh2ksN5GWr0RAXz4HiqRMsQn7le
 UnQskVh7JY1mXJknwoPSmKXcqXOaj45U/OHgG6LHJdwa4D8wecHNrPMInAUZi2wi
 3yd7mKXmaJRF+sTV6SyvLhxvX7jJIFpPxPQEbimLFZkr2slWQEF4MMyizhvuxbQA
 BaCvD24maKds9ErZ
 =ZhtZ
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmjTCQMACgkQmmx57+YA
 GNl/Ug/6Ah6hFa8wjR5WQ8dpq8PKLvPOFAs+WfCELCH0ngioo4RKWuAl1r1FmUlH
 CvGVV50QoPmHYlARf4QC0g03oyrH/onJKDh7ysHXyiZ66F0OvSIN9VJzQwib+u52
 xk+wJ2TBgZVJaI7By1bBW6BNyDKf9m+W6BMKicwxz6rwexe4hQRneQ2V7iQXuK6g
 xAM+mzhUqCzjschOc7NVVQduBhw/4GidzPP87eCVi26Jbl0j6rL6SbcIlG3jKoHM
 t0Y5zQZaZ5gLzgR+HwJLdEOVuac63110A1QKAkeJECfd7DAASx9pRYNZvs6l8ZKz
 5sEgYzJ+Z0KWCayv3EHinKz2Aklt5WO2Nvsut7hUKBm8z7z7/EkxXC8Z/hkCzH4r
 31c1H//Kwk7s33x9TKDm37+HojqH4ZkHBxwMclYhdBwAGMi9I8nfMlltgQYOT/3o
 DGAuwVAvC+RXrw3+rCr9m3VQ1N/rsj2og+BSS7wHACF1Dk0OxSCc3qfa+Jhti43C
 7q1w0XiL+oW5k5CoW+0bJPv4CighGf6oUrOtkjF1yWL0Ko8RFGaJDEBL4484IbvV
 RYvt52XEsrIW3GjNUnNDy5YR4D1rxuosmc6jF0xP5DTcpvilhldxzMvTIJJNy3KI
 OXNh3ZP4HxJENsoQ5TmCBl5Pgw2KYbScZ9Ff23tMmuA6B7HKNeI=
 =i7Mo
 -----END PGP SIGNATURE-----

Merge tag 'qcom-arm32-defconfig-for-6.18' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/defconfig

Qualcomm Arm32 defconfig updates for v6.18

Remove a bunch of orphaned options from the defconfigs.

* tag 'qcom-arm32-defconfig-for-6.18' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  ARM: defconfig: Remove obsolete CONFIG_USB_EHCI_MSM
  ARM: defconfig: cleanup orphaned CONFIGs

Link: https://lore.kernel.org/r/20250921020746.596400-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-23 22:54:27 +02:00
Arnd Bergmann
0d4495122a CIX device tree changes for v6.18-rc1:
- arm64: dts: cix: add DT nodes for all I2C and I3C ports for sky1
 -----BEGIN PGP SIGNATURE-----
 
 iQHLBAABCgA1FiEEE9MyVaemtW1m4wM6rfNrQFP6hVAFAmjSFZ0XHHBldGVyLmNo
 ZW5AY2l4dGVjaC5jb20ACgkQrfNrQFP6hVBEjAv9HvN2CQKsC0TrT2VRISVqwUZy
 SSOgqVMDlyAlnprdKhgap+R1feQdiewpz0f832RUyUbb0aUOw3VteH6HYCIF5cKk
 YJ7PK4pfG0A/eh8bWdn2eG8YULPbBIhOcoE1Olrl0Rbh2cu8FZKtK0eSEooFq6Cw
 C9oarZqTAiIhobNzvpmBJJiyTzkvFOExjt3nTzCOfKDCDxTZBUhpp82MF8AHC8yG
 b0DoXESIK/l2jupoUgJ6M2GhzoGb2Pv7j50Sz6ZlqiySbSTkJo1x9MceoyXN2Li6
 UZ5cQQup2EBI9uDscEdyvXX3xjyNIdZBdIUbRAMhyj2zURVzOQ7TsiyC6D/ixV2d
 VAf2AiGqeZ1OTZc9SAhFPJe2dlb6CSosfvT/iDBkNtJX+1SVlZM2KzNJlA2g8jdJ
 hry4IhPSQ3LpvXXngSg9i/yHNUeYXR8vC6BaQzmiMThQ8kJRhhmUiahWgu41k/oD
 D9oaEYjcmqX/jMpfBxwToID6dTbCdmgbSBCpIYcQ
 =yym6
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmjTB+YACgkQmmx57+YA
 GNnHEA/+PTn0eOciIxQchfo21hkdM45GeKIWFx2OkkAhh/P1MpIFMww1I+whYL/6
 7hc6x6LXV8E+W51iMG1yHiysc8NUz6expc8zCYu3KUNQoDD6Yzs/I5mxMemet31t
 7wHIh3zomFSsYIrBIspHjhH8V7+cCkMFiY+p79kpDaU99wDdI8sSI5u5IbgBSUAO
 NAS9bUOg7NzuOHX5viQ6c7rWLtH+jqfz+OXBlF41pJSOZRAHWbqmYZBevbWHlg2Q
 ExgIz+KRU2f6Sofa56AG/e7LC+Myq/KCBqy/i1GeIR27d8XE/NwFNCd0ewRepyad
 eST+STl/mv3Tinvhl877Ufbu4grOBA0XbyAslSs4pr26GO8OPfFlts0m1FcO7lQU
 3I2CrvcWDDEL5LMW3GPKTAY0vl11/uDQCgsnFUvl+5SMLbTUx5TIXEzc1GR48bf9
 infGNFBsELuw+a5szP5mpasg3rBiGmWCiOepGsi1dhN8SiNz0s1fzkOYOU+EyHuq
 mlm+z5YyfrZXCDtOgnAhUzyXHxNpQflJJyb02hIzn22pYq9z21y6KB0OT9hpJiXu
 90pDZyIlZP9wVURx1uVKnX9uecoUhZJJt87nCAqkkkV5+Ay/Q2ltXYfTVpYIgqBP
 CFzeIZVVavpnr8F4w8TN2LZszgEwMTeqndQLG9QtLegTdodT4V8=
 =pLI6
 -----END PGP SIGNATURE-----

Merge tag 'cix-dt-v6.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/cix into soc/dt

CIX device tree changes for v6.18-rc1:
- arm64: dts: cix: add DT nodes for all I2C and I3C ports for sky1

* tag 'cix-dt-v6.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/cix:
  arm64: dts: cix: add DT nodes for all I2C and I3C ports for sky1

Link: https://lore.kernel.org/r/aNIyhPSV6lJaZIvR@nchen-desktop
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-23 22:49:42 +02:00
Arnd Bergmann
07d0eca078 Microchip AT91 device tree updates for v6.18
This update includes:
 - sama7d65 and curiosity board: addition of gpio, leds and usart3
 - sam9x75: qspi node
 - one cleanup
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQQ5TRCVIBiyi/S+BG4fOrpwrNPNDAUCaNGAEwAKCRAfOrpwrNPN
 DMcKAP9SyqbEJQljmeVJR7W0dshBHbQOmtcTe58SuwqPmSJdCwD9H+1Tyiwl4RiA
 pMtFabNPpO516HDDwSUWABI1z+Ut5Qg=
 =J8FR
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmjTB8IACgkQmmx57+YA
 GNnS9hAAlAEzV6ybieZDWa07llXDaNKmO3jvqNPVJ3cNyuhhWidFVq3vAr3K13ba
 iViuYIKqSLy0v0dS33xFIVK2LC4nGnsC5DwJlRXetjScFP/nXBNlcJj1ekpjxtqZ
 B4iSZYy4vK2L/wzxxL/erdTibOBuGof5Ojyx8dbiRFLMB40IKygvoB9jn+GZSqH8
 lMqxGGZhg/5U4c5joJlI1WDb87xIrvU80FJOjIsV8fT5uMNyquRWSjFp+iS/nFCR
 Z6eKTXnj42uE64n/h+u5PVwmW57gq8S9JgHygJPeKDcNX3b5x3pbJqKKyya3NoWt
 7uxnc55v8xv5BR6YqdjqAwEjnz5PMTafKnAMsp1nINg8VtUDc63+QDpSbb1RfN54
 xlJ1WCdn/sj7R54Jit63N/lGZ2AtMCSBZi2HPzKf7hi4MhJIlhqDfqvj2XExwDEc
 TkZ99Xtnb5WzOjqS5pkUpBrqdLOprqcN+8PWPsz71k/eRiIPHiK5iK4652huwvfr
 rpqb7mT9dL7Mu9FdJkZFvlevMiB0q2hRLu328mC48sH73UIT516k76pn9iD5sR8p
 UzzqMydyJvCG40ArU9MI7W5TJcwblaoMCwA3NdBZa9p7V2TV2HJG3lJ/ixRyCSPB
 myrHMalmSKbfO58/EjRPr6KHUZvrC5PlftXphAygaN1af5yV1QY=
 =7Okg
 -----END PGP SIGNATURE-----

Merge tag 'at91-dt-6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into soc/dt

Microchip AT91 device tree updates for v6.18

This update includes:
- sama7d65 and curiosity board: addition of gpio, leds and usart3
- sam9x75: qspi node
- one cleanup

* tag 'at91-dt-6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux:
  ARM: dts: microchip: sam9x7: Add qspi controller
  ARM: dts: microchip: sama7d65: add uart3 definition for flexcom3 peripheral
  ARM: dts: microchip: sama7d65: Add GPIO buttons and LEDs
  ARM: dts: microchip: Minor whitespace cleanup

Link: https://lore.kernel.org/r/20250922170346.40876-1-nicolas.ferre@microchip.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-23 22:49:06 +02:00
Arnd Bergmann
a08be517c4 Allwinner Device Tree changes for 6.18 - part 2
A new board, the Amediatech X96Q, was added.
 -----BEGIN PGP SIGNATURE-----
 
 iQJCBAABCgAsFiEE2nN1m/hhnkhOWjtHOJpUIZwPJDAFAmjRYG4OHHdlbnNAY3Np
 ZS5vcmcACgkQOJpUIZwPJDAnmQ//dV34fTTDe/ayNdUNZNUIMUu35FeaVbPoQ6Aq
 kAar+DthaJYAYc/DtC9c3o4occDk0YOkGhezDPMMmFIYX2EhTpvnDz4txjAjwI2I
 arzV1zMQyJCxJ00XBCq8//fIXo8ffpw7E5mERWoZXwiZRCNRDv2klLKDiW3lZDbt
 coLQ+YYgZrzEdj0ES5nfHp/2cietkMsWaKCErnHGkE6fVOoL77ShjVi1LlHXTyai
 azhZgyB3/h2lDjaqVVaMEMjf+IcfE8+ur8V0j1JzIaVewdNxEJQNYqsms4KaR78h
 8ZVoqZZfa1fgcVCQ2jMzduA7w5eOkd4+J3w2xAGvTO8NTbvBGGBfEJH7cLTc7+zM
 IDQiczL8SOqNc+ArikdB38q3dzsTi6lxPlHgpdt/IAGtp6/6Eb/cIwQes2cqOMNk
 IjQJjWmcmQNdippUrZliFF+351/Ls7Bq4k07EI3km6jrg6XWN5pBqN3JWhp1cfDW
 EBokvu3N0SYH6iI2CS/2yBXvgykT5vGE940Gc/hlrj4ZdlVGSx9z3I9TIHInoLLF
 q/F5JT0bs/utsowsrZQnyBwgjg6J3zucVyuWd9zivgbjnN3p9sblY3lc2X2nIiqL
 eW5TRDpoJCLeiroyJmAUgpzpIODv4WXfnrXjV9Ch+iUdhTWWK6gicedsEZgjm3tE
 OZMC/7s=
 =F9LN
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmjTB5cACgkQmmx57+YA
 GNmAug/9HmEgWTO3UCNrwcDmi/TmvSQQ/rETjctvOaQ4CAb9dxOOtG+cN+/2j7jL
 WQz84kKtw6qVbkUOCic7vUEvE3DjncJsjOzWkvuqa08YlkKbFz1CoFEYhqAEXiXU
 GXTvvuX99OdPR3wm+1AzwjxLHq7txy2hAhQQetSn24o7MYr+R8UbX3JJKQH7A1dL
 n2dAoI9D/8BRMAo6BHzl83ARbDk0yoQxgUnbzxj5iDvyVr6sI7RNyRa3FpdvLA2u
 IeUFlEL7HMHa4Lpin11TybEmnB5b7ojdssOXWia+Gh/KVplZJ8kYteP3lZlSUH3e
 N3uj0nwePM5P14DVkGGdoVlugJh5Ldd0PehdO+MtD94jKT3+rwOjfCIirgDMTP0K
 ALNeb9sPkldA33LBFRgKPhOsN9i6/S5h0l+XKgCzoDxVGeczxEjC2elW+dsbipMD
 mB0JeKivJF8V1PMghJdx8POk2DNlyrh9l4ps2mPTqsO/1OxJp3Pw4L4Oqu4R+zWx
 FXc/Dsg4v0i20fwxwTK/EfnugDUIQwGnHmjUVD4D5h5iXvYT6+ppawGAUsOS6mk/
 DiOLVW+xE8p3RUuFg+dcSopFnh5XbNgEdSAWx0xCq6VQsjQWf8GmA0M3SSudgEFq
 o468b4wp02J79CIVnt5M9vGRIIKmsaIT55DsGRt85gPSRARNla0=
 =da+5
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-dt-for-6.18-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/dt

Allwinner Device Tree changes for 6.18 - part 2

A new board, the Amediatech X96Q, was added.

* tag 'sunxi-dt-for-6.18-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  arm64: dts: allwinner: h313: Add Amediatech X96Q
  dt-bindings: arm: sunxi: Add Amediatech X96Q

Link: https://lore.kernel.org/r/aNFg7iuBtyWkCZg6@wens.tw
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-23 22:48:23 +02:00
Arnd Bergmann
d1f862c0b9 One new board the ROC-RK3588-RT, gpu improvements for RK3328, frequency
scaling for the RK3528 and the very first small steps for camera
 support on the RK3588 - with the CSI-DPHY support, with more hopefully
 to come soon'ish :-) .
 
 And apart from those bigger points, some more individual peripheral work
 on some boards.
 -----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAmjQY4UQHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgX/UCACD5kHdOjl5E8epQK8YQFdr3OsLdna9wx5B
 B+Kw44JE588cIRzLVch0jI+xNDDBQWTzUakCon0DrjRU7zlZqH5bSBm/hY4dssK6
 O/GGxBZ/AqZVruJtq3E2k5yvXutgXzW5gBThvVMcGrlkRHUgZPO8aJeCLk0Pr5sT
 p01nUeAhlzfFY06m6d9i81eCsxHv/GYTGolX3o8A/7wqGUXXcwuYaxgfMOUOqzu7
 lVl+zcJbORetegXCeiTXxpxmBN/QQP7SDDZvysN4kIUmc5uaVw43ECT8QCVDrfQD
 3xoGnaltB1EVYAMGQItnPyRC/Hj5jb63myLhtj/ErzCxAx9t+j5O
 =c3/2
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmjTB2MACgkQmmx57+YA
 GNmnTA/+LNfJkMT1tcQRSidokHkI/XEtQtq5k2S32OCOONSROsFYViocr3CIYagC
 KOhtqF2KhqC611cQ/zXcDPCQIMa/kwto0BQaTUyxylBONbqRq//QnB//Pb/Y2WW9
 ihyHJbz8xZeV2PkTnkz0bOzqV1M40N9cJjtCYHW11nPnQjyCXl9GYHZ+jrn/GWkn
 Vbi2yaURGXIwSvGu3WLz/th0T/jBJFnGADJhDJwiLaksE3BGWfrXj9uceyygIlY2
 kbCpjfID3ICmubDi7EOjIouxynln/Uf13UnO4hWPnLJTXuWIPfqbgW/zImIq/Hjv
 U7RKLmNdIqGMeWBFTPebOvtfq1rioHYXXFMWQ1F/TU6QR26auttcAVa4J7L1i29u
 uK9+aPHMhzyx9Ased7WU+Ggnz14+Dt5eII/n233iCziKulmC+8oKY2ghFYPFnQYV
 Bt6NWHRB+6s+Mp4uMm4J7cBiLRAsj3EoHhx2tYvZKq4ISy8oogdVRid3hUze+7Gg
 tqi6X/hmFCbKu+phbmCQrEblseoNTL9xNRd0O8gcR8LGODtKfQIovFBUA8XdzzHD
 IV4/Xfp3BI8eT3L4zAm21crKXR3NLXkUMWfU/p4B/Kx1cYmnyhLs3S1whP59xgcR
 K2YoP06dJsUDQ6fKsZgW89U5lYoNzhQEw+c1dD3wx/SZcPm/rz4=
 =uHf2
 -----END PGP SIGNATURE-----

Merge tag 'v6.18-rockchip-dts64-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt

One new board the ROC-RK3588-RT, gpu improvements for RK3328, frequency
scaling for the RK3528 and the very first small steps for camera
support on the RK3588 - with the CSI-DPHY support, with more hopefully
to come soon'ish :-) .

And apart from those bigger points, some more individual peripheral work
on some boards.

* tag 'v6.18-rockchip-dts64-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  arm64: dts: rockchip: Add devicetree for the ROC-RK3588-RT
  dt-bindings: arm: rockchip: Add Firefly ROC-RK3588-RT
  arm64: dts: rockchip: update pinctrl names for Radxa E52C
  arm64: dts: rockchip: remove vcc_3v3_pmu regulator for Radxa E52C
  arm64: dts: rockchip: Add USB and charger to Gameforce Ace
  arm64: dts: rockchip: enable the Mali GPU on RK3328 boards
  arm64: dts: rockchip: add GPU powerdomain, opps, and cooling to rk3328
  arm64: dts: rockchip: Fix network on rk3576 evb1 board
  arm64: dts: rockchip: add mipi csi-2 dphy nodes to rk3588
  dt-bindings: soc: rockchip: add rk3588 csidphy grf syscon
  arm64: dts: rockchip: Add rk3528 CPU frequency scaling support
  arm64: dts: rockchip: enable HDMI Receiver on NanoPC T6

Link: https://lore.kernel.org/r/2079092.kXSN5OTJKJ@diego
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-23 22:47:31 +02:00
Arnd Bergmann
5ab67bad49 More Qualocmm Arm64 DeviceTree updates for v6.18
Introduce the Hamoa IoT SOM and the Hamoa EVK board, the HP Omnibook
 X14, the Particle Tachyon board, and the Samsung Galaxy S22.
 
 On IPQ5018 another set of UART and I2C controllers are added.
 
 On Lemans SDHCI and the camera subsystem is introduced, the USB
 controllers are updated to the new flattened binding.
 The Lemans EVK gains Ethernet definition, more QUP controllers and their
 GPI DMA engines are defined. PCIe, SDHCI, remoteproc and iris video
 accelerator are added as well.
 
 On the Monaco platform GPU and GMU are introduced, the USB controller
 nodes are updated to the new flattened binding. The GPU is enabled on
 the EVK and the Ride boards.
 
 SDCC and MDSS resets are defined on MSM8916, MSM8939 also gets the MDSS
 reset.
 
 On QCM2290 the camera clock interface is added.
 
 On the QCS615 tsens and related thermal-zones are introduced.
 
 On SDM845 the OnePlus 6 gains notifications LED, and the sensor core
 (SLPI) is enabled on the Samsung Galaxy S9.
 
 WiFi and Bluetooth is enabled on the SM8750 MTP.
 
 The IRIS video accelerator is introduce for X Elite and enabled on a
 variety of laptops.
 
 DisplayPort controllers on a variety of boards are updated to describe
 additional pixel clocks, used for MST.
 -----BEGIN PGP SIGNATURE-----
 
 iQJJBAABCgAzFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmjPYZAVHGFuZGVyc3Nv
 bkBrZXJuZWwub3JnAAoJEAsfOT8Nma3Fj9UP/1bF1N0WQ5BifJaxoI3hjrixYzeK
 C2e4Qm5KYD7hmVgvF5ynz35l1shtWd7jCQ+g+Cw2D0NtSQxpZ8AT82OiYKmgn/MU
 KqUWBLONLRtBs/SzoEkbjFMNnF7G0v0HNpz+kxpmY8i73TkZchPxjAux45YHjQWw
 HbpwSvrm1b5WsDxHvDCGAl6FKyJs89g2iCH1GcCkNqZ/NKbEIAahb6FIqp0FSMhE
 goiZhjhFBw9R1HGaeNeKd6dB+Y9UVkz+nAPF66Htr86N7S4bESQuheDNO+r+1Gi9
 uXfbZry3NFHb2ejqeBkWv4+dJD3U9GwkSoBCYDMEYXlpllnqQVFAcDXyJzaqV60l
 ZM8k/RgUzcrM5+j2DzEXYkTdiV1XfMspCBnW1BFq4sAsVjCNcj5upJmMsJpIBXBT
 bJ1nPc9o3ihTdqik1RVxgN9cIRIq5TRRmC79odok9DPKAjkZd9pY/b/UymjMdFOF
 x8qZuehEWn6GDGi5dPGH6+vQREOP7CPfl0v4/iADQpN9pAK/SO7J6WpxM2wGrI1v
 EL4BMhSXEgrepN6juYW8t66oegUbvU0YYwy8YLdCojoa4zjSGfXbmZ8OqwxlhRRO
 NeBKKOhFfqBXMZmToValFnZ+RAzihI2WazLzzwdbzy5Ft35dBfVEYtxJkCOk8+qJ
 ahPmCYvsr3vnltKC
 =OStt
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmjTBwoACgkQmmx57+YA
 GNkgIQ//dZDOL/q9oNzBwyrhEScVWDrP598IxXrWGrv0MwLscFvDQCo09Xmhrb8D
 gMU34e7GQThQlAyqbv0saLBfxA4Pd/b2AFVC+BOoizeaQUq7Tudp8GdI8m9OcEcG
 wAAMm0zdesozCkmNuFfE4tceElR7m6Ul4iXw6nBGH7WORBrh+8Bl0StYShNj4hZH
 C7rIzmtSqwkHrt9RgKYZ7wSW5cP1NwGQboZIgAwgbaI/7rh4l2ld1r7iEqdv8c1G
 WEgi0ewX58b5mNDkmV/xd1r//EP45lShPep/yno9r2JfIAJFiOUgoJylGwz/TS6/
 nXj6VNHN2abcqll1OCFiNE7WLeoNznUBalWMA6WuHnj6M877+MVA8R9vB+1cyQAL
 4MMMuI4BseXqmRhhowkrNaao6fBcFkdI/au4qPo2RuINrA8qgODPwtpdkpYuAmvD
 2hJEIZnB9ZXJ71l5LmHWT1ODbDzpm9GBih1a6S6/f7NoEupxjsLE3QjuyJXCMS4n
 K/V0NoUQhGp1IutmcoruNWp912NII3xUv4gcANcgOB5hrS9ZsVkJz6M3Z4dKZY0f
 E/pwIz8jMwtl0bLkyD8D0fpXdLEwdM3xXKEjrcsGhmlWE7ZksZMyMrBAFRq68pEZ
 yZkw4YCE+mSYTBAdrGs+ZkhMcqZMJb36VkKXrBCQ/KqwixqRP2U=
 =UJXC
 -----END PGP SIGNATURE-----

Merge tag 'qcom-arm64-for-6.18-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt

More Qualocmm Arm64 DeviceTree updates for v6.18

Introduce the Hamoa IoT SOM and the Hamoa EVK board, the HP Omnibook
X14, the Particle Tachyon board, and the Samsung Galaxy S22.

On IPQ5018 another set of UART and I2C controllers are added.

On Lemans SDHCI and the camera subsystem is introduced, the USB
controllers are updated to the new flattened binding.
The Lemans EVK gains Ethernet definition, more QUP controllers and their
GPI DMA engines are defined. PCIe, SDHCI, remoteproc and iris video
accelerator are added as well.

On the Monaco platform GPU and GMU are introduced, the USB controller
nodes are updated to the new flattened binding. The GPU is enabled on
the EVK and the Ride boards.

SDCC and MDSS resets are defined on MSM8916, MSM8939 also gets the MDSS
reset.

On QCM2290 the camera clock interface is added.

On the QCS615 tsens and related thermal-zones are introduced.

On SDM845 the OnePlus 6 gains notifications LED, and the sensor core
(SLPI) is enabled on the Samsung Galaxy S9.

WiFi and Bluetooth is enabled on the SM8750 MTP.

The IRIS video accelerator is introduce for X Elite and enabled on a
variety of laptops.

DisplayPort controllers on a variety of boards are updated to describe
additional pixel clocks, used for MST.

* tag 'qcom-arm64-for-6.18-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (57 commits)
  arm64: dts: qcom: Add MST pixel streams for displayport
  arm64: dts: qcom: sm6350: correct DP compatibility strings
  arm64: dts: qcom: monaco-evk: Enable Adreno 623 GPU
  arm64: dts: qcom: qcs8300-ride: Enable Adreno 623 GPU
  arm64: dts: qcom: qcs8300: Add gpu and gmu nodes
  dt-bindings: arm: qcom: sort sm8450 boards
  arm64: dts: qcom: Add base HAMOA-IOT-EVK board
  arm64: dts: qcom: Add HAMOA-IOT-SOM platform
  dt-bindings: arm: qcom: Document HAMOA-IOT-EVK board
  arm64: dts: qcom: sm8750-mtp: Add WiFi and Bluetooth
  arm64: dts: qcom: msm8953-xiaomi-daisy: fix cd-gpios
  arm64: dts: qcom: ipq5018: add QUP1 UART2 node
  arm64: dts: qcom: lemans: Flatten usb controller nodes
  arm64: dts: qcom: qcs615: Enable TSENS support for QCS615 SoC
  arm64: dts: qcom: sdm845-enchilada: Add notification LED
  arm64: dts: qcom: apq8016-sbc: Drop redundant HDMI bridge status
  arm64: dts: qcom: apq8016-sbc: Correct HDMI bridge #sound-dai-cells
  arm64: dts: qcom: lemans: Add PCIe lane equalization preset properties
  arm64: dts: qcom: sm8450: enable camera clock controller by default
  arm64: dts: qcom: qcm2290: Add CCI node
  ...

Link: https://lore.kernel.org/r/20250921022346.598294-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-23 22:46:02 +02:00
Arnd Bergmann
8de446fd49 Apple SoC DTS updates for 6.18, part 2
- New device trees for all M2 Pro, Max and Ultra models are added.
   This is responsible for most of the changed lines since we already
   need 2000+ lines just to describe all the power domains inside
   t602x-pmgr.dtsi for these SoCs.
 - Missing WiFi properties for t600x are added.
 - Bluetooth nodes are added for all t600x machines.
 - The PCIe ethernet iommu-map was fixed for the Apple M1 iMac
   to account for a disabled PCIe port.
 - SPMI, NVMe, SART and mailbox nodes for Apple's T2 and A11.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQS3vz815OHsEaWy0u9EEX0kKnUe6QUCaM6cmgAKCRBEEX0kKnUe
 6QdXAQDe9xGwdXMmRIO+tESdccipjEXKPCMH00IonR5IVBdZGQEA5dKF2Js7aG+V
 cH0/l9EB3GMGbTCtstoZIRuH4CXwhgo=
 =KRFw
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmjTBqgACgkQmmx57+YA
 GNmYkQ//YL9frHRAmWe+5sjb4+aucvAtoxEFCk3uVq/9Not8dMQe6js78gopLpVV
 W4Gwuizg1PnTQBDKri8RJb3CMpTIz2jPNYPg4kdiiXGLj6haXFCqCTiCZVbHhvlI
 X0s9b1FHh5yL47kdjEe6vAo1jo1kjv4faGF4fkEkLYdSCdgzORye1h4TrrDvmIx4
 J6gr90jysAcMRSHV1BeTRdFJ2EVMXI9ynPeAUEhSNyNZgCNVOuoMPC/9ZKShq1tr
 /ZDKmxo4osrU35gLRDrSYnRa1D0/OAhj1SppylXobr2vC0AcM57brxGk7zdTIAji
 2sV1z43QMFJi/34RF/WMlWqZXu+Qcu9UIqy6j/PXJSHjvU/s12XFxBdvUtKkvTpZ
 u67zqAXY0anZh5IaQDc/F0ZtNGy7EYccNpWXd0XciuOSl0EgkNpbkUPa+i7ixdF0
 8wXr/AGDQg2jJcj8SIGLi3zTr1UiqS+5TZjSnRQdWuTaehdjQBd1/OlP73OESWqI
 eIH4kP+ekTW9s8L2ZJEv3m/J3dhPdPZX3Q5td21u7ilfiz0z+lag9lPcp1ln0fM+
 KT5Wl1gv7g/kRv9jX1ScYumZX7zRVCayIolXosNs8oHW/5ZnfoDM1hIZrDFpHpqI
 RnEkYBGxpI9lcLujtoxZd9Xe93dUyJJJFVfCsuk1BrxazqkaqSo=
 =vo5j
 -----END PGP SIGNATURE-----

Merge tag 'apple-soc-dt-6.18-part2' of https://git.kernel.org/pub/scm/linux/kernel/git/sven/linux into soc/dt

Apple SoC DTS updates for 6.18, part 2

- New device trees for all M2 Pro, Max and Ultra models are added.
  This is responsible for most of the changed lines since we already
  need 2000+ lines just to describe all the power domains inside
  t602x-pmgr.dtsi for these SoCs.
- Missing WiFi properties for t600x are added.
- Bluetooth nodes are added for all t600x machines.
- The PCIe ethernet iommu-map was fixed for the Apple M1 iMac
  to account for a disabled PCIe port.
- SPMI, NVMe, SART and mailbox nodes for Apple's T2 and A11.

* tag 'apple-soc-dt-6.18-part2' of https://git.kernel.org/pub/scm/linux/kernel/git/sven/linux:
  arm64: dts: apple: t8015: Add SPMI node
  arm64: dts: apple: t8012: Add SPMI node
  arm64: dts: apple: Add J180d (Mac Pro, M2 Ultra, 2023) device tree
  arm64: dts: apple: Add J474s, J475c and J475d device trees
  arm64: dts: apple: Add J414 and J416 Macbook Pro device trees
  arm64: dts: apple: Add initial t6020/t6021/t6022 DTs
  arm64: dts: apple: Add ethernet0 alias for J375 template
  dt-bindings: arm: apple: Add t6020x compatibles
  arm64: dts: apple: t8015: Add NVMe nodes
  arm64: dts: apple: t8015: Fix PCIE power domains dependencies
  arm64: dts: apple: Add devicetreee for t8112-j415
  dt-bindings: arm: apple: Add t8112 j415 compatible
  arm64: dts: apple: t600x: Add bluetooth device nodes
  arm64: dts: apple: t600x: Add missing WiFi properties
  arm64: dts: apple: t8103-j457: Fix PCIe ethernet iommu-map

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-23 22:44:22 +02:00
Arnd Bergmann
26116b98d6 ARM: dts: ti: omap updates for v6.18
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEe4dGDhaSf6n1v/EMWTcYmtP7xmUFAmjNyJ0ACgkQWTcYmtP7
 xmUpIw/+JhGlNb2wuh12dcZpyljrK6sdQHNxFU2tqhzI7+KMqv65vHR5GH/4sqwS
 X8CfVOoKMuk4mqMxTkhiINcwexvLbzzEWNNdaIUJM+SmIBJRE3+76HFR1At7vHkE
 U26m7p+Ej6ooj753lqEpdRA09o2YnzUxQp46G8urt77HRjQkEp7L5Bqi5OsEWrB7
 qoh/wlITFSbn4bZwTpTxD6gvDjanl0EirE55YtHnxWqgdSwTf5aV0vaL0cDtf1PL
 abBIvqCzAoGoZnk+p+5G5ZAh0aDqGLyph9dbkBFey4zLaHLjZtp+XbFLzSHejiQf
 aDlM/904cdXlnKeEK0hN3/bQGR46qHuM3ph0eva/vMdN95UJHudoYWfg94NO7LjB
 90SR9IYSy/LYG3xCr/EGTlPKreoYhM3UhBu+mNTlY02a7D4byjDU31NaUt1h6R8C
 acIE9njJTQqx13KrodsW2Ymt1upDXsr7LGklv1i9UlwLBXwBvkaFRu8u55XaMcs0
 lsbJYHiz4RsViTYx+SldjBqigNvKVWb8OI8VZDXRia39rEY1HBpOfobPgbHwyyB3
 X9NEe4WyWpT8ulalug9c2erR0frh4Cvj7s9oPXb4MzuEu9S7qvWmdRVAikja3Qow
 K3RDkLH99I7sfhjp1789dhyRg0WgLAf+irkIZKdEyWdM6mjNMVA=
 =id8D
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v6.18/dt-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap into soc/dt

ARM: dts: ti: omap updates for v6.18

These are all minor corrections to the dts files.

* tag 'omap-for-v6.18/dt-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap:
  ARM: dts: omap: am335x-cm-t335: Remove unused mcasp num-serializer property
  ARM: dts: ti: omap: omap3-devkit8000-lcd: Fix ti,keep-vref-on property to use correct boolean syntax in DTS
  ARM: dts: ti: omap: am335x-baltos: Fix ti,en-ck32k-xtal property in DTS to use correct boolean syntax
  ARM: dts: omap: Minor whitespace cleanup
  ARM: dts: omap: dm816x: Split 'reg' per entry
  ARM: dts: omap: dm814x: Split 'reg' per entry
  ARM: dts: am33xx-l4: fix UART compatible
  ARM: dts: ti: omap4: Use generic "ethernet" as node name

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-23 22:41:53 +02:00
Rob Herring (Arm)
345518c00b
arm64: dts: apm-shadowcat: Drop "apm,xgene2-pcie" compatible
The "apm,xgene2-pcie" compatible is unused, undocumented, and in the
wrong position in the compatible list. Given this is a mature and little
used platform, just remove the compatible rather than fix the order and
document it.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://lore.kernel.org/r/20250919161529.1293151-1-robh@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-23 22:39:18 +02:00
Rob Herring (Arm)
676af08386
arm64: dts: apm-shadowcat: Move slimpro nodes out of "simple-bus" node
The slimpro nodes are not MMIO devices, so they don't belong under a
"simple-bus" node. Move them to the top level.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://lore.kernel.org/r/20250919161509.1292227-1-robh@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-09-23 22:39:02 +02:00
Amery Hung
323302f54d selftests/bpf: Test bpf_xdp_pull_data
Test bpf_xdp_pull_data() with xdp packets with different layouts. The
xdp bpf program first checks if the layout is as expected. Then, it
calls bpf_xdp_pull_data(). Finally, it checks the 0xbb marker at offset
1024 using directly packet access.

Signed-off-by: Amery Hung <ameryhung@gmail.com>
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Link: https://patch.msgid.link/20250922233356.3356453-8-ameryhung@gmail.com
2025-09-23 13:35:12 -07:00
Amery Hung
fe9544ed1a bpf: Support specifying linear xdp packet data size for BPF_PROG_TEST_RUN
To test bpf_xdp_pull_data(), an xdp packet containing fragments as well
as free linear data area after xdp->data_end needs to be created.
However, bpf_prog_test_run_xdp() always fills the linear area with
data_in before creating fragments, leaving no space to pull data. This
patch will allow users to specify the linear data size through
ctx->data_end.

Currently, ctx_in->data_end must match data_size_in and will not be the
final ctx->data_end seen by xdp programs. This is because ctx->data_end
is populated according to the xdp_buff passed to test_run. The linear
data area available in an xdp_buff, max_linear_sz, is alawys filled up
before copying data_in into fragments.

This patch will allow users to specify the size of data that goes into
the linear area. When ctx_in->data_end is different from data_size_in,
only ctx_in->data_end bytes of data will be put into the linear area when
creating the xdp_buff.

While ctx_in->data_end will be allowed to be different from data_size_in,
it cannot be larger than the data_size_in as there will be no data to
copy from user space. If it is larger than the maximum linear data area
size, the layout suggested by the user will not be honored. Data beyond
max_linear_sz bytes will still be copied into fragments.

Finally, since it is possible for a NIC to produce a xdp_buff with empty
linear data area, allow it when calling bpf_test_init() from
bpf_prog_test_run_xdp() so that we can test XDP kfuncs with such
xdp_buff. This is done by moving lower-bound check to callers as most of
them already do except bpf_prog_test_run_skb(). The change also fixes a
bug that allows passing an xdp_buff with data < ETH_HLEN. This can
happen when ctx is used and metadata is at least ETH_HLEN.

Signed-off-by: Amery Hung <ameryhung@gmail.com>
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Link: https://patch.msgid.link/20250922233356.3356453-7-ameryhung@gmail.com
2025-09-23 13:35:12 -07:00
Amery Hung
7eb83bff02 bpf: Make variables in bpf_prog_test_run_xdp less confusing
Change the variable naming in bpf_prog_test_run_xdp() to make the
overall logic less confusing. As different modes were added to the
function over the time, some variables got overloaded, making
it hard to understand and changing the code becomes error-prone.

Replace "size" with "linear_sz" where it refers to the size of metadata
and data. If "size" refers to input data size, use test.data_size_in
directly.

Replace "max_data_sz" with "max_linear_sz" to better reflect the fact
that it is the maximum size of metadata and data (i.e., linear_sz). Also,
xdp_rxq.frags_size is always PAGE_SIZE, so just set it directly instead
of subtracting headroom and tailroom and adding them back.

Signed-off-by: Amery Hung <ameryhung@gmail.com>
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Link: https://patch.msgid.link/20250922233356.3356453-6-ameryhung@gmail.com
2025-09-23 13:35:12 -07:00
Amery Hung
0e7a733ab3 bpf: Clear packet pointers after changing packet data in kfuncs
bpf_xdp_pull_data() may change packet data and therefore packet pointers
need to be invalidated. Add bpf_xdp_pull_data() to the special kfunc
list instead of introducing a new KF_ flag until there are more kfuncs
changing packet data.

Signed-off-by: Amery Hung <ameryhung@gmail.com>
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Link: https://patch.msgid.link/20250922233356.3356453-5-ameryhung@gmail.com
2025-09-23 13:35:12 -07:00
Amery Hung
4dce1a0d7c bpf: Support pulling non-linear xdp data
Add kfunc, bpf_xdp_pull_data(), to support pulling data from xdp
fragments. Similar to bpf_skb_pull_data(), bpf_xdp_pull_data() makes
the first len bytes of data directly readable and writable in bpf
programs. If the "len" argument is larger than the linear data size,
data in fragments will be copied to the linear data area when there
is enough room. Specifically, the kfunc will try to use the tailroom
first. When the tailroom is not enough, metadata and data will be
shifted down to make room for pulling data.

A use case of the kfunc is to decapsulate headers residing in xdp
fragments. It is possible for a NIC driver to place headers in xdp
fragments. To keep using direct packet access for parsing and
decapsulating headers, users can pull headers into the linear data
area by calling bpf_xdp_pull_data() and then pop the header with
bpf_xdp_adjust_head().

Signed-off-by: Amery Hung <ameryhung@gmail.com>
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Reviewed-by: Jakub Kicinski <kuba@kernel.org>
Link: https://patch.msgid.link/20250922233356.3356453-4-ameryhung@gmail.com
2025-09-23 13:35:12 -07:00
Amery Hung
dea1526fba bpf: Allow bpf_xdp_shrink_data to shrink a frag from head and tail
Move skb_frag_t adjustment into bpf_xdp_shrink_data() and extend its
functionality to be able to shrink an xdp fragment from both head and
tail. In a later patch, bpf_xdp_pull_data() will reuse it to shrink an
xdp fragment from head.

Additionally, in bpf_xdp_frags_shrink_tail(), breaking the loop when
bpf_xdp_shrink_data() returns false (i.e., not releasing the current
fragment) is not necessary as the loop condition, offset > 0, has the
same effect. Remove the else branch to simplify the code.

Signed-off-by: Amery Hung <ameryhung@gmail.com>
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Link: https://patch.msgid.link/20250922233356.3356453-3-ameryhung@gmail.com
2025-09-23 13:35:12 -07:00
Amery Hung
8f12d1137c bpf: Clear pfmemalloc flag when freeing all fragments
It is possible for bpf_xdp_adjust_tail() to free all fragments. The
kfunc currently clears the XDP_FLAGS_HAS_FRAGS bit, but not
XDP_FLAGS_FRAGS_PF_MEMALLOC. So far, this has not caused a issue when
building sk_buff from xdp_buff since all readers of xdp_buff->flags
use the flag only when there are fragments. Clear the
XDP_FLAGS_FRAGS_PF_MEMALLOC bit as well to make the flags correct.

Signed-off-by: Amery Hung <ameryhung@gmail.com>
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Link: https://patch.msgid.link/20250922233356.3356453-2-ameryhung@gmail.com
2025-09-23 13:35:11 -07:00