]> git.ipfire.org Git - thirdparty/kernel/linux.git/log
thirdparty/kernel/linux.git
5 weeks agohwmon: (adm1177) fix sysfs ABI violation and current unit conversion
Sanman Pradhan [Wed, 25 Mar 2026 05:13:06 +0000 (05:13 +0000)] 
hwmon: (adm1177) fix sysfs ABI violation and current unit conversion

The adm1177 driver exposes the current alert threshold through
hwmon_curr_max_alarm. This violates the hwmon sysfs ABI, where
*_alarm attributes are read-only status flags and writable thresholds
must use currN_max.

The driver also stores the threshold internally in microamps, while
currN_max is defined in milliamps. Convert the threshold accordingly
on both the read and write paths.

Widen the cached threshold and related calculations to 64 bits so
that small shunt resistor values do not cause truncation or overflow.
Also use 64-bit arithmetic for the mA/uA conversions, clamp writes
to the range the hardware can represent, and propagate failures from
adm1177_write_alert_thr() instead of silently ignoring them.

Update the hwmon documentation to reflect the attribute rename and
the correct units returned by the driver.

Fixes: 09b08ac9e8d5 ("hwmon: (adm1177) Add ADM1177 Hot Swap Controller and Digital Power Monitor driver")
Signed-off-by: Sanman Pradhan <psanman@juniper.net>
Acked-by: Nuno Sá <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/20260325051246.28262-1-sanman.pradhan@hpe.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
5 weeks agoleds: lgm-sso: Fix typo in macro for src offset
Lukas Kraft [Thu, 12 Mar 2026 21:09:52 +0000 (22:09 +0100)] 
leds: lgm-sso: Fix typo in macro for src offset

Replace unused argument pinc with used argument pin.

Signed-off-by: Lukas Kraft <rebootrequired42@gmail.com>
Link: https://patch.msgid.link/20260312210958.48467-1-rebootrequired42@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agocpufreq: acpi-cpufreq: use DMI max speed when CPPC is unavailable
Henry Tseng [Tue, 24 Mar 2026 09:09:48 +0000 (17:09 +0800)] 
cpufreq: acpi-cpufreq: use DMI max speed when CPPC is unavailable

On AMD Ryzen Embedded V1780B (Family 17h, Zen 1), the BIOS does not
provide ACPI _CPC objects and the CPU does not support MSR-based CPPC
(X86_FEATURE_CPPC).  The _PSS table only lists nominal P-states
(P0 = 3350 MHz), so when get_max_boost_ratio() fails at
cppc_get_perf_caps(), cpuinfo_max_freq reports only the base frequency
instead of the rated boost frequency (3600 MHz).

  dmesg:
    ACPI CPPC: No CPC descriptor for CPU:0
    acpi_cpufreq: CPU0: Unable to get performance capabilities (-19)

cppc-cpufreq already has a DMI fallback (cppc_get_dmi_max_khz()) that
reads the processor max speed from SMBIOS Type 4.  Export it and reuse
it in acpi-cpufreq as a last-resort source for the boost frequency.

A sanity check ensures the DMI value is above the _PSS P0 frequency
and within 2x of it; values outside that range are ignored and the
existing arch_set_max_freq_ratio() path is taken instead.  The 2x
upper bound is based on a survey of the AMD Ryzen Embedded V1000
series, where the highest boost-to-base ratio is 1.8x (V1404I:
2.0 GHz base / 3.6 GHz boost).

The DMI lookup and sanity check are wrapped in a helper,
acpi_cpufreq_resolve_max_freq(), which falls through to
arch_set_max_freq_ratio() if the DMI value is absent or
out of range.

Tested on AMD Ryzen Embedded V1780B with v7.0-rc4:

  Before: cpuinfo_max_freq = 3350000 (base only)
  After:  cpuinfo_max_freq = 3600000 (includes boost)

Link: https://www.amd.com/en/products/embedded/ryzen/ryzen-v1000-series.html#specifications
Signed-off-by: Henry Tseng <henrytseng@qnap.com>
Link: https://patch.msgid.link/20260324090948.1667340-1-henrytseng@qnap.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
5 weeks agoACPI: PPTT: Remove duplicate structure, acpi_pptt_cache_v1_full
Ben Horgan [Tue, 24 Mar 2026 11:33:00 +0000 (11:33 +0000)] 
ACPI: PPTT: Remove duplicate structure, acpi_pptt_cache_v1_full

acpi_pptt_cache_v1_full was initially added as a stop gap until the
equivalent structure imported from ACPICA, acpi_pptt_v1 in actbl2.h,
contained all the fields of the Cache Type Structure.

