Commit graph

1,481,701 commits

Author SHA1 Message Date
Giorgi Tchankvetadze
8756acd309 iio: light: cm32181: return zero after writing calibscale
The write_raw callback is documented to return 0 on success or a
negative error code.  However, the IIO_CHAN_INFO_CALIBSCALE case
returns 'val' (the user-supplied value) instead of 0.

Fix it by returning 0 on success, matching the behavior of other
calibscale implementations in the subsystem.

Fixes: 971672c0b3 ("iio: add Capella CM32181 ambient light sensor driver.")
Signed-off-by: Giorgi Tchankvetadze <giorgi@tchankvetadze.com>
Reviewed-by: Joshua Crofts <joshua.crofts1@gmail.com>
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <jonathan.cameron@oss.qualcomm.com>
2026-08-05 00:03:28 +01:00
Wadim Mueller
d240b0b8a1 iio: flow: add Sensirion SLF3S liquid flow sensor driver
Add a driver for the Sensirion SLF3S family of digital
liquid-flow sensors on I2C.  Currently supported variants are
SLF3S-0600F, SLF3S-1300F and SLF3S-4000B; they share the same
register map and differ only in flow-scale factor and calibrated
measurement range.  The variant (and therefore the scale) is
auto-detected from the product-information register at probe time;
a sensor reporting an unknown sub-type falls back to the variant
named in the device tree / I2C table, so a drop-in replacement part
keeps working on a kernel that does not know its sub-type yet.

Each measurement frame returns a 16-bit signed flow value, a
16-bit signed temperature reading and a status word, each
protected by a CRC-8 byte.  The driver exposes the flow rate as
IIO_VOLUMEFLOW and the temperature as IIO_TEMP via the standard
IIO read_raw / read_scale interface.

The volume-flow scale is reported in m^3/s.  As the per-LSB scale
is on the order of 1e-12 m^3/s, it is emitted as a 64-bit
fixed-point value with femto (1e-15) resolution
(IIO_VAL_DECIMAL64_FEMTO) so the small SI value keeps full
precision.  This relies on the IIO_VAL_DECIMAL64_FEMTO format type
added earlier in this series.

The active calibration medium can be switched at runtime between
the factory-calibrated water and isopropyl-alcohol modes via the
in_volumeflow_medium sysfs attribute; the sensor starts in water
mode after probe.

The sensor has no low-power state of its own, so system suspend
stops the measurement and disables the vdd supply; resume powers
the sensor back up, waits out the power-up time and restarts the
measurement with the previously active medium, following the
scd30/scd4x precedent.

This driver also creates the drivers/iio/flow/ subdirectory and
the corresponding Kconfig/Makefile glue.

Signed-off-by: Wadim Mueller <wafgo01@gmail.com>
Signed-off-by: Jonathan Cameron <jonathan.cameron@oss.qualcomm.com>
2026-08-05 00:03:28 +01:00
Wadim Mueller
1647a1b673 iio: core: add IIO_VAL_DECIMAL64_FEMTO format type
Extend the IIO_VAL_DECIMAL64_* family with a femto-scaled variant
(scale 15), following the existing MILLI/MICRO/NANO/PICO pattern. Both
the read formatting path in __iio_format_value() and the write parsing
path in iio_write_channel_info() (via kstrtodec64()) already derive
their scale from "type - IIO_VAL_DECIMAL64_BASE", so the new type only
needs to be added to the respective switch cases.

This is needed by drivers reporting very small SI quantities where the
existing pico scale loses precision. For example the Sensirion SLF3S
liquid flow sensor reports its volume-flow scale in m^3/s, where the
SLF3S-0600F scale is ~1.667e-12 m^3/s: at pico scale only a single
significant digit survives, whereas femto scale preserves the full
sensor resolution.

Signed-off-by: Wadim Mueller <wafgo01@gmail.com>
Reviewed-by: Rodrigo Alencar <rodrigo.alencar@analog.com>
Signed-off-by: Jonathan Cameron <jonathan.cameron@oss.qualcomm.com>
2026-08-05 00:03:28 +01:00
Wadim Mueller
7462dce236 dt-bindings: iio: flow: add Sensirion SLF3S liquid flow sensor
Document the bindings for the Sensirion SLF3S family of digital
liquid-flow sensors on I2C.  The family currently covers the
SLF3S-0600F, SLF3S-1300F and SLF3S-4000B variants.

All variants share the same register map and differ only in the flow
scale factor and the calibrated measurement range, which the driver
reads back from the product-information register.  Since that lookup
is needed in any case, a fallback compatible would buy nothing, so
each variant gets its own compatible without a fallback.  A future
drop-in compatible part can then claim one of these compatibles and
work on kernels that do not know its product ID yet.

The active calibration medium (water / IPA) is runtime-switchable
via the in_volumeflow_medium sysfs attribute and therefore not a
DT property.

Signed-off-by: Wadim Mueller <wafgo01@gmail.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Jonathan Cameron <jonathan.cameron@oss.qualcomm.com>
2026-08-05 00:03:10 +01:00
Wadim Mueller
22bba9dfd2 iio: types: add IIO_VOLUMEFLOW channel type
Add a new IIO channel type for liquid volumetric flow sensors.  The
unit exposed via the standard _scale attribute is cubic metres per
second (m^3/s), following the SI convention used by the other IIO
channel types.

Update iio-core's name table, the iio_event_monitor whitelist and
the sysfs-bus-iio ABI document to match.  The new _scale attribute is
folded into the existing shared _scale block; only the per-type _raw
needs a fresh entry.

Signed-off-by: Wadim Mueller <wafgo01@gmail.com>
Reviewed-by: Joshua Crofts <joshua.crofts1@gmail.com>
Signed-off-by: Jonathan Cameron <jonathan.cameron@oss.qualcomm.com>
2026-08-05 00:02:55 +01:00
Tushar Vyavahare
e2baf9cc37 selftests/xsk: Decouple xskxceiver and xdp apps from test_progs objects
Build xskxceiver, xdp_hw_metadata, and xdp_features from explicit source
lists instead of reusing helper objects produced by test_progs rules.

Reusing shared objects such as network_helpers.o and xsk.o can pull in
test_progs-only dependency chains and trigger unrelated libarena builds
when invoking a single target.

Keep these standalone binaries self-contained so each target builds only
its own required sources and BPF skeleton dependencies.

Signed-off-by: Tushar Vyavahare <tushar.vyavahare@intel.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Tested-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Link: https://lore.kernel.org/bpf/20260728115036.2049536-1-tushar.vyavahare@intel.com
2026-08-04 15:50:58 -07:00
Mukesh Ojha
bb840ea693 remoteproc: fix OOB read via signed offset in rsc_table_for_each_entry()
table->offset[i] is a u32 from firmware, but was stored into a signed
int.  A crafted offset like 0xFFFFFFF0 becomes -16, placing hdr 16 bytes
before the table buffer.  The subsequent avail check was bypassed
because the negative int was promoted to a large size_t in the
expression "table_sz - offset - sizeof(*hdr)", yielding a large positive
avail and letting the out-of-bounds hdr->type read proceed undetected.

Store the offset as u32 and validate it with unsigned comparisons before
any pointer arithmetic.

Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
Fixes: fd2c15ec1d ("remoteproc: resource table overhaul")
Link: https://lore.kernel.org/r/20260803114331.3277263-6-mukesh.ojha@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-08-04 17:32:02 -05:00
Mukesh Ojha
bf9053b22c remoteproc: replace BSD blurb with SPDX identifier in rsc_table.h
rsc_table.h contains the full BSD-3-Clause license blurb but is missing
an SPDX-License-Identifier tag.

Replace the BSD-3-Clause license blurb with the SPDX-License-Identifier
tag, the standard kernel representation, avoiding duplicate license text.

Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260803114331.3277263-5-mukesh.ojha@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-08-04 17:32:02 -05:00
Mukesh Ojha
7c1f35380d remoteproc: replace BSD blurb with SPDX identifier in remoteproc.h
remoteproc.h contains the full BSD-3-Clause license blurb but is missing
an SPDX-License-Identifier tag.

Replace the BSD-3-Clause license blurb with the SPDX-License-Identifier
tag, the standard kernel representation, avoiding duplicate license text.

Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260803114331.3277263-4-mukesh.ojha@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-08-04 17:32:02 -05:00
Mukesh Ojha
bcacae90e8 remoteproc: fix coding style issues in remoteproc.h
The function pointer declarations for find_loaded_rsc_table() and
get_loaded_rsc_table() had their opening parenthesis at the end of
the line. Move the first argument onto the same line as the opening
parenthesis to fix the checkpatch warning.

Also remove a spurious blank line after the opening brace in
struct rproc_vdev.

Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260803114331.3277263-3-mukesh.ojha@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-08-04 17:32:01 -05:00
Mukesh Ojha
b08aeb3695 MAINTAINERS: add rsc_table.h to remoteproc entry
include/linux/rsc_table.h was split out from include/linux/remoteproc.h
to hold the resource table wire-format definitions. Add it to the
REMOTEPROC entry so it is covered by the same maintainers.

Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260803114331.3277263-2-mukesh.ojha@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-08-04 17:32:01 -05:00
Guenter Roeck
0dabe8a56f hwmon: (pmbus/lm25066) Fix PMBus coefficient calculations
In lm25066_probe(), the PMBus coefficients for current and power are
scaled based on the shunt resistor value. The calculation evaluates the
multiplication using 32-bit arithmetic because info->m is an int and
shunt is a u32:

static int lm25066_probe(struct i2c_client *client) {
    ...
    info->m[PSC_CURRENT_IN] = info->m[PSC_CURRENT_IN] * shunt / 1000;
    info->m[PSC_POWER] = info->m[PSC_POWER] * shunt / 1000;
    ...
}

For large coefficients like 26882 (LM25056) or 15076 (LM5066i), a device
tree shunt-resistor-micro-ohms value exceeding approximately 159,000
(159 mOhm, which is physically valid for low-current applications) causes
the intermediate product to exceed UINT_MAX (4,294,967,295). This results
in a silent wraparound before the division by 1000.

Furthermore, if the wrapped value has the most significant bit set,
converting it back to the signed int info->m results in negative
coefficients. This logic error leads to drastically corrupted current and
power readings, which can cause erratic thermal or power management
behavior in the system.

Fix the problem by using 64-bit operations for the multiply/divide
operations. This can still overflow, but only for unreasonably large
shunt resistor values.

Reported-by: Sashiko <sashiko-bot@kernel.org>
Fixes: 94ee5fcc24 ("hwmon: (pmbus/lm25066) Support configurable sense resistor values")
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-04 15:31:48 -07:00
Krzysztof Wilczyński
f82f53e75e PCI/proc: Use file_ns_capable() when checking config space read access
proc_bus_pci_read() decides how much of the config space is readable based
on capable(CAP_SYS_ADMIN), which checks the credentials of the task calling
read(), not the credentials of the process that opened the file.