Since commit 091c4af3562d ("ACPICA: ACPI 6.4: PPTT: include all
fields in subtable type1"), acpi_pptt_v1 contains all these fields
making acpi_pptt_cache_v1_full redundant.

Remove acpi_pptt_cache_v1_full.

No functional change intended.

Signed-off-by: Ben Horgan <ben.horgan@arm.com>
Reviewed-by: Jeremy Linton <jeremy.linton@arm.com>
Reviewed-by: Sudeep Holla <sudeep.holla@kernel.org>
[ rjw: Subject and changelog edits ]
Link: https://patch.msgid.link/20260324113300.1002569-1-ben.horgan@arm.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
5 weeks agoASoC: tegra: Use dev_err_probe() in tegra_audio_graph_card probe
Sheetal [Wed, 25 Mar 2026 10:14:37 +0000 (10:14 +0000)] 
ASoC: tegra: Use dev_err_probe() in tegra_audio_graph_card probe

Log errors in the Tegra audio graph card probe path using
dev_err_probe().

Signed-off-by: Sheetal <sheetal@nvidia.com>
Link: https://patch.msgid.link/20260325101437.3059693-15-sheetal@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
5 weeks agoASoC: tegra: Use dev_err_probe() in tegra_asoc_machine probe
Sheetal [Wed, 25 Mar 2026 10:14:36 +0000 (10:14 +0000)] 
ASoC: tegra: Use dev_err_probe() in tegra_asoc_machine probe

Log errors in the Tegra ASoC machine driver probe path using
dev_err_probe().

Signed-off-by: Sheetal <sheetal@nvidia.com>
Link: https://patch.msgid.link/20260325101437.3059693-14-sheetal@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
5 weeks agoASoC: tegra: Use dev_err_probe() in tegra210_sfc probe
Sheetal [Wed, 25 Mar 2026 10:14:35 +0000 (10:14 +0000)] 
ASoC: tegra: Use dev_err_probe() in tegra210_sfc probe

Log errors in the Tegra210 SFC probe path using dev_err_probe().

Signed-off-by: Sheetal <sheetal@nvidia.com>
Link: https://patch.msgid.link/20260325101437.3059693-13-sheetal@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
5 weeks agoASoC: tegra: Use dev_err_probe() in tegra210_mvc probe
Sheetal [Wed, 25 Mar 2026 10:14:34 +0000 (10:14 +0000)] 
ASoC: tegra: Use dev_err_probe() in tegra210_mvc probe

Log errors in the Tegra210 MVC probe path using dev_err_probe().

Signed-off-by: Sheetal <sheetal@nvidia.com>
Link: https://patch.msgid.link/20260325101437.3059693-12-sheetal@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
5 weeks agoASoC: tegra: Use dev_err_probe() in tegra210_mixer probe
Sheetal [Wed, 25 Mar 2026 10:14:33 +0000 (10:14 +0000)] 
ASoC: tegra: Use dev_err_probe() in tegra210_mixer probe

Log errors in the Tegra210 Mixer probe path using dev_err_probe().

Signed-off-by: Sheetal <sheetal@nvidia.com>
Link: https://patch.msgid.link/20260325101437.3059693-11-sheetal@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
5 weeks agoASoC: tegra: Add error logging in tegra210_i2s driver
Sheetal [Wed, 25 Mar 2026 10:14:31 +0000 (10:14 +0000)] 
ASoC: tegra: Add error logging in tegra210_i2s driver

Log errors in the Tegra210 I2S probe and runtime callback paths.

Signed-off-by: Sheetal <sheetal@nvidia.com>
Link: https://patch.msgid.link/20260325101437.3059693-9-sheetal@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
5 weeks agoASoC: tegra: Use dev_err_probe() in tegra210_dmic probe
Sheetal [Wed, 25 Mar 2026 10:14:30 +0000 (10:14 +0000)] 
ASoC: tegra: Use dev_err_probe() in tegra210_dmic probe

Log errors in the Tegra210 DMIC probe path using dev_err_probe().

Signed-off-by: Sheetal <sheetal@nvidia.com>
Link: https://patch.msgid.link/20260325101437.3059693-8-sheetal@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
5 weeks agoASoC: tegra: Add error logging in tegra210_amx driver
Sheetal [Wed, 25 Mar 2026 10:14:29 +0000 (10:14 +0000)] 
ASoC: tegra: Add error logging in tegra210_amx driver

Log errors in the Tegra210 AMX probe and set_audio_cif paths.

Signed-off-by: Sheetal <sheetal@nvidia.com>
Link: https://patch.msgid.link/20260325101437.3059693-7-sheetal@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
5 weeks agoASoC: tegra: Use dev_err_probe() in tegra210_ahub probe
Sheetal [Wed, 25 Mar 2026 10:14:28 +0000 (10:14 +0000)] 
ASoC: tegra: Use dev_err_probe() in tegra210_ahub probe

Log errors in the Tegra210 AHUB probe path using dev_err_probe().

Signed-off-by: Sheetal <sheetal@nvidia.com>
Link: https://patch.msgid.link/20260325101437.3059693-6-sheetal@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
5 weeks agoASoC: tegra: Add error logging in tegra210_adx driver
Sheetal [Wed, 25 Mar 2026 10:14:27 +0000 (10:14 +0000)] 
ASoC: tegra: Add error logging in tegra210_adx driver

Log errors in the Tegra210 ADX probe and set_audio_cif paths.

Signed-off-by: Sheetal <sheetal@nvidia.com>
Link: https://patch.msgid.link/20260325101437.3059693-5-sheetal@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
5 weeks agoASoC: tegra: Use dev_err_probe() in tegra186_dspk probe
Sheetal [Wed, 25 Mar 2026 10:14:25 +0000 (10:14 +0000)] 
ASoC: tegra: Use dev_err_probe() in tegra186_dspk probe

Log errors in the Tegra186 DSPK probe path using dev_err_probe().

Signed-off-by: Sheetal <sheetal@nvidia.com>
Link: https://patch.msgid.link/20260325101437.3059693-3-sheetal@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
5 weeks agoASoC: tegra: Use dev_err_probe() in tegra186_asrc probe
Sheetal [Wed, 25 Mar 2026 10:14:24 +0000 (10:14 +0000)] 
ASoC: tegra: Use dev_err_probe() in tegra186_asrc probe

Log errors in the Tegra186 ASRC probe path using dev_err_probe().

Signed-off-by: Sheetal <sheetal@nvidia.com>
Link: https://patch.msgid.link/20260325101437.3059693-2-sheetal@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
5 weeks agodrbd: use genl pre_doit/post_doit
Christoph Böhmwalder [Tue, 24 Mar 2026 15:29:07 +0000 (16:29 +0100)] 
drbd: use genl pre_doit/post_doit

Every doit handler followed the same pattern: stack-allocate an
adm_ctx, call drbd_adm_prepare() at the top, call drbd_adm_finish()
at the bottom. This duplicated boilerplate across 25 handlers and
made error paths inconsistent, since some handlers could miss sending
the reply skb on early-exit paths.

The generic netlink framework already provides pre_doit/post_doit
hooks for exactly this purpose. An old comment even noted "this
would be a good candidate for a pre_doit hook".

Use them:

- pre_doit heap-allocates adm_ctx, looks up per-command flags from a
  new drbd_genl_cmd_flags[] table, runs drbd_adm_prepare(), and
  stores the context in info->user_ptr[0].
- post_doit sends the reply, drops kref references for
  device/connection/resource, and frees the adm_ctx.
- Handlers just receive adm_ctx from info->user_ptr[0], set
  reply_dh->ret_code, and return. All teardown is in post_doit.
- drbd_adm_finish() is removed, superseded by post_doit.

Signed-off-by: Christoph Böhmwalder <christoph.boehmwalder@linbit.com>
Link: https://patch.msgid.link/20260324152907.2840984-1-christoph.boehmwalder@linbit.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
5 weeks agodrm/bridge: analogix_dp: Apply DP helper APIs to get adjusted voltages and pre-emphasises
Damon Ding [Mon, 10 Nov 2025 08:58:23 +0000 (16:58 +0800)] 
drm/bridge: analogix_dp: Apply DP helper APIs to get adjusted voltages and pre-emphasises

Replace analogix_dp_get_adjust_request_voltage() and
analogix_dp_get_adjust_request_pre_emphasis() with existing DP helper
APIs with the same function.

Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://patch.msgid.link/20251110085823.1197472-5-damon.ding@rock-chips.com
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
5 weeks agodrm/bridge: analogix_dp: Apply DP helper API drm_dp_channel_eq_ok()
Damon Ding [Mon, 10 Nov 2025 08:58:22 +0000 (16:58 +0800)] 
drm/bridge: analogix_dp: Apply DP helper API drm_dp_channel_eq_ok()

Use existing DP helper API instead of analogix_dp_channel_eq_ok()
with the same function.

In addtion, remove unused function analogix_dp_get_lane_status()

Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://patch.msgid.link/20251110085823.1197472-4-damon.ding@rock-chips.com
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
5 weeks agodrm/bridge: analogix_dp: Apply DP helper API drm_dp_clock_recovery_ok()
Damon Ding [Mon, 10 Nov 2025 08:58:21 +0000 (16:58 +0800)] 
drm/bridge: analogix_dp: Apply DP helper API drm_dp_clock_recovery_ok()

Use existing DP helper API instead of analogix_dp_clock_recovery_ok()
with the same function.

Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://patch.msgid.link/20251110085823.1197472-3-damon.ding@rock-chips.com
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
5 weeks agodrm/bridge: analogix_dp: Apply DP helper API drm_dp_dpcd_read_link_status()
Damon Ding [Mon, 10 Nov 2025 08:58:20 +0000 (16:58 +0800)] 
drm/bridge: analogix_dp: Apply DP helper API drm_dp_dpcd_read_link_status()

Use existing DP helper API to read link status related DPCDs.

Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://patch.msgid.link/20251110085823.1197472-2-damon.ding@rock-chips.com
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
5 weeks agozloop: forget write cache on force removal
Christoph Hellwig [Mon, 23 Mar 2026 07:11:50 +0000 (08:11 +0100)] 
zloop: forget write cache on force removal

Add a new options that causes zloop to truncate the zone files to the
write pointer value recorded at the last cache flush to simulate
unclean shutdowns.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Link: https://patch.msgid.link/20260323071156.2940772-3-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
5 weeks agozloop: refactor zloop_rw
Christoph Hellwig [Mon, 23 Mar 2026 07:11:49 +0000 (08:11 +0100)] 
zloop: refactor zloop_rw

Split out two helpers functions to make the function more readable and
to avoid conditional locking.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Link: https://patch.msgid.link/20260323071156.2940772-2-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
5 weeks agodt-bindings: mfd: max77620: Document optional RTC address for MAX77663
Svyatoslav Ryhel [Thu, 12 Mar 2026 08:52:57 +0000 (10:52 +0200)] 
dt-bindings: mfd: max77620: Document optional RTC address for MAX77663

Document an optional second I2C address for the MAX77663 PMIC's RTC
device, to be used if the MAX77663 RTC is located at a non-default I2C
address.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20260312085258.11431-5-clamor95@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agodt-bindings: mfd: max77620: Convert to DT schema
Svyatoslav Ryhel [Thu, 12 Mar 2026 08:52:56 +0000 (10:52 +0200)] 
dt-bindings: mfd: max77620: Convert to DT schema

Convert max77620 Device Tree bindings from TXT to YAML format. This patch
does not change any functionality; the bindings remain the same. The
thermal bindings are incorporated into the binding. GPIO controller
function in MAX77620 has no dedicated node and is folded into the parent
node itself.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Acked-by: Daniel Lezcano <daniel.lezcano@kernel.org>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20260312085258.11431-4-clamor95@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agomfd: ezx-pcap: Avoid rescheduling after destroying workqueue
Krzysztof Kozlowski [Thu, 5 Mar 2026 21:45:48 +0000 (22:45 +0100)] 
mfd: ezx-pcap: Avoid rescheduling after destroying workqueue

Driver allocates workqueue and then registers additional interrupt
handler with devm interface.  This means that device removal will not
use a reversed order, but first destroy workqueue and then, via devm
release handlers, free the interrupt.

The interrupt handler registered with devm does not directly
use/schedule work items on the workqueue and the remove() function
correctly removes other IRQs handlers, however the code mixing devm and
non-devm interfaces is difficult to analyze and read.

Make the code flow much more obvious by using devm interface for
allocating the workqueue, so it will be freed with the rest of devm
resources.

Change is not equivalent in the workqueue itself: use non-legacy API
which does not set (__WQ_LEGACY | WQ_MEM_RECLAIM).  The workqueue is
used to update device registers, thus there is no point to run it for
memory reclaim.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://patch.msgid.link/20260305-workqueue-devm-v2-9-66a38741c652@oss.qualcomm.com
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agomfd: ezx-pcap: Return directly instead of empty gotos
Krzysztof Kozlowski [Thu, 5 Mar 2026 21:45:47 +0000 (22:45 +0100)] 
mfd: ezx-pcap: Return directly instead of empty gotos

Code is easier to read if empty error paths simply return, instead of
jumping to empty label doing only "return ret".

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://patch.msgid.link/20260305-workqueue-devm-v2-8-66a38741c652@oss.qualcomm.com
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agomfd: ezx-pcap: Drop memory allocation error message
Krzysztof Kozlowski [Thu, 5 Mar 2026 21:45:46 +0000 (22:45 +0100)] 
mfd: ezx-pcap: Drop memory allocation error message

Drivers should not print error messages on memory allocation failures,
because core already does it.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://patch.msgid.link/20260305-workqueue-devm-v2-7-66a38741c652@oss.qualcomm.com
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agomfd: bcm2835-pm: Add BCM2712 PM device support
Phil Elwell [Fri, 6 Mar 2026 23:41:22 +0000 (00:41 +0100)] 
mfd: bcm2835-pm: Add BCM2712 PM device support

The BCM2712 SoC includes a power management block that serves as the
power domain for the V3D graphics block. Unlike other PM blocks in
the BCM2835 family, it does not feature an ASB register space.

Conditionally register the PM device depending on the SoC variant.

Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Co-developed-by: Stanimir Varbanov <svarbanov@suse.de>
Signed-off-by: Stanimir Varbanov <svarbanov@suse.de>
Signed-off-by: Andrea della Porta <andrea.porta@suse.com>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Link: https://patch.msgid.link/c0b5793868f138bf5c928a12b2763d3e183e2e59.1772839224.git.andrea.porta@suse.com
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agomfd: bcm2835-pm: Introduce SoC-specific type identifier
Phil Elwell [Fri, 6 Mar 2026 23:41:21 +0000 (00:41 +0100)] 
mfd: bcm2835-pm: Introduce SoC-specific type identifier

Power management blocks across the BCM2835 family share a common
base but require variant-specific handling. For instance, the
BCM2712 lacks ASB register space, yet it manages the power domain
for the V3D graphics block.

Add a hardware type identifier to the driver's private data. This
allows the driver to distinguish between SoC models and implement
custom quirks or features as needed.

Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Co-developed-by: Stanimir Varbanov <svarbanov@suse.de>
Signed-off-by: Stanimir Varbanov <svarbanov@suse.de>
Signed-off-by: Andrea della Porta <andrea.porta@suse.com>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Link: https://patch.msgid.link/c4bb218654e91f312a01b419d3d408e5131f7673.1772839224.git.andrea.porta@suse.com
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agodt-bindings: mfd: bd72720: Add ROHM BD73900
Matti Vaittinen [Tue, 24 Feb 2026 13:11:12 +0000 (15:11 +0200)] 
dt-bindings: mfd: bd72720: Add ROHM BD73900

The ROHM BD79300 is almost identical to the BD72720. Main differences
are the initial values for some of the registers. Thus, it appears the
BD79300 can be handled with same software as BD72720.

Adding the compatible for the BD79300 enables people to use the real IC
type in the device-tree instead of claiming it is BD72720. This does
also help differentiating the ICs if appears it is needed.

Add own compatible for the BD73900 and mark BD72720 as a fall-back.

Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://patch.msgid.link/6eaa9f08848c27c462e156e31ae5bdfd33bf2fe7.1771938507.git.mazziesaccount@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agomfd: si476x: Fix kernel-doc warnings
Randy Dunlap [Mon, 9 Mar 2026 21:42:23 +0000 (14:42 -0700)] 
mfd: si476x: Fix kernel-doc warnings

Add kernel-doc entries for missing fields or correct some typos
in names to eliminate kernel-doc warnings:

Warning: include/linux/mfd/si476x-core.h:156 struct member 'regmap' not
 described in 'si476x_core'
Warning: include/linux/mfd/si476x-core.h:156 struct member 'power_state'
 not described in 'si476x_core'
Warning: include/linux/mfd/si476x-core.h:156 struct member 'supplies' not
 described in 'si476x_core'
Warning: include/linux/mfd/si476x-core.h:156 struct member 'is_alive' not
 described in 'si476x_core'
Warning: include/linux/mfd/si476x-core.h:156 struct member 'rds_fifo_depth'
 not described in 'si476x_core'
Warning: include/linux/mfd/si476x-core.h:170 function parameter 'core' not
 described in 'si476x_core_lock'
Warning: include/linux/mfd/si476x-core.h:179 function parameter 'core' not
 described in 'si476x_core_unlock'
Warning: include/linux/mfd/si476x-core.h:259 struct member 'firmware' not
 described in 'si476x_func_info'
Warning: include/linux/mfd/si476x-core.h:335 struct member 'rds' not
 described in 'si476x_rds_status_report'

I don't know what the 'ble' field is so I didn't add a kernel-doc comment
for it:
  Warning: include/linux/mfd/si476x-core.h:335 struct member 'ble' not
    described in 'si476x_rds_status_report'

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Link: https://patch.msgid.link/20260309214223.749088-5-rdunlap@infradead.org
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agomfd: rsmu: Remove a empty kernel-doc line
Randy Dunlap [Mon, 9 Mar 2026 21:42:22 +0000 (14:42 -0700)] 
mfd: rsmu: Remove a empty kernel-doc line

kernel-doc format expects a prototype on the line that immediately
follows the "/**" line, so drop this empty line.

Warning: include/linux/mfd/rsmu.h:21 Cannot find identifier on line: *

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Link: https://patch.msgid.link/20260309214223.749088-4-rdunlap@infradead.org
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agomfd: kempld: Fix kernel-doc struct member names
Randy Dunlap [Mon, 9 Mar 2026 21:42:21 +0000 (14:42 -0700)] 
mfd: kempld: Fix kernel-doc struct member names

Correct the struct member names to avoid kernel-doc warnings:

Warning: include/linux/mfd/kempld.h:114 struct member 'gpio_base' not
 described in 'kempld_platform_data'
Warning: include/linux/mfd/kempld.h:114 struct member 'get_hardware_mutex'
 not described in 'kempld_platform_data'
Warning: include/linux/mfd/kempld.h:114 struct member
 'release_hardware_mutex' not described in 'kempld_platform_data'

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Link: https://patch.msgid.link/20260309214223.749088-3-rdunlap@infradead.org
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agomfd: congatec: Fix kernel-doc struct member names
Randy Dunlap [Mon, 9 Mar 2026 21:42:20 +0000 (14:42 -0700)] 
mfd: congatec: Fix kernel-doc struct member names

Correct the struct member names to avoid kernel-doc warnings:

Warning: include/linux/mfd/cgbc.h:38 struct member 'version' not
 described in 'cgbc_device_data'
Warning: ../include/linux/mfd/cgbc.h:38 struct member 'lock' not
 described in 'cgbc_device_data'

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Link: https://patch.msgid.link/20260309214223.749088-2-rdunlap@infradead.org
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agodt-bindings: mfd: Convert fsl-imx25-tsadc.txt to yaml format
Frank Li [Wed, 11 Feb 2026 21:41:05 +0000 (16:41 -0500)] 
dt-bindings: mfd: Convert fsl-imx25-tsadc.txt to yaml format

Convert fsl-imx25-tsadc.txt to yaml format.

Additional changes:

- Add ranges.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20260211-yaml_mfd-v1-2-05cb48bc6f09@nxp.com
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agomfd: viperboard: Drop redundant device reference
Johan Hovold [Thu, 5 Mar 2026 10:40:51 +0000 (11:40 +0100)] 
mfd: viperboard: Drop redundant device reference

Driver core holds a reference to the USB interface and its parent USB
device while the interface is bound to a driver and there is no need to
take additional references unless the structures are needed after
disconnect.

Drop the redundant device reference to reduce cargo culting, make it
easier to spot drivers where an extra reference is needed, and reduce
the risk of memory leaks when drivers fail to release it.

Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://patch.msgid.link/20260305104051.15727-1-johan@kernel.org
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agomfd: dln2: Switch to managed resources and fix bare unsigned types
Subhash Rawat [Tue, 3 Mar 2026 18:32:36 +0000 (18:32 +0000)] 
mfd: dln2: Switch to managed resources and fix bare unsigned types

Convert dln2_probe and dln2_setup_rx_urbs to use devm_kzalloc() and
devm_kmalloc() respectively. This simplifies resource management by
allowing the removal of manual kfree() calls in dln2_free() and
dln2_free_rx_urbs().

Additionally, update bare 'unsigned' types to 'unsigned int' to satisfy
checkpatch.pl warnings and comply with the Linux kernel coding style.

Signed-off-by: Subhash Rawat <rawatsubhash02@gmail.com>
Link: https://patch.msgid.link/20260303183236.574940-1-rawatsubhash02@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agomfd: macsmc: Wire up Apple SMC power driver
Hector Martin [Tue, 17 Feb 2026 10:47:26 +0000 (21:47 +1100)] 
mfd: macsmc: Wire up Apple SMC power driver

Add the cell for the macsmc-power driver so it is probed by the
MFD core.

Signed-off-by: Hector Martin <marcan@marcan.st>
Reviewed-by: Neal Gompa <neal@gompa.dev>
Reviewed-by: Sven Peter <sven@kernel.org>
Signed-off-by: Michael Reeves <michael.reeves077@gmail.com>
Link: https://patch.msgid.link/20260217-b4-macsmc-power-v7-2-4a4d63664362@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agomfd: mt6397: Properly fix CID of MT6328, MT6331 and MT6332
Akari Tsuyukusa [Mon, 2 Mar 2026 14:00:45 +0000 (23:00 +0900)] 
mfd: mt6397: Properly fix CID of MT6328, MT6331 and MT6332

CIDs set for MT6328, MT6331 and MT6332 are not appropriate.
Many Android downstream kernels define CID as below,

MT6328:

    #define PMIC6328_E1_CID_CODE    0x2810
    #define PMIC6328_E2_CID_CODE    0x2820
    #define PMIC6328_E3_CID_CODE    0x2830

MT6331/MT6332:

    #define PMIC6331_E1_CID_CODE    0x3110
    #define PMIC6331_E2_CID_CODE    0x3120
    #define PMIC6331_E3_CID_CODE    0x3130

    #define PMIC6332_E1_CID_CODE    0x3210
    #define PMIC6332_E2_CID_CODE    0x3220
    #define PMIC6332_E3_CID_CODE    0x3230

The current configuration incorrectly uses the revision code as the CID.
Therefore, the driver cannot detect the same PMIC of different revisions.
(E1/E2 for MT6328, E1/E3 for MT6331/MT6332)
Based on these, the CID of MT6328, MT6331 and MT6332 should be corrected.

Additionally, the incorrect MT6331/MT6332 CID overlaps with the MT6320's
actual CID:

    #define PMIC6320_E1_CID_CODE    0x1020
    #define PMIC6320_E2_CID_CODE    0x2020

This causes a conflict in the switch-case statement of mt6397-irq.c,
this prevents adding support for MT6320.

Signed-off-by: Akari Tsuyukusa <akkun11.open@gmail.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://patch.msgid.link/20260302140045.651727-1-akkun11.open@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agodt-bindings: mfd: spacemit,p1: Add individual regulator supply properties
Guodong Xu [Fri, 6 Feb 2026 02:32:02 +0000 (10:32 +0800)] 
dt-bindings: mfd: spacemit,p1: Add individual regulator supply properties

Add supply properties that match the P1 PMIC's actual hardware topology
where each buck converter has its own VIN pin and LDO groups share
common input pins. Supply names are defined according to the pinout
names in the P1 datasheet.

The existing "vin-supply" is dropped from the binding document as the
updated spacemit P1 driver no longer parses it. Only the per-rail names
("vin1-supply", "vin2-supply", ...) are supported.

Signed-off-by: Guodong Xu <guodong@riscstar.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Alex Elder <elder@riscstar.com>
Link: https://patch.msgid.link/20260206-spacemit-p1-v4-1-8f695d93811e@riscstar.com
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agomfd: lpc_ich: Expose the GPIO controller cell's software node
Bartosz Golaszewski [Wed, 18 Feb 2026 10:48:01 +0000 (11:48 +0100)] 
mfd: lpc_ich: Expose the GPIO controller cell's software node

One of the users of this driver - meraki-mx100 - abuses the software
node API by setting up a dummy software node without any logical link to
this GPIO controller and uses the fact that the GPIO core matches the
controller's label against the swnode's name to make the lookup work.

We want to remove this behavior from GPIOLIB in favor of actual matching
of firmware nodes but that would break this user. To facilitate that:
create a software node for the GPIO controller cell and expose its
address in the provided MFD header.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://patch.msgid.link/20260218-meraki-swnodes-v2-1-92c521da241c@oss.qualcomm.com
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agomfd: atmel-hlcdc: Fetch LVDS PLL clock for LVDS display
Manikandan Muralidharan [Mon, 23 Feb 2026 10:19:17 +0000 (15:49 +0530)] 
mfd: atmel-hlcdc: Fetch LVDS PLL clock for LVDS display

The XLCDC IP supports parallel RGB, MIPI DSI and LVDS Display.
The LCD Generic clock (sys_clk) is used for Parallel RGB and MIPI
displays, while the LVDS PLL clock (lvds_pll_clk) is used for LVDS
displays.Since both the clocks cannot co-exist together in the DT
for a given display, this patch tries sys_clk first (RGB/MIPI),
fallback to lvds_pll_clk (LVDS).

Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com>
Signed-off-by: Dharma Balasubiramani <dharma.b@microchip.com>
Link: https://patch.msgid.link/20260223101920.284697-2-manikandan.m@microchip.com
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agomfd: dln2: Drop redundant device reference
Johan Hovold [Thu, 5 Mar 2026 13:03:58 +0000 (14:03 +0100)] 
mfd: dln2: Drop redundant device reference

Driver core holds a reference to the USB interface and its parent USB
device while the interface is bound to a driver and there is no need to
take additional references unless the structures are needed after
disconnect.

Drop the redundant device reference to reduce cargo culting, make it
easier to spot drivers where an extra reference is needed, and reduce
the risk of memory leaks when drivers fail to release it.

Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://patch.msgid.link/20260305130358.24681-1-johan@kernel.org
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agomfd: max77705: Make max77705_pm_ops variable static
Krzysztof Kozlowski [Mon, 16 Feb 2026 11:04:33 +0000 (12:04 +0100)] 
mfd: max77705: Make max77705_pm_ops variable static

File-scope 'max77705_pm_ops' is not used outside of this unit, so make
it static to silence sparse warning:

  max77705.c:160:1: warning: symbol 'max77705_pm_ops' was not declared. Should it be static?

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Link: https://patch.msgid.link/20260216110432.160084-2-krzysztof.kozlowski@oss.qualcomm.com
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agomfd: rohm-bd71828: Enable wakeup via power button
Andreas Kemnade [Fri, 6 Feb 2026 09:37:57 +0000 (10:37 +0100)] 
mfd: rohm-bd71828: Enable wakeup via power button

It is normally expected to get out of deeper power saving states by
pressing the power button, so enable wakeup for it.

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Acked-by: Matti Vaittinen <mazziesaccount@gmail.com>
Link: https://patch.msgid.link/20260206093757.573377-1-andreas@kemnade.info
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agomfd: stpmic1: Attempt system shutdown twice in case PMIC is confused
Marek Vasut [Thu, 22 Jan 2026 11:13:21 +0000 (12:13 +0100)] 
mfd: stpmic1: Attempt system shutdown twice in case PMIC is confused

Attempt to shut down again, in case the first attempt failed.
The STPMIC1 might get confused and the first regmap_update_bits()
returns with -ETIMEDOUT / -110 . If that or similar transient
failure occurs, try to shut down again. If the second attempt
fails, there is some bigger problem, report it to user.

Cc: stable@vger.kernel.org
Fixes: 6e9df38f359a ("mfd: stpmic1: Add PMIC poweroff via sys-off handler")
Signed-off-by: Marek Vasut <marex@nabladev.com>
Link: https://patch.msgid.link/20260122111423.62591-1-marex@nabladev.com
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agomfd: mc13xxx-core: Fix memory leak in mc13xxx_add_subdevice_pdata()
Abdun Nihaal [Tue, 20 Jan 2026 10:26:20 +0000 (15:56 +0530)] 
mfd: mc13xxx-core: Fix memory leak in mc13xxx_add_subdevice_pdata()

The memory allocated for cell.name using kmemdup() is not freed when
mfd_add_devices() fails. Fix that by using devm_kmemdup().

Fixes: 8e00593557c3 ("mfd: Add mc13892 support to mc13xxx")
Signed-off-by: Abdun Nihaal <nihaal@cse.iitm.ac.in>
Link: https://patch.msgid.link/20260120102622.66921-1-nihaal@cse.iitm.ac.in
Signed-off-by: Lee Jones <lee@kernel.org>
5 weeks agoiommufd: update outdated comment for renamed iommufd_hw_pagetable_alloc()
Kexin Sun [Sat, 21 Mar 2026 10:57:59 +0000 (18:57 +0800)] 
iommufd: update outdated comment for renamed iommufd_hw_pagetable_alloc()

The function iommufd_hw_pagetable_alloc() was renamed to
iommufd_hwpt_paging_alloc() by commit 89db31635c87
("iommufd: Derive iommufd_hwpt_paging from
iommufd_hw_pagetable").  Update the stale reference in
iommufd_device_auto_get_domain().

Link: https://patch.msgid.link/r/20260321105759.6832-1-kexinsun@smail.nju.edu.cn
Assisted-by: unnamed:deepseek-v3.2 coccinelle
Signed-off-by: Kexin Sun <kexinsun@smail.nju.edu.cn>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
5 weeks agoASoC: dt-bindings: mediatek: Adjust style of blocks placement
Krzysztof Kozlowski [Wed, 25 Mar 2026 11:08:51 +0000 (12:08 +0100)] 
ASoC: dt-bindings: mediatek: Adjust style of blocks placement

Convention expressed in example-schema.yaml is to place
"unevaluatedProperties" part just before example.  No functional change.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Link: https://patch.msgid.link/20260325110849.127051-4-krzysztof.kozlowski@oss.qualcomm.com
Signed-off-by: Mark Brown <broonie@kernel.org>
5 weeks agoASoC: dt-bindings: mediatek,mt2701-wm8960: Correctly use additionalProperties
Krzysztof Kozlowski [Wed, 25 Mar 2026 11:08:50 +0000 (12:08 +0100)] 
ASoC: dt-bindings: mediatek,mt2701-wm8960: Correctly use additionalProperties

The binding does not reference any other schema, thus should use
"additionalProperties: false" to disallow any undocumented properties.
Correct the code and place this after "required:" block to match
convention expressed in example-schema.yaml.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Link: https://patch.msgid.link/20260325110849.127051-3-krzysztof.kozlowski@oss.qualcomm.com
Signed-off-by: Mark Brown <broonie@kernel.org>
5 weeks agokbuild: uapi: also test UAPI headers against C++ compilers
Thomas Weißschuh [Mon, 16 Mar 2026 16:52:02 +0000 (17:52 +0100)] 
kbuild: uapi: also test UAPI headers against C++ compilers

C++ language requirements differ from those of C.

Also test the headers against C++ compilers to make sure no errors
creep in accidentally.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Link: https://patch.msgid.link/20260316-kbuild-uapi-c-v2-5-35d6d0ed863f@weissschuh.net
Signed-off-by: Nicolas Schier <nsc@kernel.org>
5 weeks agokbuild: uapi: provide a C++ compatible dummy definition of NULL
Thomas Weißschuh [Mon, 16 Mar 2026 16:52:01 +0000 (17:52 +0100)] 
kbuild: uapi: provide a C++ compatible dummy definition of NULL

NULL works differently in C++ compared to C.

To allow testing the UAPI headers against C++ compilers, provide
a variant of NULL which works with those.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Link: https://patch.msgid.link/20260316-kbuild-uapi-c-v2-4-35d6d0ed863f@weissschuh.net
Signed-off-by: Nicolas Schier <nsc@kernel.org>
5 weeks agokbuild: uapi: handle UML in architecture-specific exclusion lists
Thomas Weißschuh [Mon, 16 Mar 2026 16:52:00 +0000 (17:52 +0100)] 
kbuild: uapi: handle UML in architecture-specific exclusion lists

When building User Mode Linux SRCARCH is set to 'um', while the actual
underlying architecture is provided in HEADER_ARCH.

Allow the exclusion lists to work on UML by comparing against
HEADER_ARCH when that is available.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Link: https://patch.msgid.link/20260316-kbuild-uapi-c-v2-3-35d6d0ed863f@weissschuh.net
Signed-off-by: Nicolas Schier <nsc@kernel.org>
5 weeks agokbuild: uapi: move all include path flags together
Thomas Weißschuh [Mon, 16 Mar 2026 16:51:59 +0000 (17:51 +0100)] 
kbuild: uapi: move all include path flags together

The argument to add the root of the UAPI header tree to the include path
is separated from the other arguments concerning the include path.

Move all include path arguments together for more consistency and
balanced line lengths.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Link: https://patch.msgid.link/20260316-kbuild-uapi-c-v2-2-35d6d0ed863f@weissschuh.net
Signed-off-by: Nicolas Schier <nsc@kernel.org>
5 weeks agokbuild: uapi: move some compiler arguments out of the command definition
Thomas Weißschuh [Mon, 16 Mar 2026 16:51:58 +0000 (17:51 +0100)] 
kbuild: uapi: move some compiler arguments out of the command definition

Simplify the definition of cmd_hdrtest by moving some of it to a new
variable. This will both enable the upcoming reuse of those flags
and also the extension of cmd_hdrtest.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Link: https://patch.msgid.link/20260316-kbuild-uapi-c-v2-1-35d6d0ed863f@weissschuh.net
Signed-off-by: Nicolas Schier <nsc@kernel.org>
5 weeks agoASoC: SDCA: remove the max count of initialization table
Shuming Fan [Wed, 25 Mar 2026 09:20:17 +0000 (17:20 +0800)] 
ASoC: SDCA: remove the max count of initialization table

The number of the initialization table may exceed 2048.
Therefore, this patch removes the limitation and allows the driver to
allocate memory dynamically based on the size of the initialization table.

Signed-off-by: Shuming Fan <shumingf@realtek.com>
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://patch.msgid.link/20260325092017.3221640-1-shumingf@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
5 weeks agoquota: Fix race of dquot_scan_active() with quota deactivation
Jan Kara [Fri, 27 Feb 2026 13:22:16 +0000 (14:22 +0100)] 
quota: Fix race of dquot_scan_active() with quota deactivation

dquot_scan_active() can race with quota deactivation in
quota_release_workfn() like:

  CPU0 (quota_release_workfn)         CPU1 (dquot_scan_active)
  ==============================      ==============================
  spin_lock(&dq_list_lock);
  list_replace_init(
    &releasing_dquots, &rls_head);
    /* dquot X on rls_head,
       dq_count == 0,
       DQ_ACTIVE_B still set */
  spin_unlock(&dq_list_lock);
  synchronize_srcu(&dquot_srcu);
                                      spin_lock(&dq_list_lock);
                                      list_for_each_entry(dquot,
                                          &inuse_list, dq_inuse) {
                                        /* finds dquot X */
                                        dquot_active(X) -> true
                                        atomic_inc(&X->dq_count);
                                      }
                                      spin_unlock(&dq_list_lock);
  spin_lock(&dq_list_lock);
  dquot = list_first_entry(&rls_head);
  WARN_ON_ONCE(atomic_read(&dquot->dq_count));

The problem is not only a cosmetic one as under memory pressure the
caller of dquot_scan_active() can end up working on freed dquot.

Fix the problem by making sure the dquot is removed from releasing list
when we acquire a reference to it.

Fixes: 869b6ea1609f ("quota: Fix slow quotaoff")
Reported-by: Sam Sun <samsun1006219@gmail.com>
Link: https://lore.kernel.org/all/CAEkJfYPTt3uP1vAYnQ5V2ZWn5O9PLhhGi5HbOcAzyP9vbXyjeg@mail.gmail.com
Signed-off-by: Jan Kara <jack@suse.cz>
5 weeks agodrm/msm/dsi: Add support for RGB101010 pixel format
Alexander Koskovich [Tue, 24 Mar 2026 11:48:49 +0000 (11:48 +0000)] 
drm/msm/dsi: Add support for RGB101010 pixel format

Add video and command mode destination format mappings for RGB101010,
and extend the VID_CFG0 DST_FORMAT bitfield to 3 bits to accommodate
the new format value.

Make sure this is guarded behind MSM_DSI_6G_VER >= V2.1.0 as anything
older does not support this.

Required for 10 bit panels such as the BOE BF068MWM-TD0 found on the
Nothing Phone (3a).

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
Patchwork: https://patchwork.freedesktop.org/patch/713721/
Link: https://lore.kernel.org/r/20260324-dsi-rgb101010-support-v5-5-ff6afc904115@pm.me
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
5 weeks agodrm/msm/dsi: add DSI version >= comparison helper
Alexander Koskovich [Tue, 24 Mar 2026 11:48:38 +0000 (11:48 +0000)] 
drm/msm/dsi: add DSI version >= comparison helper

Add a helper for checking if the DSI hardware version is greater
than or equal to a given version, for use in a future change.

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
Patchwork: https://patchwork.freedesktop.org/patch/713719/
Link: https://lore.kernel.org/r/20260324-dsi-rgb101010-support-v5-4-ff6afc904115@pm.me
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
5 weeks agodrm/msm/dsi: rename MSM8998 DSI version from V2_2_0 to V2_0_0
Alexander Koskovich [Tue, 24 Mar 2026 11:48:27 +0000 (11:48 +0000)] 
drm/msm/dsi: rename MSM8998 DSI version from V2_2_0 to V2_0_0

The MSM8998 DSI controller is v2.0.0 as stated in commit 7b8c9e203039
("drm/msm/dsi: Add support for MSM8998 DSI controller"). The value was
always correct just the name was wrong.

Rename and reorder to maintain version sorting.

Fixes: 7b8c9e203039 ("drm/msm/dsi: Add support for MSM8998 DSI controller")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
Patchwork: https://patchwork.freedesktop.org/patch/713717/
Link: https://lore.kernel.org/r/20260324-dsi-rgb101010-support-v5-3-ff6afc904115@pm.me
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
5 weeks agodrm/meson: use default case for unsupported DSI pixel formats
Alexander Koskovich [Tue, 24 Mar 2026 11:48:17 +0000 (11:48 +0000)] 
drm/meson: use default case for unsupported DSI pixel formats

Use default instead of listing unsupported formats explicitly, so the
switch statements don't need updating each time a new pixel format is
added.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
Patchwork: https://patchwork.freedesktop.org/patch/713715/
Link: https://lore.kernel.org/r/20260324-dsi-rgb101010-support-v5-2-ff6afc904115@pm.me
Acked-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
5 weeks agodrm/xe: always keep track of remap prev/next
Matthew Auld [Wed, 18 Mar 2026 10:02:09 +0000 (10:02 +0000)] 
drm/xe: always keep track of remap prev/next

During 3D workload, user is reporting hitting:

[  413.361679] WARNING: drivers/gpu/drm/xe/xe_vm.c:1217 at vm_bind_ioctl_ops_unwind+0x1e2/0x2e0 [xe], CPU#7: vkd3d_queue/9925
[  413.361944] CPU: 7 UID: 1000 PID: 9925 Comm: vkd3d_queue Kdump: loaded Not tainted 7.0.0-070000rc3-generic #202603090038 PREEMPT(lazy)
[  413.361949] RIP: 0010:vm_bind_ioctl_ops_unwind+0x1e2/0x2e0 [xe]
[  413.362074] RSP: 0018:ffffd4c25c3df930 EFLAGS: 00010282
[  413.362077] RAX: 0000000000000000 RBX: ffff8f3ee817ed10 RCX: 0000000000000000
[  413.362078] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
[  413.362079] RBP: ffffd4c25c3df980 R08: 0000000000000000 R09: 0000000000000000
[  413.362081] R10: 0000000000000000 R11: 0000000000000000 R12: ffff8f41fbf99380
[  413.362082] R13: ffff8f3ee817e968 R14: 00000000ffffffef R15: ffff8f43d00bd380
[  413.362083] FS:  00000001040ff6c0(0000) GS:ffff8f4696d89000(0000) knlGS:00000000330b0000
[  413.362085] CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
[  413.362086] CR2: 00007ddfc4747000 CR3: 00000002e6262005 CR4: 0000000000f72ef0
[  413.362088] PKRU: 55555554
[  413.362089] Call Trace:
[  413.362092]  <TASK>
[  413.362096]  xe_vm_bind_ioctl+0xa9a/0xc60 [xe]

Which seems to hint that the vma we are re-inserting for the ops unwind
is either invalid or overlapping with something already inserted in the
vm. It shouldn't be invalid since this is a re-insertion, so must have
worked before. Leaving the likely culprit as something already placed
where we want to insert the vma.

Following from that, for the case where we do something like a rebind in
the middle of a vma, and one or both mapped ends are already compatible,
we skip doing the rebind of those vma and set next/prev to NULL. As well
as then adjust the original unmap va range, to avoid unmapping the ends.
However, if we trigger the unwind path, we end up with three va, with
the two ends never being removed and the original va range in the middle
still being the shrunken size.

If this occurs, one failure mode is when another unwind op needs to
interact with that range, which can happen with a vector of binds. For
example, if we need to re-insert something in place of the original va.
In this case the va is still the shrunken version, so when removing it
and then doing a re-insert it can overlap with the ends, which were
never removed, triggering a warning like above, plus leaving the vm in a
bad state.

With that, we need two things here:

 1) Stop nuking the prev/next tracking for the skip cases. Instead
    relying on checking for skip prev/next, where needed. That way on the
    unwind path, we now correctly remove both ends.

 2) Undo the unmap va shrinkage, on the unwind path. With the two ends
    now removed the unmap va should expand back to the original size again,
    before re-insertion.

v2:
  - Update the explanation in the commit message, based on an actual IGT of
    triggering this issue, rather than conjecture.
  - Also undo the unmap shrinkage, for the skip case. With the two ends
    now removed, the original unmap va range should expand back to the
    original range.
v3:
  - Track the old start/range separately. vma_size/start() uses the va
    info directly.

Link: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/7602
Fixes: 8f33b4f054fc ("drm/xe: Avoid doing rebinds")
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: <stable@vger.kernel.org> # v6.8+
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Link: https://patch.msgid.link/20260318100208.78097-2-matthew.auld@intel.com
(cherry picked from commit aec6969f75afbf4e01fd5fb5850ed3e9c27043ac)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
5 weeks agodrm/mipi-dsi: add RGB101010 pixel format
Alexander Koskovich [Tue, 24 Mar 2026 11:48:09 +0000 (11:48 +0000)] 
drm/mipi-dsi: add RGB101010 pixel format

Add MIPI_DSI_FMT_RGB101010 for 30 bit (10,10,10 RGB) pixel format,
corresponding to the packed 30 bit pixel stream defined in MIPI DSI
v1.3 Section 8.8.17.

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
Patchwork: https://patchwork.freedesktop.org/patch/713714/
Link: https://lore.kernel.org/r/20260324-dsi-rgb101010-support-v5-1-ff6afc904115@pm.me
[Acked by Maxime to be merged through msm-next on IRC on dri-devel]
[DB: moved RGB101010 to the end of enum mipi_dsi_pixel_format]
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
5 weeks agodrm/bridge: analogix_dp: Reuse &link_train.training_lane[] to set DPCD DP_TRAINING_LA...
Damon Ding [Tue, 11 Nov 2025 02:21:03 +0000 (10:21 +0800)] 
drm/bridge: analogix_dp: Reuse &link_train.training_lane[] to set DPCD DP_TRAINING_LANEx_SET