The sysfs equivalent, pci_read_config(), has checked the credentials of the
opening process since commit de139a3393 ("pci: check caps from sysfs file
open to read device dependent config space"), so a privileged process can
open the config space file and pass the file descriptor to an unprivileged
process (for example, a process running a KVM guest with an assigned
device), which can then read the entire config space.  The check was
subsequently routed through the LSM framework in commit 47970b1b2a ("pci:
use security_capable() when checking capablities during config space read")
and converted to the dedicated helper in commit ab0fa82b2d ("pci-sysfs:
use proper file capability helper function").

Thus, the two interfaces check the same capability against different
credentials.  Checking the credentials of the task calling read() makes the
outcome depend on who reads rather than who opened, so the restriction is
bypassed whenever a more privileged process reads through the descriptor.
Checking the credentials recorded in file->f_cred settles the decision at
open() time and ties it to the file, where it cannot change with the
caller.

Use file_ns_capable() to check CAP_SYS_ADMIN against the credentials in
effect when the file was opened, bringing the procfs interface in line with
the sysfs behaviour.

As a result, a file descriptor opened by a privileged process and passed to
an unprivileged one now allows the entire config space to be read through
procfs, matching sysfs.

Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20260720204145.1500105-1-kwilczynski@kernel.org
2026-08-04 17:22:20 -05:00
Krzysztof Wilczyński
3359e044d5 PCI/proc: Warn on writes to kernel-exclusive config space regions
Currently, a driver can claim a region of a device's config space as
exclusive using pci_request_config_region_exclusive(), after which a write
to that region originating from user space is expected to emit a warning
and taint the kernel.  The check is advisory only, as the write itself is
still allowed to proceed.

Since commit 278294798a ("PCI: Allow drivers to request exclusive config
regions"), the sysfs config space attribute performs this check in
pci_write_config(), but the procfs interface was never updated.  A write
performed through /proc/bus/pci/BB/DD.F therefore bypasses the detection
entirely, even though both interfaces offer the same level of access.

Add the same resource_is_exclusive() check to proc_bus_pci_write().

Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20260729075413.1215821-1-kwilczynski@kernel.org
2026-08-04 17:21:43 -05:00
Krzysztof Wilczyński
4ff664a81d PCI/proc: Avoid spurious runtime PM wakeup on config space accesses
Currently, proc_bus_pci_read() and proc_bus_pci_write() do not return early
for zero-length configuration space accesses at valid offsets.

Such an access invokes pci_config_pm_runtime_get() and
pci_config_pm_runtime_put() around transfer blocks that do nothing.

This is a problem because pci_config_pm_runtime_get() synchronously resumes
the upstream bridge through pm_runtime_get_sync(), and resumes the device
itself through pm_runtime_resume() when it is in D3cold, only for the
handler to return zero immediately afterwards.  Such a spurious wakeup
wastes power and adds needless resume latency.

The sysfs core already returns early for in-range zero-length binary
attribute accesses before pci_read_config() or pci_write_config() is
invoked.  In contrast, the VFS forwards zero-length requests to the procfs
callbacks, where they continue into runtime PM handling.

Return early from proc_bus_pci_read() and proc_bus_pci_write() when nbytes
is zero, before any runtime PM involvement.

The value returned to userspace at these offsets remains zero,
so the change is not visible to userspace.

Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
[bhelgaas: order tags]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20260729075909.1219906-1-kwilczynski@kernel.org
2026-08-04 17:20:32 -05:00
Krzysztof Wilczyński
1b7c9855bb PCI/sysfs: Add legacy I/O and memory attribute macros
Currently, the static binary attributes for the PCI legacy I/O port
and ISA memory space files (legacy_io, legacy_io_sparse, legacy_mem and
legacy_mem_sparse) are open-coded, with each definition repeating the
same set of properties and callbacks.

Add two macros for declaring such attributes:

  - pci_legacy_resource_io_attr(),  for legacy I/O port space (read/write)
  - pci_legacy_resource_mem_attr(), for legacy memory space (mmap)

Each macro takes the fixed attribute size as a parameter.

Then replace the open-coded definitions with the newly added macros.

No functional changes intended.

Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
[bhelgaas: shorten macros to fit in 80 columns]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/20260721020427.1541197-4-kwilczynski@kernel.org
2026-08-04 17:11:15 -05:00
Breno Leitao
a213dfaa25 x86/mce: Set up the polling timer before CMCI discovery
I hit the following on one of my machines:

  mce: CPU0 BANK15 CMCI inherited storm
  ------------[ cut here ]------------
  ODEBUG: assert_init not available (active state 0) object: (____ptrval____) object type: timer_list hint: 0x0
  WARNING: lib/debugobjects.c:632 at debug_object_assert_init+0x178/0x230, CPU#0: swapper/0/0
  CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Not tainted 7.2.0-rc5 #3 PREEMPTLAZY
  RIP: 0010:debug_object_assert_init+0x18f/0x230
  Call Trace:
   <TASK>
   __mod_timer
   mce_timer_kick
   cmci_discover
   intel_init_cmci
   mce_intel_feature_init
   mcheck_cpu_init
   identify_cpu
   identify_boot_cpu
   arch_cpu_finalize_init
   start_kernel

A second splat follows right after, from timer_setup() finding that same
timer already queued:

  ODEBUG: init active (active state 0) object: (____ptrval____) object type: timer_list hint: stub_timer+0x0/0x10

This is happening because CMCI storm detection is trying to modify the timer
before latter was properly set up.

Set up the timer first. __mcheck_cpu_setup_timer() only calls timer_setup(),
and depends on neither the generic nor the vendor init.

  [ bp: Massage commit message. ]

Fixes: 1f68ce2a02 ("x86/mce: Handle Intel threshold interrupt storms")
Signed-off-by: Breno Leitao <leitao@debian.org>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20260803-mce_timer_init-v1-1-9539db424330@debian.org
2026-08-04 15:09:25 -07:00
Krzysztof Wilczyński
ee2ca84457 alpha/PCI: Make the suffix the first __pci_dev_resource_attr() parameter
Currently, the __pci_dev_resource_attr() helper macro takes the attribute
name suffix as its third parameter, even though the suffix is what
distinguishes the three attribute variants built on top of it.

Additionally, the pci_dev_resource_attr() wrapper passes an empty suffix,
and with the suffix placed in the middle of the parameter list its
invocation contains two consecutive commas, which checkpatch.pl highlights,
as follows:

  ERROR: space required after that ',' (ctx:VxO)

Move the suffix to the front so that the variant selector comes first and
the empty argument follows the opening parenthesis, which checkpatch.pl
does not complain about.  This also matches the parameter order used by the
PCI legacy I/O and memory attribute macros introduced in a subsequent
change.

No functional changes intended.

Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/20260721020427.1541197-3-kwilczynski@kernel.org
2026-08-04 17:09:21 -05:00
Krzysztof Wilczyński
7823291ac4 PCI/sysfs: Add pci_ prefix to static PCI resource attribute names
Currently, the static binary attributes for the PCI resource files are
generated with the names dev_resource<N>_io_attr, dev_resource<N>_uc_attr
and dev_resource<N>_wc_attr.

The macros that generate these attributes and the arrays that collect them
already carry the pci_ prefix, as do the sibling legacy I/O and memory
attributes, such as pci_legacy_io_attr.  Only the generated variable names
lack it.

Rename the generated variables to pci_dev_resource<N>_io_attr,
pci_dev_resource<N>_uc_attr and pci_dev_resource<N>_wc_attr, and update the
attribute pointer arrays to match.

While at it, re-align the continuation backslashes in the resource
attribute macros to match.

No functional changes intended.

Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
[bhelgaas: shorten pci_dev_resource##_bar##_wc_attr to fit in 80 columns]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/20260721020427.1541197-2-kwilczynski@kernel.org
2026-08-04 17:07:56 -05:00
Krzysztof Wilczyński
747b9bbbbd PCI/sysfs: Add lockdown checks to legacy I/O and memory handlers
Currently, the legacy I/O and memory sysfs handlers do not check
security_locked_down(LOCKDOWN_PCI_ACCESS), leaving the legacy_io and
legacy_mem files unprotected when the kernel is locked down.

Commit eb627e1772 ("PCI: Lock down BAR access when the kernel is locked
down") added the check to pci_write_config(), pci_mmap_resource(), and
pci_write_resource_io() to prevent userspace from programming DMA-capable
hardware that could be used to modify kernel code, but did not cover the
legacy handlers.

As a result, root can still write arbitrary I/O ports and map the legacy
I/O and memory spaces while the kernel is locked down, which is the same
capability the lockdown is meant to remove.

Add the same check to pci_write_legacy_io(), pci_mmap_legacy_mem(), and
pci_mmap_legacy_io().

These generic handlers cover both architectures that define HAVE_PCI_LEGACY
(such as Alpha and PowerPC).

Fixes: eb627e1772 ("PCI: Lock down BAR access when the kernel is locked down")
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
[bhelgaas: add Link]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/20260720211541.1509744-1-kwilczynski@kernel.org
2026-08-04 17:04:47 -05:00
Krzysztof Wilczyński
bad94d3d18 PCI/sysfs: Return -EINVAL for unsupported I/O BAR mmap
Currently, mmap() of a resourceN file for an I/O BAR fails with -ENODEV on
architectures where arch_can_pci_mmap_io() is 0, such as x86, because the
attribute has no mmap callback there and the error comes from the generic
kernfs dispatch.

This is a side effect of commit e854d8b2a8 ("PCI: Add
arch_can_pci_mmap_io() on architectures which can mmap() I/O space"),
which removed the mmap callback from the I/O resource attribute on
these architectures.  Previously the request reached the architecture
mmap code and failed with -EINVAL, and the same commit deliberately
kept -EINVAL for the identical operation on the procfs interface, so
the two PCI userspace interfaces have disagreed ever since.

Add a pci_mmap_resource_io_unsupported() callback that
returns -EINVAL and use it as the mmap handler of the I/O resource
attribute when arch_can_pci_mmap_io() is 0, so the failure is
produced deliberately by PCI code, consistent with the procfs
interface and with the behaviour before e854d8b2a8.

Architectures where arch_can_pci_mmap_io() is non-zero keep the real
pci_mmap_resource_uc() handler and are unaffected.  The mmap() fails
either way.  Only the reported error changes from -ENODEV to -EINVAL.

Fixes: e854d8b2a8 ("PCI: Add arch_can_pci_mmap_io() on architectures which can mmap() I/O space")
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/20260720204624.1503794-1-kwilczynski@kernel.org
2026-08-04 17:03:38 -05:00
Krzysztof Wilczyński
b14b2bab88 PCI/sysfs: Avoid spurious runtime PM wakeup on config space accesses
Currently, the boundary checks in pci_read_config() and pci_write_config()
reject only offsets beyond the effective configuration space size.

An access at an offset exactly equal to that size passes the check, has its
length clamped to zero, and then invokes pci_config_pm_runtime_get() and
pci_config_pm_runtime_put() around transfer blocks that do nothing.

This is a problem because pci_config_pm_runtime_get() synchronously resumes
the upstream bridge through pm_runtime_get_sync() and resumes the device
itself through pm_runtime_resume() when it is in D3cold, only for the
handler to return zero immediately afterwards.  Such a spurious wakeup
wastes power and adds needless resume latency.

The sysfs core already clamps accesses against the attribute size set
through the bin_size() callback, which reports either 256 or 4096 bytes.
As such, the affected accesses are reads at offset 64 (or 128 for CardBus
devices) through files opened without CAP_SYS_ADMIN, and reads and writes
at the exact configuration space size on devices where a quirk sets a
non-standard size.

Reject accesses at the boundary offset as well, so they return early before
any runtime PM involvement, matching the procfs implementations in
proc_bus_pci_read() and proc_bus_pci_write().

The value returned to userspace at these offsets remains zero, so the
change is not visible to userspace.

Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
[bhelgaas: tweak commit log, order tags]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20260720204356.1501749-1-kwilczynski@kernel.org
2026-08-04 17:02:08 -05:00
David Woodhouse
633d7652f8 KVM: x86/xen: Do not corrupt KVM clock in kvm_xen_shared_info_init()
The KVM clock is an interesting thing. It is defined as "nanoseconds
since the guest was created", but in practice it runs at two *different*
rates — or three different rates, if you count implementation bugs.

Definition A is that it runs synchronously with the CLOCK_MONOTONIC_RAW
of the host, with a delta of kvm->arch.kvmclock_offset.

But that version doesn't actually get used in the common case, where the
host has a reliable TSC and the guest TSCs are all running at the same
rate and in sync with each other, and kvm->arch.use_master_clock is set.

In that common case, definition B is used: There is a reference point in
time at kvm->arch.master_kernel_ns (again a CLOCK_MONOTONIC_RAW time),
and a corresponding host TSC value kvm->arch.master_cycle_now. This
fixed point in time is converted to guest units (the time offset by
kvmclock_offset and the TSC Value scaled and offset to be a guest TSC
value) and advertised to the guest in the pvclock structure. While in
this 'use_master_clock' mode, the fixed point in time never needs to be
changed, and the clock runs precisely in time with the guest TSC, at the
rate advertised in the pvclock structure.

The third definition C is implemented in kvm_get_wall_clock_epoch() and
__get_kvmclock(), using the master_cycle_now and master_kernel_ns fields
but converting the *host* TSC cycles directly to a value in nanoseconds
instead of scaling via the guest TSC.

One might naïvely think that all three definitions are identical, since
CLOCK_MONOTONIC_RAW is not skewed by NTP frequency corrections; all
three are just the result of counting the host TSC at a known frequency,
or the scaled guest TSC at a known precise fraction of the host's
frequency. The problem is with arithmetic precision, and the way that
frequency scaling is done in a division-free way by multiplying by a
scale factor, then shifting right. In practice, all three ways of
calculating the KVM clock will suffer a systemic drift from each other.

Eventually, definition C should just be eliminated. Commit 451a707813
("KVM: x86/xen: improve accuracy of Xen timers") worked around it for
the specific case of Xen timers, which are defined in terms of the KVM
clock and suffered from a continually increasing error in timer expiry
times. That commit notes that get_kvmclock_ns() is non-trivial to fix
and says "I'll come back to that", which remains true.

Definitions A and B do need to coexist, the former to handle the case
where the host or guest TSC is suboptimally configured. But KVM should
be more careful about switching between them, and the discontinuity in
guest time which could result.

In particular, KVM_REQ_MASTERCLOCK_UPDATE will take a new snapshot of
time as the reference in master_kernel_ns and master_cycle_now, yanking
the guest's clock back to match definition A at that moment.

When invoked from in 'use_master_clock' mode, kvm_update_masterclock()
should probably *adjust* kvm->arch.kvmclock_offset to account for the
drift, instead of yanking the clock back to definition A. But in the
meantime there are a bunch of places where it just doesn't need to be
invoked at all.

To start with: there is no need to do such an update when a Xen guest
populates the shared_info page. This seems to have been a hangover from
the very first implementation of shared_info which automatically
populated the vcpu_info structures at their default locations, but even
then it should just have raised KVM_REQ_CLOCK_UPDATE on each vCPU
instead of using KVM_REQ_MASTERCLOCK_UPDATE. And now that userspace is
expected to explicitly set the vcpu_info even in its default locations,
there's not even any need for that either.

Fixes: 629b534884 ("KVM: x86/xen: update wallclock region")
Reviewed-by: Paul Durrant <paul@xen.org>
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Sean Christopherson <seanjc@google.com>
2026-08-04 14:53:57 -07:00
Kyle Zeng
0e243671bc ipv6: prevent in6_dev_get() from resurrecting inet6_dev
in6_dev_get() reads dev->ip6_ptr under RCU and then unconditionally
increments its refcount. Device teardown can clear the pointer and drop
the last reference between these operations. The increment then
resurrects an object whose RCU free has already been queued, so callers
can use it after it is freed.

Use refcount_inc_not_zero() and return NULL when the object has already
reached zero. RCU keeps the memory accessible through the attempted
reference acquisition, and a successful increment pins the object for
the caller.

An independent run on the exact unpatched 6f5156d7a3 (v7.2-rc3)
kernel reproduced the invalid reference acquisition as UID 1000:

  refcount_t: addition on 0; use-after-free.
  ip6_mc_source+0xef4/0x17e0

It was followed by the corresponding reference underflow in
ip6_mc_source(). The supplied trace from the same unpatched revision
additionally shows the access after the RCU read-side section ends:

  BUG: KASAN: slab-use-after-free in mutex_lock+0x76/0xe0
  Write of size 8 at addr ffff888015b50240 by task poc/1219

Bug found and triaged by OpenAI Security Research and
validated by Trail of Bits.

Fixes: 8814c4b533 ("[IPV6] ADDRCONF: Convert addrconf_lock to RCU.")
Cc: stable@vger.kernel.org
Signed-off-by: Kyle Zeng <kylebot@openai.com>
Co-developed-by: David Lee <david.lee@trailofbits.com>
Signed-off-by: David Lee <david.lee@trailofbits.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20260803122758.666112-1-david.lee@trailofbits.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-08-04 14:42:45 -07:00
Jisheng Zhang
95a390ce6a net: stmmac: remove ptpaddr/mmcaddr/estaddr "safe" initialization
These so called "safe" initializations aren't needed any more from
sometime, but the unnecessaries are obvious after recent clean up
by Russell. The code will correctly initialize them after getting
the correct stmmac_hwif_entry by calling stmmac_hwif_find().

Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Link: https://patch.msgid.link/20260803135745.12600-1-jszhang@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-08-04 14:40:51 -07:00
Manivannan Sadhasivam
29e179cb7f misc: pci_endpoint_test: Add AER error handlers
The Endpoint test driver doesn't need to do anything fancy in its error
handlers; just restore the config space that was saved during probe and
report the correct result. This helps in making sure that the AER recovery
succeeds.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/20260729-pci-port-reset-v9-5-53570b92064d@oss.qualcomm.com
2026-08-04 16:34:15 -05:00
Wilfred Mallawa
b376b3ff9c PCI: dw-rockchip: Implement .reset_root_port() and use for link down
The PCIe link may go down in cases like firmware crashes or unstable
connections. When this occurs, the Root Port must be reset to restore the
functionality. However, the current driver lacks link down handling,
forcing users to reboot the system to recover.

Implement the .reset_root_port() callback for link down handling for the
Rockchip DWC PCIe host controller. The RC is reset, reconfigured, and link
training initiated to recover from the link down event.

This also by extension fixes issues with sysfs-initiated bus resets.
Currently, the endpoint device is non-functional after a sysfs initiated
bus reset (it may link up with downgraded link status).  With the link down
handling support, a sysfs initiated bus reset works as intended. Testing
conducted on a ROCK5B board with an M.2 NVMe drive.

Signed-off-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>
Signed-off-by: Niklas Cassel <cassel@kernel.org>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
[bhelgaas: subject]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/20260727172654.605988-4-cassel@kernel.org
2026-08-04 16:34:15 -05:00
Manivannan Sadhasivam
4d88cb82a6 PCI: qcom: Implement .reset_root_port() and use for link down
The PCIe link can go down under circumstances such as the device firmware
crash, link instability, etc. When that happens, the Root Port needs to be
reset to make it operational again. Currently, the driver is not handling
the link down event, so users have to restart the machine to make PCIe link
operational again. Fix it by detecting the link down event and resetting
the Root Port.

Since the Qcom PCIe controllers report the link down event through the
'global' IRQ, enable the link down event by setting PARF_INT_ALL_LINK_DOWN
in the PARF_INT_ALL_MASK register.

In the case of the event, iterate through the available Root Ports and call
pci_host_handle_link_down() API with Root Port 'pci_dev' to let the PCI
core handle the link down condition. Since Qcom PCIe controllers only
support one Root Port per controller instance, the API will be called only
once. But the looping is necessary as there is no PCI API available to
fetch the Root Port instance without the child 'pci_dev'.

The API will internally call the 'pci_host_bridge::reset_root_port()'
callback to reset the Root Port in a platform-specific way. Implement the
callback to reset the Root Port by first resetting the PCIe core, followed
by reinitializing the resources and then finally starting the link again.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
[bhelgaas: subject]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Tested-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com>
Reviewed-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com>
Link: https://patch.msgid.link/20260729-pci-port-reset-v9-4-53570b92064d@oss.qualcomm.com
2026-08-04 16:33:30 -05:00
Danilo Krummrich
98c63ce4d7 rust: irq: make Registration compatible with lifetime-bound drivers
Adapt the IRQ registration to work with the Higher-Ranked Lifetime Types
(HRT) device driver architecture introduced in commit 2c7c659336
("Merge patch series "rust: device: Higher-Ranked Lifetime Types for
device drivers"").

With HRT, driver structs carry a lifetime parameter tied to the device
binding scope, allowing device resources such as pci::Bar<'bar> to be
held directly rather than through Devres indirection. However, the IRQ
abstraction required Handler: Sync + 'static, preventing handlers from
embedding lifetime-parameterized resources.

Remove the 'static bound from Handler and ThreadedHandler and replace
the Devres<RegistrationInner> indirection with direct request_irq() /
free_irq() calls in the constructor and PinnedDrop.  Registration<'a, T>
stores the IrqRequest<'a>, which structurally ties it to the device
binding scope.

Also remove the &Device<Bound> parameter from the handler callbacks,
since handlers that need device access can embed it in their own type.

IRQ handlers can now directly own device resources:

	struct IrqHandler<'irq> {
	    bar: pci::Bar<'irq, BAR_SIZE>,
	}

	impl irq::Handler for IrqHandler<'_> {
	    fn handle(&self) -> IrqReturn {
	        let stat = self.bar.read(regs::STAT);
	        ...
	    }
	}

This eliminates the indirection previously required for IRQ handlers to
access device resources and aligns with the broader goal of expressing
every registration scoped to a driver binding through compile-time
lifetime bounds.

Reviewed-by: Daniel Almeida <daniel.almeida@collabora.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Link: https://patch.msgid.link/20260719153631.559341-1-dakr@kernel.org
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
2026-08-04 23:30:34 +02:00
Linus Torvalds
c21bb41938 vhost,vdpa: last minute fixes
A small number of fixes that seem too important to
 wait until the next release.
 
 Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
 -----BEGIN PGP SIGNATURE-----
 
 iQFDBAABCgAtFiEEXQn9CHHI+FuUyooNKB8NuNKNVGkFAmpxXrUPHG1zdEByZWRo
 YXQuY29tAAoJECgfDbjSjVRpX5IIAJhVIR6djPQ/Hf24pHD+wHPAvKbV4+CCrtlv
 S/Frw7R8bTn0byvr3iuAHcuWLKSMXPYxfGKQRI1E7E4vbbKD81N0p+vYiO41pyV6
 d7BKUxSIEOEExJ8c198ajo+S2n5OdLjayLfYagzqbClwb2Snz+mdGjBIcSLJttSb
 i53LebWHDXV8/uZLkyd0H8YlHXHmxroIOq16UpwwvO+lgafxZPs6ZinBS5fwEJxk
 fyKKf1rdoPbqQhrDU5IaHlQdqS+ZjL+3ab3rT49wCSnn+FKpzzikhxELNylZZMof
 StC/Y3HAbC8rY54ZMjxGcDt1KfntRchZySuOmhZ/Av+sCXaegm0=
 =EMjO
 -----END PGP SIGNATURE-----

Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost

Pull vhost/vdpa fixes from Michael Tsirkin:
 "A small number of fixes that seem too important to
  wait until the next release"

* tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
  vhost-scsi: reject feature changes after endpoint
  vhost-scsi: flush backend after device ioctls
  vhost: reset the vring metadata cache on vring reconfiguration
  vhost-scsi: Validate T10 PI scatterlist counts
  vdpa/mlx5: Fix buffer length in create_direct_keys()
  vhost/vdpa: reject overflowing PA map page counts on 32-bit
  vhost_iotlb: bound map allocation in add_range
2026-08-04 14:20:59 -07:00
Qingshuang Fu
d533882ce1 hwmon: (nzxt-smart2) Check return value of init_device() in probe
The init_device() call in nzxt_smart2_hid_probe() can fail because it
sends HID output reports to the hardware to detect fans and set the
update interval.  If the hardware is not responding or the HID reports
fail, init_device() returns a negative error code.

However, the return value was ignored, causing the probe to continue
and register an hwmon device even though the device was never properly
initialized.  This leads to an inconsistent state where the driver
reports stale data or blocks on wait queues that will never be woken.

The same function's return value is already checked in the
reset_resume() handler, confirming the author's intent that errors
should be propagated.

Note that this fix was not possible before commit 59d104b54b
("hwmon: (nzxt-smart2) Stop device IO before calling hid_hw_stop")
because the out_hw_close error path was missing hid_device_io_stop(),
which would have opened a use-after-free risk window.

Fixes: 53e68c20ae ("hwmon: add driver for NZXT RGB&Fan Controller/Smart Device v2.")
Signed-off-by: Qingshuang Fu <fuqingshuang@kylinos.cn>
Link: https://lore.kernel.org/r/20260804074842.505923-1-fffsqian@163.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-04 14:07:58 -07:00
Julia Lawall
222e8029a7
ASoC: wm8940: drop unneeded semicolon
When a function-like macro expands to an expression, that expression
doesn't need a semicolon after it.  All uses have been verified to
have their own semicolons.

This was found using the following Coccinelle semantic patch:

@r@
identifier i : script:ocaml() { String.lowercase_ascii i = i };
expression e;
@@

*#define i(...) e;

Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr>
Link: https://patch.msgid.link/20260801191002.1383835-11-Julia.Lawall@inria.fr
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-08-04 21:43:51 +01:00
Thomas Huth
600f5de277
scripts: headers_install.sh: Normalize __ASSEMBLY__ to __ASSEMBLER__
A previous patch to headers_install.sh normalized the usage of
__ASSEMBLER__ to __ASSEMBLY__ in the UAPI headers due to two reasons:

1) There was the concern that the UAPI headers might be used with
non-GCC-compatible compilers, which do not define __ASSEMBLER__
automatically.

But other C compilers like PCC (see
https://github.com/IanHarvey/pcc/blob/cvs2git/2018.09.20/cc/cc/cc.1#L405)
and Tiny-C (see https://repo.or.cz/tinycc.git/commitdiff/a25325e9be13e52a),
are defining __ASSEMBLER__ for compiling assembler files, too, so using
it in UAPI header files should really be fine.

2) During the migration phase, the UAPI headers will use a mix of *both*
__ASSEMBLY__ and __ASSEMBLER__ at the same time, which is ugly and
inconsistent.

That's true. But since we already shipped a couple of kernel versions
that used __ASSEMBLER__ in the UAPI headers for certain architectures,
we might now break user space programs that have been developed with
these kernel versions if we switch back to __ASSEMBLY__.

Thus let's better always use the macro that is defined by the compilers
and standardize on __ASSEMBLER__ instead of __ASSEMBLY__ in all of the
UAPI header files now.

Suggested-by: Thomas Weißschuh <linux@weissschuh.net>
Link: https://lore.kernel.org/all/2030a963-33bc-43fe-9a2b-9c626d7d8360@redhat.com/
Reviewed-by: Nicolas Schier <n.schier@fritz.com>
Tested-by: Nicolas Schier <n.schier@fritz.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Link: https://patch.msgid.link/20260722072928.24500-1-thuth@redhat.com
Signed-off-by: Nicolas Schier <nsc@kernel.org>
2026-08-04 22:34:06 +02:00
Can Peng
d2f5a60671
spi: bcmbca-hsspi: disable clocks on resume failure
bcmbca_hsspi_resume() enables the HSSPI clock, and optionally the PLL
clock, before restarting the SPI controller queue.

If spi_controller_resume() fails, the function currently reports success
and leaves those clocks enabled. Propagate the error and disable the
clocks before returning.

Fixes: a38a2233f2 ("spi: bcmbca-hsspi: Add driver for newer HSSPI controller")
Cc: stable@vger.kernel.org
Signed-off-by: Can Peng <pengcan@kylinos.cn>
Reviewed-by: Kursad Oney <kursad.oney@broadcom.com>
Link: https://patch.msgid.link/20260804071904.860842-1-pengcan@kylinos.cn
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-08-04 21:04:13 +01:00
Arnd Bergmann
6a05421154 Qualcomm driver updates for v7.3
Add Maili platform bindings for SCM, IMEM, AOSS, and PMIC GLINK. Add
 Shikra IMEM, RPM SMD, LLCC, and UBWC support, including handling for
 firmware-configured LLCC ECC interrupts.
 
 Add the generic Peripheral Authentication Service with SCM and OP-TEE
 backends, and migrate the MSM DRM and IPA drivers to it.
 
 Add SCM SMC-call tracepoints and configurable minidump delivery through
 always-on SRAM. Correct SCM download-mode pointer ordering and improve
 download-mode probe diagnostics.
 
 Rework the UBWC configuration database and add Milos and Shikra
 configuration. Add protection-domain mappings for SA8775P and QCS8300,
 support newer ICE versions, Hawi subsystem statistics, and SDM850
 identification.
 
 Simplify Qualcomm SoC Kconfig selection and architecture dependencies.
 Use managed resources in EBI2 and RPMh RSC probe paths to correct cleanup
 on failures.
 -----BEGIN PGP SIGNATURE-----
 
 iQJCBAABCgAsFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmprfkkOHGJqb3JuQGty
 eW8uc2UACgkQCx85Pw2ZrcUUVQ/+NufSVHC2E2W/ZTTVGAWCoB9rvNhPaPCoYrFY
 WsefQzhdCk54rzzb1DsVyj/Lh/nKVApdH495TWgWrUpRuq6w0xjHkYKklQNp7Hqt
 Lr2GNx90mvQDgvj1RNa++oI8dhpeEv/d7as0xrwQibi85mw/F/jGpHdw7VnfcRF5
 XcTIIMtA+M5KWxmTBnwH+pgB5aaEDUED82mifcdOeNgI7l6A20jBdT0MJ8SZBMff
 wTMbuSOOEJlNjtcGtFm4EDdpVsoL1s4vAt0PGyVPpGvT2WVE1aGffPS4dMv4kNDU
 xFQsh6ST+J25W9r4zib5HB6FivgKcEvkMmZb4ca/bcJGxAEb163Yyay8Z+sz4kNV
 qEHjbm7zSfUiKELsFzzaulnLhEghZ6R/CQua+XdXq5J3QgKocqJ3m/a2Mm5rRXHv
 XUE+aEy/cJdxxhqan8BZ8Ihn1SkMRCDNWTVopi4H12RtIfXBII/9LEWW8fp66GlW
 55TYLjTrdA5V56/NHmm1fsHDP7KojHUTipg9WL07OL/LggJExOvBpBZIoCQPUOR7
 bB6jlf8bu00Ecur091+HkFD1ePcT0DTO+1tHdpG2mv27WXVVsFAZmIDp3G64cEn3
 vZOVNDEZBjyE/MMqKwd+W0ERERoQnW+YYdtigN5tWmk/+M+/11D/10x6FPr1Q+38
 OdidhsU=
 =+KlS
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmpyRQsACgkQmmx57+YA
 GNkjJQ//RfK/MpMrLOk4IPiA/+Ek93eXgVqfcXwUTAhg23HddOkOgZugVLi//xv0
 flRkb/XbOc6aYOTIdmR6thfFOMkUbRxQl5EqSypNEWsrjsiVKbxmqH801BPPgFRw
 KzbmqNNe1O0koJ+p7b6g9kwXzEyF9iyBqjZqfWfbayqcznI1DC8x2Hs8ieBQvsKj
 7igqDpLE2XhRuBhIRxOmKb17nvYaAS0/Jxa97Mhic7CEyNmC0EWUWXwJzWDJSBSv
 253kTU6JVXcm7BI33lIvkAZbUwMo8wtz6hApJPj+JCELXNho9CTondOMhQ+lLZmx
 kZ3yJQRGQS41+nb6BVfVJkqfkErnxRM18sYbMzpEk79mnoN6OtomMypNQozq5U8/
 qhA6sgygjL/jI62RCUTmiFhTXgkBXRw/yDiAUihaYWmCExUc/TCXw2Yb1FNk9m5m
 k9l4F9ynH1DoFRCtzOzqtO72ZqBnbuELnYZ/AA/mw3bFyHAKeLfmQpREqWfDcJCO
 g3me14uHHdWaMcoAICOBv9Obx1blxXU3vx6Fvm7ZJU4yygWvM/8BrroViHRGtUOb
 a8vggrcangB6JxMMX3AygpYu0kIBILRXUvsQccavcNkf5p1p0nQhKEgdHpD4n72r
 f70dhESEmIOLAxUI+ByQIh6deUJCPbOa/RE4F8QRaoTz8CcZKFc=
 =5310
 -----END PGP SIGNATURE-----

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

Qualcomm driver updates for v7.3

Add Maili platform bindings for SCM, IMEM, AOSS, and PMIC GLINK. Add
Shikra IMEM, RPM SMD, LLCC, and UBWC support, including handling for
firmware-configured LLCC ECC interrupts.

Add the generic Peripheral Authentication Service with SCM and OP-TEE
backends, and migrate the MSM DRM and IPA drivers to it.

Add SCM SMC-call tracepoints and configurable minidump delivery through
always-on SRAM. Correct SCM download-mode pointer ordering and improve
download-mode probe diagnostics.

Rework the UBWC configuration database and add Milos and Shikra
configuration. Add protection-domain mappings for SA8775P and QCS8300,
support newer ICE versions, Hawi subsystem statistics, and SDM850
identification.

Simplify Qualcomm SoC Kconfig selection and architecture dependencies.
Use managed resources in EBI2 and RPMh RSC probe paths to correct cleanup
on failures.

* tag 'qcom-drivers-for-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (44 commits)
  soc: qcom: llcc: Skip ECC interrupt setup on Shikra, pre-configured by DSF
  dt-bindings: sram: Document qcom,shikra-imem compatible
  net: ipa: Switch to generic PAS TZ APIs
  firmware: qcom: scm: Add minidump SRAM support
  firmware: qcom: scm: use dev_err_probe() for dload address failure
  firmware: qcom: scm: Fix missing smp_load_acquire()
  dt-bindings: firmware: qcom,scm: Add minidump SRAM property
  drm/msm: Switch to generic PAS TZ APIs
  bus: qcom-ebi2: use managed resources for clocks and children
  soc: qcom: rpmh-rsc: manage PM notifiers with devres
  firmware: qcom: scm: Allow QSEECOM on Honor Magicbook Art 14
  firmware: qcom: scm: instrument SMC call path with tracepoints
  firmware: qcom: scm: add trace events for the SMC call interface
  soc: qcom: Avoid SCM and SPM for cpuidle drivers
  soc: qcom: Make important drivers default
  soc: qcom: Restrict drivers per ARM/ARM64
  soc: qcom: Hide all drivers behind selectable menu
  MAINTAINERS: Add maintainer entry for Qualcomm PAS TZ service
  firmware: qcom: Add a PAS TEE service
  firmware: qcom_scm: Migrate to generic PAS service
  ...

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-08-04 22:01:10 +02:00
Arnd Bergmann
295c00af8e aspeed: First batch of driver changes for 7.3
Just the one patch adding MODULE_DEVICE_TABLE() where it was previously missing.
 -----BEGIN PGP SIGNATURE-----
 
 iJIEABYKADoWIQSoUT1x3bOSX/nAa8ajM9GZTrjhpgUCanGCyhwcYW5kcmV3QGNv
 ZGVjb25zdHJ1Y3QuY29tLmF1AAoJEKMz0ZlOuOGmaa0BAKHxu8/ZK3YwE6ATIE3V
 pINjZsNdq8LgFRdJItJC2CfCAQDTuKHH1Dqe9xgmFUGqCWIRlnMra6dju6IA1u9+
 h4P8Aw==
 =UBxv
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmpyQzYACgkQmmx57+YA
 GNl/Kg/+P6332RgWXXMcsEwV4mQk8DUiJUEU4f353MbOs4l85nvc93Jq6MOKYKdL
 pHMyvTzFxZKHNMqaRiUEmFuBi/Dthcoe+TOdo6ZaIdb0wOzNbRXIoaoNP4vZUz5u
 iskOrt1BX9C7o1GV7LQLlW8jsQGctbLx6MgA2tnEOgIeetLR3QPWSqpUgY9Mczbs
 MsXpYPYe56T85Sb4rp3WxdpuIcIRkipv0Ks7E4ZPsZcfBjkM6nVKqielELWCayMM
 oGyJvn2OnshbBjynS13jWBdxRlE9+3d2C5BVYdvY40KyaDSOEBYJH5RnD6GLqYwE
 kFCh38yz21n+9b9AHf5vWZc7xCX6YCke3H80oDluOuw+D0m5zfqA/3TnmJsFHcwh
 fycuA279euiNZaKupkne3opSWtqBzmnrgoRKsZT193UsTxbnIrJgEFa8vE9yj/YY
 QlCuHQMbXVxy3jAn8jLJ4wTZWTK1G/2D535n3hrNYiQ9QozqSEdoiMjIMZCyRhWh
 rd/cMYYhDQeS17LtjbDdRter0SqANYWz0hTM6SVs+ae63Dwm+z1fdhd8kWcvmigq
 GIples8TFTIQp7tfQ5vSOYAsWJsZ6DpQ+yMbFkGvLLc19Dd2X7Asgxo0gTGe0VDc
 zp2yUZNEI3jKcew5kOIRCFk5v73diIooS+5kLQ/efP7DYiSBxMI=
 =K/cr
 -----END PGP SIGNATURE-----

Merge tag 'aspeed-7.3-drivers-0' of https://git.kernel.org/pub/scm/linux/kernel/git/bmc/linux into soc/drivers

aspeed: First batch of driver changes for 7.3

Just the one patch adding MODULE_DEVICE_TABLE() where it was previously missing.

* tag 'aspeed-7.3-drivers-0' of https://git.kernel.org/pub/scm/linux/kernel/git/bmc/linux:
  soc: aspeed: add missing MODULE_DEVICE_TABLE()

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-08-04 21:53:25 +02:00
Arnd Bergmann
67be500fa0 drivers: omap updates for v7.3
- bus: ti-sysc: Fix /chosen node reference leak
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEe4dGDhaSf6n1v/EMWTcYmtP7xmUFAmpwuDQACgkQWTcYmtP7
 xmWckxAAo++yasy20VHwt+nzqVik2HRJG7ryRVCjyXdsHbY2Y8IwcAx34TkfUe4M
 Dzc6Ysx1RGlvwmq7ErjymjCrKL/oKzTJL1sUFB55mrpeVU6VokWPokW2tXK+jHxV
 fTjaNLg9V5TXYmS6ifzWWL14/Zmy3V8liwG35rENRIJ79uaI3RWqD+VYJMOYZncc
 NuuSj2l6RLxagu10PMPFAC0odWZzOXhdZgKrydQYjS7MlbxAqxF22L4p6cfEzRax
 h5ytOhWyGAZWpw292zx3NkvUnxl0pp2oi4R8KekyBIH6gRwAe8rCZWNdNkGTpbiR
 rarkSDRoXYiHbJyeuH3qdN1OpZ/CWe1a18zfYAYEaWx3jF+Nx8LcMuEkdASX87pK
 JOd8p+HZbmw61q8Hqg8+ad1JDYPDcY7ls8sj46sSDtormLZBHL98PAa+W6wBEnxs
 lD9KOqORRikmraMErSV73DXHST6a3XSNv961oU2lfzEkV5zPDJFKBwqOxVLYa1j9
 7EQmOncn5i0PN9p02vcuYrpbXsWkVQOaxgngTEqRIQV+ONRKEHU0FTeKjNC67kMe
 pJ8kHrS8bFnZJUywBBQh9kiFR4o4Z5X8AC5R5U1XUBRVXyxB1WQ75+a1FB3vxGNY
 PCTHwzXJ04mW1plRBFTt3MhOOZOJK/lGsii0VtuHP+aB8OeZBhQ=
 =9bFq
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmpyQtAACgkQmmx57+YA
 GNkyBRAAuaftydIrcUA7SZ/dsgcnxPnzk1I+BjR8N14oxiv42VKMtyvnTkq8/F9t
 pKqgpM/mw/kLw5O1js5RdiGw9NyCywW4QWkoNazUEQivkMhmrBjhRDFMf1i+sshQ
 JEojnF8pOAdtfNZh/gvbCsoBOxhyIgc+cfZ11AwXZftkH+1rICu+ciiariwPw7J4
 gV16zSAnpOh2T0gSXwjdhqihI1qbM5iUCAqUxfHIBZGdAL7HmtEHJA1IV9sRqFaj
 CGXQgyF60bjJqmUju3e7QG2mH4SjcSuuHJX1/VB9y0Rm3u+T5E8Xn+SsljNXisL5
 vtqsAYH3DIAxYyYg1ys80U5MPYLHk46Vx1xbWmjD//CcvjNHECbXUqEygN3DUznC
 JQncf/CDkdmZid7CARtR6+VcsRnm5wJQxo7OEjqKmBBSCUZ1nt+7srFzI4hxNEVg
 0qvZaaJY7q+nJ2+gpv7mQ+PSDVSsNoWh+F73O0IGEHaVS5b19578HJUaoCja/mlQ
 jFW7r3lCJpbFHFXydhgXzdOqAZJeZGSPhAIsHMEWXfq13rNeief7VFu4MY+9uE2+
 Rc34JVQJ6Bbhh1CZBy29rIiKnptEcjZZ6d3Qe7rz2lNdH8evZ426lTarHCKmMtOg
 Lcgi7pyTLeg7HPvFm8B3TWQ20FM90lPFXiO2VbyVfUtDBxSsNos=
 =wdEr
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v7.3/drivers-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap into soc/drivers

drivers: omap updates for v7.3
- bus: ti-sysc: Fix /chosen node reference leak

* tag 'omap-for-v7.3/drivers-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap:
  bus: ti-sysc: Fix /chosen node reference leak

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-08-04 21:51:41 +02:00
Arnd Bergmann
3a83c24d74 soc/tegra: Changes for v7.3-rc1
Various small fixes for multi-socket devices, redundant error prints, a
 Kconfig dependency as well as a patch to remove FUSE data as an entropy
 source.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmpvcScACgkQ3SOs138+
 s6HPdA/9GJuNIlC5yerd/tZUdgTRUCRLe8XlbfAX9vw3wYcxCEoqu082sr1O9HWV
 5y70TKrsxrBE5ugibvL3LOSTQ8jCSnvDuyfBFG0ZwJ7u4EtvW70VG4g6ZUkP+DVy
 aPdgJZ1Zft4/d3RsmdfZj+MYDyCQvHP9UYCMEBEJLOj8jAK3PuSQy7KrRDzcovBQ
 xSlijqYtenrFZzzt0NdshH+rrGtLHrzJXB5itMi//zRLoDCz7AGDSwKJ2NWm+fXU
 o6bn1OZRC9TtNocOfKTKzrsUPGjfezhtG8+SKFscOZO6Wqjvth7TwFJ03HNynq2I
 5A28x4tNYmuU0+kv5YrvLgZ6PHLbL+gmid4G6GwZtggOJEewvOBih6sNHesVUyAT
 QlCol2PonGi9SHMn5N+dU22UZipZe4JF/uoxWRKFzGXPIjkPnvRJVQpKYqmO1Tyw
 c3f+TGF4JMGP/z/w3vxT0WgYqQ8ZHwhQdDOwfVX3q/w7Nurn6esBMtO5M0f+As4+
 IQxh+/KZ4p8Y250q8M6IWVBy9X+8gCoGcQzw3NIPAhvj3nor+8LG8TecmxzdZcbR
 shBuN6OUXTBGvXHMiaEX1QGED1Am/u1Sb1W43HWayh9XOXQZmLE8kOAkMwiSlvzv
 u/4euYCvnOYtw/RpSz+a/aUSrZfVs3/5taBc2AssZ3E8WBmEr70=
 =2BEF
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmpyQmoACgkQmmx57+YA
 GNnu/BAAnxdcYeZcENwvkDr7aFtxnmEhdIWly5N2zSMFRRFXVgdVqUiSeKcpiNk8
 VV7/ye94Q4sp3oj/DluXJkK3/Ma57rMG/WeXHShtFRalQUc12v7OfD0BgGAieNYW
 Vqg2ZgR25FcMhXDE2+g4LrkinWMQC/o/csyVaLQXxWDQL4EqSzAcqQ5yRn3JL3x5
 Qs4Zd5aZbcRcpDFzXt1tefAKO2LSXrQM/pOuUo4Yf5ZcnfehAILmQYAR066TV2u3
 plOLabOeXNSsYjHhUobLY6OIy5817OWRXgh+khRVAXjf90HX4Y+I68RjlgC/QCWQ
 A9XwdxLM1CDDs95m166nTechcI05DysRXdvqTEfRpnNxk08gc6zXYrcvSzWd/kcn
 HxdPmsWgZ5Hk4/ikmJPBx8U7UvDwnoBWFSaP1Hv4ZmIk60tLH4JdXRUGivewZnIB
 J9g0AbY2IzHI4wJdLrNvgd8xcufr/3SvgX34hT2n1UOnmlbC8uYrzNx9TN8HiZIQ
 CFQZzYc8FFWlzE24y0rvGOgQa+Jbj6Vq5+9q3UEslcOZfkEGZYjN+TkL4HLruuL4
 8tRRA94fWCa+aE7QZ3l/8OnFsYjHcR46ufjyS0BLxfvx/usaIXyJuaW/tMP2dcbX
 2FKi4ZsANBXt+oIz3C5NZu+bexDo3J13PzjYJNyGsH+9Xq32v7Q=
 =+3bz
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-7.3-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/drivers

soc/tegra: Changes for v7.3-rc1

Various small fixes for multi-socket devices, redundant error prints, a
Kconfig dependency as well as a patch to remove FUSE data as an entropy
source.

* tag 'tegra-for-7.3-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  soc/tegra: Add PM dependency to SOC_TEGRA_PMC Kconfig
  soc/tegra: fuse: Use device-specific instance in suspend/resume
  soc/tegra: fuse: Do not use fuse data as entropy source
  soc/tegra: cbb: Remove redundant dev_err()
  soc/tegra: pmc: Don't register sys-off handler for multi-socket devices

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-08-04 21:49:57 +02:00
Arnd Bergmann
484ddb357c Amlogic drivers for v7.3:
- Clock measure debugfs fixup
 - Clock measure support for Amlogic A1 & T7
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEPVPGJshWBf4d9CyLd9zb2sjISdEFAmppuGgACgkQd9zb2sjI
 SdHMxxAAuWIZcX7X4r5NEuX0FIv9segRbi9RvWln3mi23d6tP2WI6b1Um54iYloa
 NtFY9lFtWDDEIwqh+5cSuqV2GtkPHccf8DuFQPScJrcqG/YuBEKiGam2/gPqkUn9
 cYeWaaHzPhgRp14oJ4FRq+aazKb1HncSUBiCXl7H4iv1tWYfdFqtEh/06e0OiNGc
 p/MCs61/6RRjP2ofrxn/+dlrk/aX3GMeIBHqIxObCaTbsa6rA4z/lZqfr+V+UApk
 C7gIEcr1D2TBrCx6Y/MiiOwNyurHFVKbSb62XAjxOLRqoAHnI1GECweO6J0wcz/n
 Z/evQMmzgxcOsoQO9DweRJ8WAZiKsjBt7FkM6uyDBsb7XjIfqHIvqAQMnXfQnZmJ
 QdMoadmuJ4N2WHu/w65BrICEJj0gHuN3Cc51oRMwp8Z6D53yBXqwGuZ0ruLoBB3G
 niTzguF91H8/ExxFrNjT8X3Xsn61Yduz+cA1/zAjnWIDjwS80a/kJHneqwFB8y2k
 CxfUcLaEejgiTcZOiRRRI/zHqS+hMpbvJw3OVZsrDkAXoabjDzT6c+i/7Yp91IUj
 a3xf0Ri3IAZRkMEGDvZw4jYeZ5brMCMgTpGGPNXjHkCiQw8AKLI3bEN2oOdFUQid
 dvHFCoHL96DqCjQQgdWT2iyXSKdkq9CI667NKRaJjxjIKdONxmI=
 =fKAj
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmpyQg0ACgkQmmx57+YA
 GNmaGg//Wtu6r9JQek5bWH5ZYXBcJi2mZXH0lHm6/mylqOpVaLZ3Ivguey20gNhg
 AqMeh3QlhrfaG4yxzR246j4WnVAi080CVU9rt8Z8oK0ox3U18mmGcL+u4vzr0blZ
 751htm7fZ4LXaJjp5ahBfbFuUpQyi9hFihPfjY1ZBUtkc7KgigjrRPYi/41I2Sx6
 r7yW9A3XpAlA/qhhOt6eAC8iidhimp6U4j+HQxa9ynFJk1E0hI+mI4MktbnpXl2x
 Z2kR6axrgJpgIMIIz6ywLyvZxUNDnQLPGhyRf3BK+m7A9BmY+Ej/FLmKPnII/yIp
 XBngV9ES6Kd3MDuTlGhh7O/IfZETatDjVw8XQfReGK2dK8K/XTswRU4DVFqdQbRB
 nEjKdOHCpi/AYpKGbREHfCd3b+EGwHfLkH93lmy1aWDF6wPzfZkR1+UNsBETPUjL
 qt5D1PcL9tNbZriXl3HFixFQlsyKP5My1h+0jmFSbCJQI7mSnM3B1NDajSSYN0ny
 MBaibHcsAApH/ZEQE/e8r+E9wNabHOLlen3owHtwuRlSvA5tMeGy2dzu3q8KZPC+
 lUhsI3Sa8l2cMTvLzoJVtuH2A8oQfJL+bEYeSrEV4U1pIny7a1jkkbaQWhEEWsNL
 ws0Wfs/u4sdSCJinZgy3aLHhOyQ+v5Mfp4aHWSeskWtPhahAaBY=
 =wjNR
 -----END PGP SIGNATURE-----

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

Amlogic drivers for v7.3:
- Clock measure debugfs fixup
- Clock measure support for Amlogic A1 & T7

* tag 'amlogic-drivers-for-v7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux:
  soc: amlogic: meson-clk-measure: remove debugfs tree
  soc: amlogic: clk-measure: Add A1 and T7 support
  dt-bindings: soc: amlogic: clk-measure: Add A1 and T7 compatible

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-08-04 21:48:26 +02:00
Arnd Bergmann
1ec9093bc9 ARM: Core Tegra changes for v7.3-rc1
We haven't had one of these in a long time, but a __ASSEMBLY__ cleanup
 patch and a OF reference leak fix came in that make changes to the core
 Tegra code.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmpvcMYACgkQ3SOs138+
 s6FTEw//bhqJ10GFP5k9p2oGzlmvavxlmKiOEYmPy/WYO5R8D8X/5Wqia40ZbpTd
 oQNo7dfYApvDTRDwHihl4irJ0WeS224FHgvbURExg4k9m41SuSD2j0agMtKGJC7r
 6C58m2F1bpSXEFYN+k8jkezi0k2JSqPprHLpPGJkt/15xuVxDUUVH8vKtIs0AT8c
 L9pSyHYLmkTCt2kQfg6Yc14JfDR7Lss0qUH+33Wum/FPmKga9OWtqmw7s/ILsfOt
 sfxilpupk28+Rq7f+ZaGDMHV6Ern6zBPiqSQsqdnH6vYI0Kg3kqLf+zfhdjoPSaf
 BL4tQM4NQ65MgjkdaT1iRIlrdNDZcw7ToA+Nli+MSEddfwAGUdEeCMqSDtV7ox5b
 iDycG/PwEwtVMX1wMd8I1d3UjiDntKqvfhOUru76m+Yt8mFGdf/eZhRGTrw3IS0n
 jQcNexrSAyuNku3qbsPBooUJSOglBY6S+QOghXJ6m4jeqOCkqA5kESHLWtoxdmXT
 NPXWzrya0MIPKOxV3i1Jsqb84aKi/Haq4HeaaqxBiYXv+XlH0xAnLFZBdSHIaL8P
 oYSXBNej1gt5EJeD82GVZGKZbVgyGH10tjYB8/FLMkOAaQ3LzVU/ze+ZLtYQ4GML
 xfrjOFXZVQsrSQSRYQzeBMvjuAr1r/ZjL0mD6V2l0jjTO5O6Ve8=
 =SQ4n
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmpyQQIACgkQmmx57+YA
 GNkIKg/+MV9prMCWSQV4z9jIe1NhmKajbqROYQsNowijBoS8z5fakO7DujZYrFOY
 WF+vgxfGl+tnaFvz+fZg6rW5snxtnzLtNU9KszQCzQy1je6LUY+sGKrKhdzWZjoM
 DWK492jUwf6/nIUlFWxihZZ7IiILDoUHfeeB8nFYO5Iu+WZx3juSwuqStI/feKKM
 bX9/bkj2dwczAeHcAQv8uL3UfhOr53ANf7p53jg6sWKt0FDSWeLLSbmTJae9sVLj
 Verx38c1SJqtGO2RvTA/AMhdrZUyy99ZoV4rHcXMHMfISQpaxKcLfWJHlyAXDHdt
 sr7YdAPpRf7rA98xvCN53/9FQVru+UcSWsBIwL0531xkWdFX66Ps4qz1KrPYR4lI
 6WSSFjsiCGtk1aB/Hh4pDKLNK/7hk9osvgE39bEeiKi0rMtKQ1ihcTShx/ur0wND
 cqghv/bVlbCWg688vMq398z3LzHsWe40x3pWRx/5vbzvLZdNbFlNnqXBzR+fmz9j
 t4hLh2UI7/Y6DlK91FP8ndLv1bBNndX9AfRbTXfb0sd5KcY7qZkyH/D/hOF8eTiK
 NZ0q9eHHjrGK+3/LCVg3uM0a971Ody9n8D3fopZIxqeJcxZVqSNNVkt36Qt60/tr
 0+1q6puIXWj642PaMA+iXHetJa0KN4P/7vSIWkDpE6eL7jQLHoU=
 =72S6
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-7.3-arm-core' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/arm

ARM: Core Tegra changes for v7.3-rc1

We haven't had one of these in a long time, but a __ASSEMBLY__ cleanup
patch and a OF reference leak fix came in that make changes to the core
Tegra code.

* tag 'tegra-for-7.3-arm-core' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  ARM: tegra: Replace __ASSEMBLY__ with __ASSEMBLER__
  ARM: tegra: Fix OF node reference leaks in IRQ init

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-08-04 21:44:00 +02:00
Rosen Penev
99ddfbba9e
ASoC: xilinx: replace OF with device handlers
All of these usages of OF handlers use the node from the
platform_device. Use the device member to simplify slightly.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Reviewed-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Link: https://patch.msgid.link/20260803231823.95147-1-rosenp@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-08-04 20:43:19 +01:00
Arnd Bergmann
ec26714d22 Allwinner defconfig changes for 7.3
Enable the LRADC for arm64_defconfig.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE2nN1m/hhnkhOWjtHOJpUIZwPJDAFAmpwuXkQHHdlbnNAa2Vy
 bmVsLm9yZwAKCRA4mlQhnA8kMJfSEACaltsKb47wybFleDW6Ra2Vt21VFTJqNF00
 r/H6JGad7ja1FfQ9WqudR+xi4GKmOD8l02rOnBWqO8OBbefxru641iQ04CM/BFzX
 AmkEG8t41uDzR6oMPHpekWy9hWfBjY7zcnRehAMwDBTYUe65oqXHw+Gx9OezioEv
 Ky4versrMy/BZx/n8jcOQQzYaEXpKpLbGcrdwKmAFOgz1G0RIEeV0HTYns6KR03l
 4WrJXulz3f0jJ6n09e7+x/YnZbEvPQk6WGhLJULhtkUSYdFPjG2N/52sMfgUJnBy
 tP3RkwrIsBrPq0i/e9rnYXAAeGoz4WPTF6JdQVpTtDVK2pTYXpC2/VwnSlEfzsIu
 Ni6tGopNrt8ej/f4dSeolLUM+gC3YFaaOJpUwxqrD2cI8EvDPtpZ/p4c7PerP0EJ
 tpEu+jaLgPkmE8AQegUeh1t7YTSHdO9NfyjzNrGoUXKHaMtfpKbOVkBn6zIbbC1+
 ILFplGy6DG9sifwmNv6mOsiF7c8nGUBw9/UVWnoVT7J3aAg2czkquxa7yncpIPLA
 XxQihIbVDouUDbS1vWWPwGLhNIKkweIRJ3fsYWMMNiTeJ9BSqMtzoB/aOhk+rWIX
 wfYevplCOIf9MffGU5Yq45BLn3vXeeTR8XCVuAmU51nGgLTNPgoEpS5sG+SMrOZY
 zfm9L2qF6w==
 =bTtx
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmpyP7oACgkQmmx57+YA
 GNmh0A//XSNG0/Ih8xzq5L0k+HvKitz/eknCIa3l2bnIy2BNQe9gRJqR5J2WDoGX
 p2BTquCl/DwsdR+dXmx9yibSV6F6JC9ISayCfEFIxnzMifSLp2ERQYYWHnK74ief
 08XP/S9rVfK3wdxeYIqwLlqKP4xdfXQKjQOtWNOSFOdgB416zqx2XGNCDw9M6cMg
 s5h/kGVSLRHEE8i9ai4nd3hkCqqkfi/++M3ulEnxDPFjboWaUSoLOHbR5V4ElqxL
 fGeqJHdakC780W8QLdt2gxYVrp/ruSR8keXXyCpotxIyFCB4Fzct5QFsoOs3MyGI
 AWLQj9xEd1GYGxlwAO09ygb7J1APXa4mSsFauS/WbbeTt2myGwldcUYLN50tavN/
 yLARNyh1AIuIhF/84gqD+uTBfNnwzOex/NHWAtzxppq/PF54f8R2QEmXIQ2Y8Md/
 ymTnkuOmxbLaZqTY5hODvbpzV5rsXcQ4GE6Aw9/1reVWFK3bTjvXtkvXycdPa+ey
 0HQW9vAlpU97RwIXAFSFX5tpako+LnIhCgW84eK6V4gdjPeOGDZUClKb+qymajFT
 d+o2ljEXW+cLQcWcBaN9LklxZokNyQ/mqt9PlQHkNLiKcrcgwEvSsgjghUNcv5m5
 Lm850b14yv9ilCx2Zns1pZLHvwI5r8iBSZJjHr8xZBJakaKayj8=
 =IxDH
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-config-for-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/defconfig

Allwinner defconfig changes for 7.3

Enable the LRADC for arm64_defconfig.

* tag 'sunxi-config-for-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  arm64: defconfig: Enable Allwinner LRADC input driver

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-08-04 21:38:31 +02:00
Arnd Bergmann
7cced70f52 arm/omap: defconfig updates for v7.3
- omap2plus_defconfig: Enable multi-LED
 - omap2plus_defconfig: enable things required by iwd
 - multi_v7_defconfig: Enable BRIDGE and DP83848_PHY for TI AM57xx, AM437x and AM335x
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEe4dGDhaSf6n1v/EMWTcYmtP7xmUFAmpwuDQACgkQWTcYmtP7
 xmUqwg/9EAJ2hwWAR77WdXGmhaG61oVJCofGqwcyo6/tMFwgouinsr6JLluCuBwo
 DSSedMqmbmBbb8IXPykFvEAoPNMnre3Mgd/hQaFx7M4a3yYPCEqeYty04XY8iZ7v
 ao/SIvjxBTfI4rVRvnihUlDQI4fN3McuiosnsSlZI0xWaiSO3lMBpP1OKFvLpD7x
 ddc1FikvUsXDIR2SHNLRN5BNZLFEB0D6x+J1SvSKjq6KYvXo/7nNdFES0H1LNTyU
 0nR8SfTMzIYeUEHijzgxQsF95racyuX9fAvLpv1Y/5M/VUkZ/brwh+PO10P4oRTK
 8JH9JVRgrutvRv3jZuhkMXIJgxtQM6MoLH8fTlcRj7CCdtWYXtRgemsP3FURyioY
 63urZAVniSXe8RBhOUgoA+lR0d5Ul15vF+ee2tQ/guXP9UYc7+AO2NMhYP2HHkIE
 Til3ewnnwqZjEEu4Lq5Ucr14jhajDqTB/Xo/oXEkyS1MRoYVmWQvuYX5VDq+71D8
 cWP9PN4WxYgszLfE+s81TWcj9U6DcJd46rzwBm3VmGPcmcTX1zIXWU4szk3WOaQZ
 AcWR8fBdzDOG+3aZt4eCZTpn+mICsTIi0DOYXdgQsUuBiKTP9EPzIw6WjdINzRVs
 C0ayqYnpyNWfglYeCrnvqBgL0iTJG6pl/dnTjVNRIIuMtrj7Rb0=
 =2jma
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmpyP2sACgkQmmx57+YA
 GNmo+RAAti8DcReiCo0SptGNrckX8xTHpdESYvVxYiZnjfs6VPTWcQvApoanTKQj
 MS1s+DiMkwxCJydNPipweIeFS4yUa8ZK8ny35lIWAslhlyC3exHt+SeucaHxgMJm
 AQdyh35tFcA+PgNdqyPs+sb2lTXnKazVkgVbDGzJqBtVP36TYscOZ431mep3kvY/
 CQ0QWRcCGc2H+bnR682yv+8pcY96Xb9vDK0toPKosXQbLcRcCtOs7gerGu9cuNFS
 tl79czZpG1WmYGomW345Ag0GS+DTMSibwSbeOvfB//nJ9LcHqnEgwCJv6fLrX3vk
 eXHJs5dE1wTgOEnulaufbGC1vTwzYQMQTQxjB6z+LBvJxcsaPgL4XY3udeTofvHG
 kTN12iE24SRn7W11zlgcKK4llF1hsV2k+ufuOpmoV7EjICzMK7PdIWCWMe8VUTUG
 Gtyh81mmmd1qsGIAJ6dWu6OFhal8msDvTl5cBCfHNvE6w/w4d35RnPO1NihSq815
 0ipkJuD093GzOpEM/KemFm9O2UtGFx/K61wG3z35/G5WRQXWGdrMVFt4MKP2ewUW
 HqWK8EaA6xHcJQuJXoOwAHs7rqpLjps/bILv3EdAyfqde2KQsh/l29ZrW6MJSjc1
 wmD/VoKTqyczVtf4aj+kPJP/mRCZ/S6sI/oUL91yGgBpjv6Hng8=
 =BQJx
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v7.3/defconfig-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap into soc/defconfig

arm/omap: defconfig updates for v7.3
- omap2plus_defconfig: Enable multi-LED
- omap2plus_defconfig: enable things required by iwd
- multi_v7_defconfig: Enable BRIDGE and DP83848_PHY for TI AM57xx, AM437x and AM335x

* tag 'omap-for-v7.3/defconfig-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap:
  arm: omap2plus_defconfig: Enable multi-LED
  ARM: omap2plus_defconfig: enable things required by iwd
  arm: multi_v7_defconfig: Enable BRIDGE and DP83848_PHY for TI AM57xx, AM437x and AM335x

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-08-04 21:37:11 +02:00
Arnd Bergmann
dab25da95a Qualcomm Arm64 defconfig updates for v7.3
Enable the Qualcomm reference device embedded-controller driver for
 Hamoa and Glymur, the DMIC sound driver for Monaco and Lemans platforms,
 and the BAM-DMUX WWAN driver for Shikra and other platforms using A2 BAM
 hardware.
 -----BEGIN PGP SIGNATURE-----
 
 iQJCBAABCgAsFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmprf/kOHGJqb3JuQGty
 eW8uc2UACgkQCx85Pw2ZrcVpXxAA3aMCBGOZM4Qh03u3kyPutG8seKYfo59IPceK
 QxWqpLzGp6ZEF4yWouCXmVonk4+aSv6DKgUCOH9C/O19/OtWk8djxkWfZwaMTtdq
 9Ce7UvYolQON53F6drc31yJEY8T9kBMvAf2sU4sr6klWUdegoWJ9oQshni5nE5Ky
 aQC78S/PIf916JC8qHMtNtux+r8TPfQV8OiKKBrpSs8QienPi5x3pNEWrY63B0YL
 B524MflZCpTWH7cMgFHp2lnywaFJiotNGEQZht2p63wMNhA1kjk0lwAahcXRHZ3N
 O3ApGv/o00w99dmiA9TSk+EKlfOo9zx7MagnjLfuEbDtAUmG73f5r2WqFoaZL6eh
 iZexUoJFuIbVTgD5K23arAZlkx+9hhCRYCEYcZnrpXD8VwywKi6eygjrUw6tPcVe
 G3M6Se29XSdYmT7WfANyMGPmMUicx7RfZsCrUmTKgVNikjidDCuDp3VxxCTf8Lul
 n46movWKdWCCbpl9NLIou4GNVeMkgO8tzfiRTsNaI1sLZQ5ylz1R7xOHgt37v+SS
 SvfUlsfPfWOXJXcvMg7tVPr7IksSPI4H6mif9iyQV0xGLFzFm1a43sgRz/i/Yy87
 L4yJurTdnuptTydQUGmP52FaIEXCJHfushN8Kh0vbdiOR37aZ7ynGCKwuFe0EjKi
 nXkwngA=
 =QK7k
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmpyPzEACgkQmmx57+YA
 GNkzJBAAosjNe8MTcXur2cEcvac4bfTDoK9Z9/+iOsJVeQpNu8MakDoYBzlYEhAR
 vjZP9B1kxPnpkjvPfWIkN5sT8BUelv/GNCjyplnvLULP21sAYfPN8RD9H543q5uL
 gx2bJqN+wo7Ch/DlkbTDi3EMT3jP4HXGs0xdZaAXQ/ztKijTbBcmDeFbx5cd2xbb
 Jteyj3NsnWNjvT01dbp6Fr13sfn/MPgM17SWQCxTS5KonrYX3XO7aeiOhnrr/XoD
 67EJ9gYEb1hkGU5Lw2YRy/apU/bxMhiI99Uh5MvkoR9sZ3NT5ssKbxXMUs9UO09r
 PFgif22AcDTvSiC82/hbqlsfpH2whW4YCSYGYPVCBaqETBmYp4LQDFjC+pvnB7wQ
 skegOuevM2xPRYBCFaVBQj+8NO2a9HX2QKmK8TNQBrg2WNvgYeGw8TIYXca0Ec0o
 +EzhGDeharz/ur++G/B3KsuDduxqM60hn7gV14EWatnpRvHUv6IiqVXusWjML9SD
 EDHx3Ke58N7p0BR8zVl+RarZAAgLiqyXAC83WBlw9VAHvusumpjNshpuD7CQIyQG
 r8qMCgHTW3HTk5e8tSZlwMG0nGnrikI36C1FLuLdov16Eb0TKWkMdkJeZppLTDmp
 +zucOt00IDv6q9RkPv/c0/9W9b6Kurs+p6IzajkaeDT9gVsVKb8=
 =0/Nt
 -----END PGP SIGNATURE-----

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

Qualcomm Arm64 defconfig updates for v7.3

Enable the Qualcomm reference device embedded-controller driver for
Hamoa and Glymur, the DMIC sound driver for Monaco and Lemans platforms,
and the BAM-DMUX WWAN driver for Shikra and other platforms using A2 BAM
hardware.

* tag 'qcom-arm64-defconfig-for-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  arm64: defconfig: Enable Qualcomm BAM-DMUX WWAN driver
  arm64: defconfig: Enable Sound DMIC driver
  arm64: defconfig: Enable Qualcomm reference device EC driver

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-08-04 21:36:12 +02:00
Arnd Bergmann
c7a127371c aspeed: Update MAINTAINERS for 7.3
Add Ryan and Billy as reviewers for ASPEED SoC patches. I asked both to add
 themselves to increase ASPEED's visibility of upstream changes.
 -----BEGIN PGP SIGNATURE-----
 
 iJIEABYKADoWIQSoUT1x3bOSX/nAa8ajM9GZTrjhpgUCanGGJhwcYW5kcmV3QGNv
 ZGVjb25zdHJ1Y3QuY29tLmF1AAoJEKMz0ZlOuOGmDFoA+wVan8QYBaVyH4ESK0nz
 73koP4V+NcoMRFeH7WHlKi3yAQDkXhq553bJXUlEhM8Gmy8A+29bjc1YsbwqQ1k9
 DBw6DA==
 =IW7p
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmpyPqcACgkQmmx57+YA
 GNka7RAAgSHmYtLxG557sn7Esdovym8DDG53hUGimyzXbGm2DorV51kNzDyN9tUt
 S4Qys/V9NjqAGl7Lpk91uEFvfY5Box6hE9nq6kxzKpOmqhEvAaqhEEsFp27qv7Ce
 Qtiofw8705H1XbR7l7oaHvuUVjgRHdG5PYsHZU+6PADkVWGPIoeETUiToANfnjz6
 b0JzNtyqPZFvjolt19p6LDENWEqwmONlR4CDqBWEHvZQxt5tizq1iq+cFb7mO+gg
 4xvYVd4s0m8cL6l6ycJx3pXEk6wQL4CyZKnVS+kuVoA5wJzUtq4oPtIVdC+2LXZA
 j66GdUxVo2YKqcV7m6kT2xFo8NBAOQrcVTFfe7qFh2qmgcFDm415j7a5I5xN2YsX
 KJh3XefNQjP5y8JrA6K+o3BaoDrLRqPk4f6P9I1yLIjZV/3YjXoh/Ey6ew3DfZi0
 FURUTrLEKNLI+PKaBFxFM3oLBn/K6twkBrobRKoDa5OQHkE0h4nS3Qz4esFRARK6
 PyA3oqAdbx6fFVV1rdiJQk3KM+ctkvoIYAu+n6Gb4ahgTeZhxUHkrVRX7tUdKrqI
 wlTpd3N1km4aGkJD62HjLgdCPORUWLU9GcDicu93XvmtSQcajYERIKgM89sK1Lqr
 XAVA3YoRjU3xtdrSEQqF74vrXJXzykH13SPDGdf1sT8mZKDCO4Y=
 =qDYR
 -----END PGP SIGNATURE-----

Merge tag 'aspeed-7.3-maintainers-0' of https://git.kernel.org/pub/scm/linux/kernel/git/bmc/linux into arm/fixes

aspeed: Update MAINTAINERS for 7.3

Add Ryan and Billy as reviewers for ASPEED SoC patches. I asked both to add
themselves to increase ASPEED's visibility of upstream changes.

* tag 'aspeed-7.3-maintainers-0' of https://git.kernel.org/pub/scm/linux/kernel/git/bmc/linux:
  MAINTAINERS: add Ryan Chen and Billy Tsai as reviewer for ARM/ASPEED

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-08-04 21:33:56 +02:00
Arnd Bergmann
c73d40a1e7 nuvoton: First batch of ARM arch fixes for 7.2
Again a one-off change, fixing OF resource leaks in the SMP-bringup code for the
 NPCM7xx SoCs.
 -----BEGIN PGP SIGNATURE-----
 
 iJEEABYKADoWIQSoUT1x3bOSX/nAa8ajM9GZTrjhpgUCanGNzhwcYW5kcmV3QGNv
 ZGVjb25zdHJ1Y3QuY29tLmF1AAoJEKMz0ZlOuOGm7q0BALVNMCCpkq7EUdoXlLXQ
 kKLaa/eHSsRjlVkWysp8KMNhAPitU483DtqvcGiPeLD/ljIc4SC6CubwoE0YcNdg
 SCkL
 =jyvO
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmpyPKcACgkQmmx57+YA
 GNnK7Q//QYOANi8ZC4dUSgypONH8evH/heNwCKIzHM836KIdHVM3DnsFLBCaK+n/
 dk0L1qs+Ko/PbcwZ0RSD0S6D8MGRpd1sV2FzHtTgnB0Z8r4aRJ0YPB2V3YbBsYf3
 q5QZfbfAgvFA4hCtXTkhK0rzjiHKaJHUBHFeKtQKzISiQ5FNzw3IODV8uy8ZTxQS
 kpfbwVAepwpJ71/EEhRlXySrbr4q5Tk9DVat6rPXVUPzyAmb0lVCa0QQd4JaWKF8
 OwYJjjNjJZvR6/8Xkr2z8+rio4/5Y7z0O5O7QzXHcB8f7098Tyq3We5s2wjKPjiW
 rAITG2uuesbQq3voIWQRtppRFFENZlCTmtUkkYJbuH23lERdbnGzJWeel0q/H0kR
 weeTUpGcVYocCh43OIhMZ+n5/vQuI8Xd7Yf7phHrXrx4y+UOVHCWA+4+N02u1qZj
 ufviSp4VZdepjBQxBytrd0LWYIvzsQOOzWHMCoUiWCz1uAI3b9LISupz0dXPLPtv
 xj5TbEm9UFCeQzFav6bvzvO/Wwy/XLKsm65V/T2ixeYsUtaKLDw8dqwgByx3TjNv
 3BUeVtXAn0m7WBM1EP+1AKuKG+9FcU+TcnvBKF8LgVh7q4zZYuKBAWZAHuuEvLZv
 eDtMpWL04b/IDt98xMipOWrfnOEb3Vgwr40o3RWxP3ZBOEXi8+k=
 =g+dz
 -----END PGP SIGNATURE-----

Merge tag 'nuvoton-7.2-arm-fixes-0' of https://git.kernel.org/pub/scm/linux/kernel/git/bmc/linux into arm/fixes

nuvoton: First batch of ARM arch fixes for 7.2

Again a one-off change, fixing OF resource leaks in the SMP-bringup code for the
NPCM7xx SoCs.

* tag 'nuvoton-7.2-arm-fixes-0' of https://git.kernel.org/pub/scm/linux/kernel/git/bmc/linux:
  ARM: npcm: Fix OF node refcount leaks in SMP setup

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-08-04 21:25:25 +02:00
Fabio Pereira da Silva
70ca6a2ab4 docs: pt_BR: process: Translate CVE documentation
Translate Documentation/process/cve.rst into Brazilian Portuguese and
link it from the pt_BR documentation index.

Signed-off-by: Fabio Pereira da Silva <silvapfabio@gmail.com>
Acked-by: Daniel Pereira <danielmaraboo@gmail.com>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2026-08-04 13:23:12 -06:00
Shenghao Ding
431c15610d
ASoC: tas2781: add capture_profile_id field and update the tuning_switch function
Currently, the TAS2781 SmartAMP driver uses the same profile ID for both
playback and capture scenarios (e.g., PDM microphone recording or IV data
capture). This makes it impossible to apply different DSP configurations
for capture and playback, which is required in real-world tuning and
production use cases. With these changes, capture and playback paths now
use their own DSP profiles, improving tuning flexibility and avoiding
unintended profile conflicts between SmartAMP capture and playback
scenarios.

Signed-off-by: Shenghao Ding <shenghao-ding@ti.com>
Link: https://patch.msgid.link/20260804111433.1148-1-shenghao-ding@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-08-04 20:15:22 +01:00
Sang-Heon Jeon
adfe005732 cpupower: remove conditional return with no effect
Both branches of the check return the same value, so the check has
no effect. Remove it and return the value directly.

This is the result of running the Coccinelle script from
scripts/coccinelle/misc/cond_return_no_effect.cocci.

Link: https://lore.kernel.org/linux-pm/20260723184538.3888637-36-ekffu200098@gmail.com/raw
Signed-off-by: Sang-Heon Jeon <ekffu200098@gmail.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
2026-08-04 13:12:06 -06:00
Can Peng
2b62c2c134
spi: bcm63xx: disable clock on resume failure
bcm63xx_spi_resume() enables the controller clock before restarting the
SPI controller queue.

If spi_controller_resume() fails, the function currently reports success
and leaves the clock enabled. Propagate the error and disable the clock
before returning.

Fixes: b42dfed83d ("spi: add Broadcom BCM63xx SPI controller driver")
Cc: stable@vger.kernel.org
Signed-off-by: Can Peng <pengcan@kylinos.cn>
Link: https://patch.msgid.link/20260804071831.860784-1-pengcan@kylinos.cn
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-08-04 19:31:32 +01:00