In analogix_dp_link_start(), &link_train.training_lane[] is used to
set phy PE/VS configurations, and buf[] is initialized with the same
values to set DPCD DP_TRAINING_LANEx_SET.

It makes sense to reuse &link_train.training_lane[] to set DPCD
DP_TRAINING_LANEx_SET, which can remove the redundant assignments
and make codes more concise.

Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://patch.msgid.link/20251111022103.1350183-1-damon.ding@rock-chips.com
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
5 weeks agodrm/xe: always keep track of remap prev/next
Matthew Auld [Wed, 18 Mar 2026 10:02:09 +0000 (10:02 +0000)] 
drm/xe: always keep track of remap prev/next

During 3D workload, user is reporting hitting:

[  413.361679] WARNING: drivers/gpu/drm/xe/xe_vm.c:1217 at vm_bind_ioctl_ops_unwind+0x1e2/0x2e0 [xe], CPU#7: vkd3d_queue/9925
[  413.361944] CPU: 7 UID: 1000 PID: 9925 Comm: vkd3d_queue Kdump: loaded Not tainted 7.0.0-070000rc3-generic #202603090038 PREEMPT(lazy)
[  413.361949] RIP: 0010:vm_bind_ioctl_ops_unwind+0x1e2/0x2e0 [xe]
[  413.362074] RSP: 0018:ffffd4c25c3df930 EFLAGS: 00010282
[  413.362077] RAX: 0000000000000000 RBX: ffff8f3ee817ed10 RCX: 0000000000000000
[  413.362078] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
[  413.362079] RBP: ffffd4c25c3df980 R08: 0000000000000000 R09: 0000000000000000
[  413.362081] R10: 0000000000000000 R11: 0000000000000000 R12: ffff8f41fbf99380
[  413.362082] R13: ffff8f3ee817e968 R14: 00000000ffffffef R15: ffff8f43d00bd380
[  413.362083] FS:  00000001040ff6c0(0000) GS:ffff8f4696d89000(0000) knlGS:00000000330b0000
[  413.362085] CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
[  413.362086] CR2: 00007ddfc4747000 CR3: 00000002e6262005 CR4: 0000000000f72ef0
[  413.362088] PKRU: 55555554
[  413.362089] Call Trace:
[  413.362092]  <TASK>
[  413.362096]  xe_vm_bind_ioctl+0xa9a/0xc60 [xe]

Which seems to hint that the vma we are re-inserting for the ops unwind
is either invalid or overlapping with something already inserted in the
vm. It shouldn't be invalid since this is a re-insertion, so must have
worked before. Leaving the likely culprit as something already placed
where we want to insert the vma.

Following from that, for the case where we do something like a rebind in
the middle of a vma, and one or both mapped ends are already compatible,
we skip doing the rebind of those vma and set next/prev to NULL. As well
as then adjust the original unmap va range, to avoid unmapping the ends.
However, if we trigger the unwind path, we end up with three va, with
the two ends never being removed and the original va range in the middle
still being the shrunken size.

If this occurs, one failure mode is when another unwind op needs to
interact with that range, which can happen with a vector of binds. For
example, if we need to re-insert something in place of the original va.
In this case the va is still the shrunken version, so when removing it
and then doing a re-insert it can overlap with the ends, which were
never removed, triggering a warning like above, plus leaving the vm in a
bad state.

With that, we need two things here:

 1) Stop nuking the prev/next tracking for the skip cases. Instead
    relying on checking for skip prev/next, where needed. That way on the
    unwind path, we now correctly remove both ends.

 2) Undo the unmap va shrinkage, on the unwind path. With the two ends
    now removed the unmap va should expand back to the original size again,
    before re-insertion.

v2:
  - Update the explanation in the commit message, based on an actual IGT of
    triggering this issue, rather than conjecture.
  - Also undo the unmap shrinkage, for the skip case. With the two ends
    now removed, the original unmap va range should expand back to the
    original range.
v3:
  - Track the old start/range separately. vma_size/start() uses the va
    info directly.

Link: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/7602
Fixes: 8f33b4f054fc ("drm/xe: Avoid doing rebinds")
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: <stable@vger.kernel.org> # v6.8+
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Link: https://patch.msgid.link/20260318100208.78097-2-matthew.auld@intel.com
5 weeks agoMerge branch 'ib-scmi-pinctrl-gpio' of git://git.kernel.org/pub/scm/linux/kernel...
Bartosz Golaszewski [Wed, 25 Mar 2026 10:23:06 +0000 (11:23 +0100)] 
Merge branch 'ib-scmi-pinctrl-gpio' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl into gpio/for-next

Pull in the SCMI GPIO driver along with its pinctrl dependencies.

5 weeks agorust: pin-init: replace `addr_of_mut!` with `&raw mut`
Antonio Hickey [Thu, 19 Mar 2026 09:35:28 +0000 (10:35 +0100)] 
rust: pin-init: replace `addr_of_mut!` with `&raw mut`

`feature(raw_ref_op)` became stable in Rust 1.82.0 which is the current
MSRV of pin-init with no default features. Earlier Rust versions will
now need to enable `raw_ref_op` to continue to work with pin-init.

This reduces visual complexity and improves consistency with existing
reference syntax.

Suggested-by: Benno Lossin <lossin@kernel.org>
Link: https://github.com/Rust-for-Linux/linux/issues/1148
Closes: https://github.com/Rust-for-Linux/pin-init/issues/99
Signed-off-by: Antonio Hickey <contact@antoniohickey.com>
Link: https://github.com/Rust-for-Linux/pin-init/commit/e27763004e2f6616b089437fbe9b3719cd72bd5c
[ Reworded commit message. - Benno ]
Reviewed-by: Gary Guo <gary@garyguo.net>
Link: https://patch.msgid.link/20260319093542.3756606-6-lossin@kernel.org
Signed-off-by: Benno Lossin <lossin@kernel.org>
5 weeks agorust: pin-init: implement ZeroableOption for NonZero* integer types
Hamdan-Khan [Thu, 19 Mar 2026 09:35:27 +0000 (10:35 +0100)] 
rust: pin-init: implement ZeroableOption for NonZero* integer types

Add a macro for implementing `ZeroableOption` for `NonZero*` types.

`Option<NonZero*>` now automatically implements `Zeroable` trait  by
implementing `ZeroableOption` for `NonZero*` types, which serves as a
blanket impl.

Closes: https://github.com/Rust-for-Linux/pin-init/issues/95
Signed-off-by: Hamdan-Khan <hamdankhan212@gmail.com>
Link: https://github.com/Rust-for-Linux/pin-init/commit/74f772641cd9670848fa360f4ebfd20fdb40bf78
[ Fixed a typo in the commit message. - Benno ]
Link: https://patch.msgid.link/20260319093542.3756606-5-lossin@kernel.org
Signed-off-by: Benno Lossin <lossin@kernel.org>
5 weeks agorust: pin-init: doc: de-clutter documentation with fake-variadics
Gary Guo [Thu, 19 Mar 2026 09:35:26 +0000 (10:35 +0100)] 
rust: pin-init: doc: de-clutter documentation with fake-variadics

Currently the doc for `Zeroable` and `ZeroableOption` are filled with the
generated impl of tuples and fn pointers. Use the internal
"fake_variadics" feature to improve the rendered quality.

This makes use of an internal feature, however this is of minimal risk as
it's for documentation only, not activated during normal build, gated
behind `USE_RUSTC_FEATURES`, and can be removed at any time. This feature
is already used by serde and bevy to improve documentation quality.

For compilers that cannot use this feature, we still hide most generated
impls, and the existence of them are hinted by doc comments on the single
non-hidden impl.

Signed-off-by: Gary Guo <gary@garyguo.net>
Link: https://github.com/Rust-for-Linux/pin-init/commit/530c4eb79a449599e219821f9397f03250cc2aa4
[ Reordered `#[doc]` attributes and safety comments to avoid errors in
  older versions of clippy. - Benno ]
Link: https://patch.msgid.link/20260319093542.3756606-4-lossin@kernel.org
Signed-off-by: Benno Lossin <lossin@kernel.org>
5 weeks agorust: pin-init: properly document let binding workaround
Benno Lossin [Thu, 19 Mar 2026 09:35:25 +0000 (10:35 +0100)] 
rust: pin-init: properly document let binding workaround

The three let bindings (in the bodies of `cast_init`, `cast_pin_init`
and the `init!` macro) are used to avoid the following compiler error in
Rust 1.78.0, 1.79.0, 1.80.0, 1.80.1, and 1.81.0 (just showing the one
for `cast_init`, the others are similar):

    error[E0391]: cycle detected when computing type of opaque `cast_init::{opaque#0}`
        --> src/lib.rs:1160:66
         |
    1160 | pub const unsafe fn cast_init<T, U, E>(init: impl Init<T, E>) -> impl Init<U, E> {
         |                                                                  ^^^^^^^^^^^^^^^
         |
    note: ...which requires borrow-checking `cast_init`...
        --> src/lib.rs:1160:1
         |
    1160 | pub const unsafe fn cast_init<T, U, E>(init: impl Init<T, E>) -> impl Init<U, E> {
         | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    note: ...which requires const checking `cast_init`...
        --> src/lib.rs:1160:1
         |
    1160 | pub const unsafe fn cast_init<T, U, E>(init: impl Init<T, E>) -> impl Init<U, E> {
         | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         = note: ...which requires computing whether `cast_init::{opaque#0}` is freeze...
         = note: ...which requires evaluating trait selection obligation `cast_init::{opaque#0}: core::marker::Freeze`...
         = note: ...which again requires computing type of opaque `cast_init::{opaque#0}`, completing the cycle
    note: cycle used when computing type of `cast_init::{opaque#0}`
        --> src/lib.rs:1160:66
         |
    1160 | pub const unsafe fn cast_init<T, U, E>(init: impl Init<T, E>) -> impl Init<U, E> {
         |                                                                  ^^^^^^^^^^^^^^^
         = note: see https://rustc-dev-guide.rust-lang.org/overview.html#queries and https://rustc-dev-guide.rust-lang.org/query.html for more information

Once we raise the nightly-MSRV above 1.81, we can remove this
workaround.

Link: https://github.com/Rust-for-Linux/pin-init/commit/bb3e96f3e9a4f5fca80a22af883c7e5aa90f0893
[ Moved this commit after the previous one to avoid a build failure due
  to unstable features. Changed the cfg to use `USE_RUSTC_FEAUTURES`.
  - Benno ]
Reviewed-by: Gary Guo <gary@garyguo.net>
Link: https://patch.msgid.link/20260319093542.3756606-3-lossin@kernel.org
Signed-off-by: Benno Lossin <lossin@kernel.org>
5 weeks agorust: pin-init: build: simplify use of nightly features
Gary Guo [Thu, 19 Mar 2026 09:35:24 +0000 (10:35 +0100)] 
rust: pin-init: build: simplify use of nightly features

We use some features that are already stable in later versions of Rust,
but only available as unstable features in older Rust versions that the
kernel needs to support.

Instead of checking if a feature is already stable, simply enable them
and allow the warning if the feature is already stable. This avoids the
need of hardcoding whether a feature has been stabilized at a given
version.

`#[feature(...)]` is used when cfg `USE_RUSTC_FEATURES` is enabled. The
build script automatically does this when a nightly compiler is detected
or `RUSTC_BOOTSTRAP` is set.

Signed-off-by: Gary Guo <gary@garyguo.net>
Link: https://github.com/Rust-for-Linux/pin-init/commit/885c5d83d7eb778a796d4a17380a0898b0d0a571
[ Added kernel build system changes to always enable USE_RUSTC_FEATURES.
  Moved this commit earlier (swapped with the next one) to avoid a build
  error. - Benno ]
Link: https://patch.msgid.link/20260319093542.3756606-2-lossin@kernel.org
Signed-off-by: Benno Lossin <lossin@kernel.org>
5 weeks agoarm64: tegra: defconfig: Drop redundant ARCH_TEGRA_foo_SOC
Krzysztof Kozlowski [Tue, 17 Feb 2026 09:16:38 +0000 (10:16 +0100)] 
arm64: tegra: defconfig: Drop redundant ARCH_TEGRA_foo_SOC

All CONFIG_ARCH_TEGRA_132_SOC-like symbols are now default for
ARCH_TEGRA, so drop redundant lines from defconfig.  Tested with
comparing include/generated/autoconf.h.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Reviewed-by: Linus Walleij <linusw@kernel.org>
Acked-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
5 weeks agoMerge branch 'for-7.1/soc' into for-7.1/arm64/defconfig
Thierry Reding [Wed, 25 Mar 2026 09:49:24 +0000 (10:49 +0100)] 
Merge branch 'for-7.1/soc' into for-7.1/arm64/defconfig

5 weeks agoARM: tegra: defconfig: Drop redundant ARCH_TEGRA_foo_SOC
Krzysztof Kozlowski [Tue, 17 Feb 2026 09:16:37 +0000 (10:16 +0100)] 
ARM: tegra: defconfig: Drop redundant ARCH_TEGRA_foo_SOC

All CONFIG_ARCH_TEGRA_2x_SOC-like symbols are now default for
ARCH_TEGRA, so drop redundant lines from defconfigs.  Tested with
comparing include/generated/autoconf.h.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Reviewed-by: Linus Walleij <linusw@kernel.org>
Acked-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
5 weeks agoMerge branch 'for-7.1/soc' into for-7.1/arm/defconfig
Thierry Reding [Wed, 25 Mar 2026 09:48:38 +0000 (10:48 +0100)] 
Merge branch 'for-7.1/soc' into for-7.1/arm/defconfig

5 weeks agosoc/tegra: Add Tegra238 Kconfig symbol
Thierry Reding [Thu, 26 Feb 2026 15:09:32 +0000 (16:09 +0100)] 
soc/tegra: Add Tegra238 Kconfig symbol

The NVIDIA Tegra238 SoC is an upcoming new chip. Add a Kconfig symbol to
allow fine-grained selection of support code for this chip.

Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
5 weeks agosoc/tegra: Make ARCH_TEGRA_SOC_FOO defaults for NVIDIA Tegra
Krzysztof Kozlowski [Tue, 17 Feb 2026 09:16:36 +0000 (10:16 +0100)] 
soc/tegra: Make ARCH_TEGRA_SOC_FOO defaults for NVIDIA Tegra

By convention, only one globally selectable ARCH_PLATFORM is expected
for given SoC platform, defined in arch/arm64/Kconfig.platforms or
arch/arm/mach-*/Kconfig, because we target a single multi-platform
kernel image.

Platforms wanting different granularity, e.g. due to size constraints on
their devices, should be sure that globally only one ARCH_PLATFORM is
selected in defconfig.  Change Tegra per-SoC Kconfig entries to default
to ARCH_TEGRA allowing removal of these per-SoC parts from defconfigs.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Reviewed-by: Linus Walleij <linusw@kernel.org>
[treding@nvidia.com: Fix ARCH_PLATFORM typo, correct spelling]
Signed-off-by: Thierry Reding <treding@nvidia.com>
5 weeks agowifi: iwlwifi: mld: set RX_FLAG_RADIOTAP_TLV_AT_END generically
Johannes Berg [Sat, 21 Mar 2026 17:29:22 +0000 (19:29 +0200)] 
wifi: iwlwifi: mld: set RX_FLAG_RADIOTAP_TLV_AT_END generically

Instead of setting this flag in the iwl_mld_radiotap_put_tlv()
users, and not even all of them, set it inside the function.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260321192637.31eff369ccf2.If5cee8f7c767b937891abb6cccf2692068ba7758@changeid
5 weeks agowifi: iwlwifi: reduce the number of prints upon firmware crash
Emmanuel Grumbach [Sat, 21 Mar 2026 17:29:21 +0000 (19:29 +0200)] 
wifi: iwlwifi: reduce the number of prints upon firmware crash

When the firmware crashes, we print data to be able to know what
happened. The problem is that those prints became excessive as during
the course of the years, we added more data without ever removing the
prints that were no longer useful.
Instead of spamming the log with data that will not help anyone, limit
the prints to what is really needed.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Reviewed-by: Eilon Rinat <eilon.rinat@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260321192637.3bb8b142ff48.Ieacb12bf3bc930a4c28824e31d8e06eda177ba78@changeid
5 weeks agowifi: iwlwifi: fix the description of SESSION_PROTECTION_CMD
Emmanuel Grumbach [Sat, 21 Mar 2026 17:29:20 +0000 (19:29 +0200)] 
wifi: iwlwifi: fix the description of SESSION_PROTECTION_CMD

The struct has been renamed to iwl_session_prot_cmd.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260321192637.56545b097d13.If468c6a666dcf3a52601604bfc8a1c4faa9d320c@changeid
5 weeks agowifi: iwlwifi: mld: introduce iwl_mld_vif_fw_id_valid
Miri Korenblit [Sat, 21 Mar 2026 17:29:19 +0000 (19:29 +0200)] 
wifi: iwlwifi: mld: introduce iwl_mld_vif_fw_id_valid

Introduce a helper function that checks if a vif fw id is valid, and warns
if it isn't.

Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260321192637.b68d43db2ddc.I11b2b98e115da9eec8f603c5a01a0a9bcd040884@changeid
5 weeks agowifi: iwlwifi: mld: block EMLSR during TDLS connections
Avinash Bhatt [Sat, 21 Mar 2026 17:29:18 +0000 (19:29 +0200)] 
wifi: iwlwifi: mld: block EMLSR during TDLS connections

TDLS (Tunneled Direct Link Setup) requires single-link operation
for direct peer-to-peer communication, which is incompatible with
EMLSR (Enhanced Multi-Link Single Radio) mode where the radio
switches between multiple links.

Block EMLSR when the first TDLS peer is added and unblock when
the last TDLS peer is removed. The block/unblock APIs handle
exiting EMLSR and triggering link selection automatically.

Signed-off-by: Avinash Bhatt <avinash.bhatt@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260321192637.c1376b0259dd.I016587eb1570f7a7a64c0c95e0636e955a640350@changeid
5 weeks agowifi: iwlwifi: TLC_MNG_CONFIG_CMD can use several structures
Emmanuel Grumbach [Sat, 21 Mar 2026 17:29:17 +0000 (19:29 +0200)] 
wifi: iwlwifi: TLC_MNG_CONFIG_CMD can use several structures

Depending on the firmware API version, we can use different version of
the command. Mention them all in the description.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260321192637.2c0b1adb8655.Id0cc6cb6996df53a224d29fa541d19b9ee2aa479@changeid
5 weeks agowifi: iwlwifi: mld: update the TLC when we deactivate a link
Emmanuel Grumbach [Sat, 21 Mar 2026 17:29:16 +0000 (19:29 +0200)] 
wifi: iwlwifi: mld: update the TLC when we deactivate a link

We hit a problem in the channel switch flow.
We had link 0 using PHY 0, so the TLC object in the firmware is using
PHY 0.
Then we switched channel, so mac80211 / iwlmld:
* deactivated link 0
* removed PHY 0
* added PHY 1
* modified link 0 to use PHY 1
* activated link 0.

The TLC object was not updated and the firmware was unhappy that the TLC
was still trying to use PHY 0.

Fix that by letting the TLC know about the PHY context before the link
activation.
When we are de-activating a link, let the TLC know so that it'll send a
TLC configuration command with an invalid PHY context to remove the
relationship between the TLC object and the PHY that is going to be
removed.

That last part is not implemented yet in the firmware, so leave this as
a TODO for now.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260321192637.317c66b11a31.I591118fa376ed967c0d1a47058c13834bc94605e@changeid
5 weeks agowifi: iwlwifi: add a macro for max FW links
Miri Korenblit [Sat, 21 Mar 2026 17:29:15 +0000 (19:29 +0200)] 
wifi: iwlwifi: add a macro for max FW links

Currently we use IWL_FW_MAX_LINK_ID + 1 to indicate the maximum number
of link that the fw supports. This is a bit confusing.
Add a macro that indicates the number if maximum links that the FW
supports and use it instead.

Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260321192637.8da9f991526f.I72709f1db90036265c98c5d45682bcf5f36be7ba@changeid
5 weeks agowifi: iwlwifi: mld: always assign a fw id to a vif
Miri Korenblit [Sat, 21 Mar 2026 17:29:14 +0000 (19:29 +0200)] 
wifi: iwlwifi: mld: always assign a fw id to a vif

We used to have a fw id assignment in iwl_mld_init_vif since all interface
types that were added to the driver was immediately added to the FW as
well.
Since NAN was introduced, this is no longer the case - the NAN interface
is not added to the fw until a local schedule is configured.

For this vif we don't assign a fw id so it is 0 by default.
But later, when the vif is removed from the driver, we think that it has
a valid fw id (0) and we point fw_id_to_vif[0] to NULL.
fw_id_to_vif[0] might actually point to another vif with a valid fw id
0. In this case, we end up messing fw_id_to_vif.

Fix this by initializing a vif with a special invalid fw id, and by
exiting iwl_mld_rm_vif early for NAN interfaces.

Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260321192637.f3b5cc59098f.I3d1dbe66bd224cbb786c2b0ab3d1c9f7ec9003e4@changeid
5 weeks agowifi: iwlwifi: mld: use the dedicated helper to extract a link
Miri Korenblit [Sat, 21 Mar 2026 17:29:13 +0000 (19:29 +0200)] 
wifi: iwlwifi: mld: use the dedicated helper to extract a link

There is a helper, iwl_mld_fw_id_to_link_conf, that converts a fw link
id into the bss_conf structure. Use it in two more places instead of
retrieving the bss_conf directly from the fw-id-to-bss_conf mapping array.

This required changing the loop bound in iwl_mld_process_per_link_stats()
to ucode_capa.num_links, to avoid hitting a IWL_FW_CHECK for link ids
> ucode_capa.num_links and < ARRAY_SIZE(fw_id_to_bss_conf), but this
change makes sense anyway (there is no reason to iterate links that
cannot be valid).

Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260321192637.f8da2cd2a873.I7fbd3b4a86a5695206bb5083fdac49de9acc9dca@changeid
5 weeks agowifi: iwlwifi: add MAC context command version 4
Johannes Berg [Sat, 21 Mar 2026 17:29:12 +0000 (19:29 +0200)] 
wifi: iwlwifi: add MAC context command version 4

Due to NAN additions, this command needs to grow. In iwlmvm
we just need to use the old _v3 (or v2) version, but iwlmld
needs to handle the difference and send both.  Do that as a
first step towards adding NAN support.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260321192637.5ab609ca1966.I860737f952865bd0b997f1c190c3891864c7c6ba@changeid
5 weeks agowifi: iwlwifi: handle NULL/ERR returns from ptp_clock_register()
Avinash Bhatt [Sat, 21 Mar 2026 17:29:11 +0000 (19:29 +0200)] 
wifi: iwlwifi: handle NULL/ERR returns from ptp_clock_register()

ptp_clock_register() returns NULL when PTP support is disabled and may
return an ERR_PTR() on other failures. Reduce Log severity for NULL
return cases to avoid misleading errors when PTP is unavailable.

Signed-off-by: Avinash Bhatt <avinash.bhatt@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260321192637.adea594600e8.I0e3d3f7ce897c54fff8ace6dd0faf55b4f39832b@changeid
5 weeks agowifi: iwlwifi: mld: add double-include guards to nan.h
Johannes Berg [Sat, 21 Mar 2026 17:29:10 +0000 (19:29 +0200)] 
wifi: iwlwifi: mld: add double-include guards to nan.h

This is missing, but needed when we want to add data structures
to this file.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260321192637.4e09d461db6a.If5c14c495b14a20ce7abadc72be57a40d3462bfb@changeid
5 weeks agowifi: iwlwifi: mld: make alloc functions not forced static
Johannes Berg [Sat, 21 Mar 2026 17:29:09 +0000 (19:29 +0200)] 
wifi: iwlwifi: mld: make alloc functions not forced static

In preparation for NAN needing the link ID allocation, have
the macro not automatically make the ID allocation functions
static so we can remove that later from the link allocation
function.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260321192637.cbfd202c255f.I4dd4d4416d30bed35bc7b7caa3de50071906830a@changeid
5 weeks agowifi: iwlwifi: mld: rename iwl_mld_phy_from_mac80211() argument
Johannes Berg [Sat, 21 Mar 2026 17:29:08 +0000 (19:29 +0200)] 
wifi: iwlwifi: mld: rename iwl_mld_phy_from_mac80211() argument

Calling the channel context just "channel" is confusing since it's
a different struct, rename it to the more appropriate "chanctx".

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260321192637.b2cf8cfd5902.I9e0006481454445058b96ec3e7ae338e917e2c50@changeid
5 weeks agowifi: iwlwifi: mld: remove type argument from iwl_mld_add_sta()
Johannes Berg [Fri, 20 Mar 2026 08:09:18 +0000 (10:09 +0200)] 
wifi: iwlwifi: mld: remove type argument from iwl_mld_add_sta()

This is used only in a single place, and the caller always sets
the type to STATION_TYPE_PEER right now. We need to change some
of this for NAN in the future, removing the type argument will
simplify that.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260320100746.71841a054f16.I1851148e582eb710261740459a46d22720788926@changeid
5 weeks agowifi: iwlwifi: mld: make iwl_mld_mac80211_iftype_to_fw() static
Johannes Berg [Fri, 20 Mar 2026 08:09:17 +0000 (10:09 +0200)] 
wifi: iwlwifi: mld: make iwl_mld_mac80211_iftype_to_fw() static

This function is only used within the file, so make it static.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260320100746.45867b060b3d.Iee64056fab7881ea5146433bacef8c2e936c45b1@changeid
5 weeks agowifi: iwlwifi: pcie: don't dump on reset handshake in dump
Johannes Berg [Fri, 20 Mar 2026 08:09:16 +0000 (10:09 +0200)] 
wifi: iwlwifi: pcie: don't dump on reset handshake in dump

When a FW dump happens, possibly even because of a reset handshake
timeout, there's no point in attempting to dump again. Since all the
callers of the function outside the transport itself are from the FW
dump infrastructure, just split the internal function and make the
external one not dump on timeout.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260320100746.f36ba3893899.I063ccc3a037ae6dabcde61941acb162c4b33f127@changeid
5 weeks agowifi: iwlwifi: use IWL_FW_CHECK for sync timeout
Johannes Berg [Fri, 20 Mar 2026 08:09:15 +0000 (10:09 +0200)] 
wifi: iwlwifi: use IWL_FW_CHECK for sync timeout

This could be a firmware issue, it didn't send all the responses
quickly enough. There are other potential issues (interrupts not
being delivered, etc.) but the FW debug data will at least give
some better information, and it's not a WARN condition anyway.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260320100746.2188e2efbead.I7dc5bd6f581a31ac51d8a854f3b3af4cb980223a@changeid
5 weeks agowifi: iwlwifi: mld: add BIOS revision compatibility check for PPAG command
Pagadala Yesu Anjaneyulu [Fri, 20 Mar 2026 08:09:14 +0000 (10:09 +0200)] 
wifi: iwlwifi: mld: add BIOS revision compatibility check for PPAG command

Prevent potential issues when newer BIOS revisions
are used with firmware that doesn't support them for
PER_PLATFORM_ANT_GAIN_CMD.

Without this check, the driver may attempt to use
BIOS configurations that are incompatible with the
current firmware version, leading to dropping of
command in firmware without any failure notification
to driver.

Signed-off-by: Pagadala Yesu Anjaneyulu <pagadala.yesu.anjaneyulu@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260320100746.79bf2bf398d0.I8161dbe1a04af3738e00ab0fc13fe3dbfa9094ec@changeid
5 weeks agowifi: iwlwifi: validate the channels received in iwl_mcc_update_resp_v*
Miri Korenblit [Fri, 20 Mar 2026 08:09:13 +0000 (10:09 +0200)] 
wifi: iwlwifi: validate the channels received in iwl_mcc_update_resp_v*

Check with IWL_FW_CHECK that the FW doesn't send a channel that we don't
support. Otherwise, the center frequency will be 0, leading to a
warning since is_valid_reg_rule will return false, of course.
Although the warning is verbose enough, the IWL_FW_CHECK will spare some
of the debug.

Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260320100746.0e83cdd88cea.Ic86852e622ed3ec06110f9e6525f72679236cf1e@changeid
5 weeks agowifi: iwlwifi: add CQM event support for per-link RSSI changes
Avinash Bhatt [Fri, 20 Mar 2026 08:09:12 +0000 (10:09 +0200)] 
wifi: iwlwifi: add CQM event support for per-link RSSI changes

Implement CQM RSSI threshold handling by tracking the last reported RSSI
and issuing CQM low/high events when the RSSI crosses the configured
threshold with the required hysteresis. This provides proper CQM support
and enables userspace to receive per-link RSSI notifications.

Signed-off-by: Avinash Bhatt <avinash.bhatt@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Reviewed-by: Pagadala Yesu Anjaneyulu <pagadala.yesu.anjaneyulu@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260320100746.08697e34bf66.Ic1a68537ef0d37be62c73c138efe9c5cf09bd24c@changeid