]> git.ipfire.org Git - thirdparty/kernel/stable.git/log
thirdparty/kernel/stable.git
4 weeks agoplatform: int3472: Add gpio software node
Antti Laakso [Wed, 11 Mar 2026 13:19:08 +0000 (15:19 +0200)] 
platform: int3472: Add gpio software node

The tps68470 supports i2c daisy chain, which need to be configured by
gpio-tps68470 driver. Add daisy chain information to software node.

Signed-off-by: Antti Laakso <antti.laakso@linux.intel.com>
Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>
Acked-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Reviewed-by: Hans de Goede <johannes.goede@oss.qualcomm.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
4 weeks agomedia: i2c: ov5675: Wait for endpoint
Antti Laakso [Wed, 11 Mar 2026 13:19:06 +0000 (15:19 +0200)] 
media: i2c: ov5675: Wait for endpoint

Defer probe if endpoint is not yet available. And do it before acquiring
clock, gpio and regulators.

Signed-off-by: Antti Laakso <antti.laakso@linux.intel.com>
Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>
Reviewed-by: Hans de Goede <johannes.goede@oss.qualcomm.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
4 weeks agomedia: staging: imx: configure src_mux in csi_start
Michael Tretter [Fri, 7 Nov 2025 10:34:34 +0000 (11:34 +0100)] 
media: staging: imx: configure src_mux in csi_start

After media_pipeline_start() was called, the media graph is assumed to
be validated. It won't be validated again if a second stream starts.

The imx-media-csi driver, however, changes hardware configuration in the
link_validate() callback. This can result in started streams with
misconfigured hardware.

In the concrete example, the ipu2_csi1 is driven by a parallel video
input. After the media pipeline has been started with this
configuration, a second stream is configured to use ipu1_csi0 with
MIPI-CSI input from imx6-mipi-csi2. This may require the reconfiguration
of ipu1_csi0 with ipu_set_csi_src_mux(). Since the media pipeline is
already running, link_validate won't be called, and the ipu1_csi0 won't
be reconfigured. The resulting video is broken, because the ipu1_csi0 is
misconfigured, but no error is reported.

Move ipu_set_csi_src_mux from csi_link_validate to csi_start to ensure
that input to ipu1_csi0 is configured correctly when starting the
stream. This is a local reconfiguration in ipu1_csi0 and is possible
while the media pipeline is running.

Since csi_start() is called with priv->lock already locked,
csi_set_src() must not lock priv->lock again. Thus, the mutex_lock() is
dropped.

Signed-off-by: Michael Tretter <m.tretter@pengutronix.de>
Fixes: 4a34ec8e470c ("[media] media: imx: Add CSI subdev driver")
Cc: stable@vger.kernel.org
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
4 weeks agomedia: staging: imx: request mbus_config in csi_start
Michael Tretter [Fri, 7 Nov 2025 10:34:33 +0000 (11:34 +0100)] 
media: staging: imx: request mbus_config in csi_start

Request the upstream mbus_config in csi_start, which starts the stream,
instead of caching it in link_validate.

This allows to get rid of the mbus_cfg field in the struct csi_priv and
avoids state in the driver.

Fixes: 4a34ec8e470c ("[media] media: imx: Add CSI subdev driver")
Cc: stable@vger.kernel.org
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Michael Tretter <m.tretter@pengutronix.de>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
4 weeks agomedia: staging: imx: fix code style issues
vivek yadav [Tue, 2 Dec 2025 16:14:13 +0000 (21:44 +0530)] 
media: staging: imx: fix code style issues

Applied checkpatch.pl recommendations:
- corrected whitespace
- fixed line length
- adjusted indentation

Signed-off-by: vivek yadav <y9.vivek@gmail.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
4 weeks agomedia: staging: imx: Remove unnecessary braces from if statement
Ayush Kumar [Tue, 25 Nov 2025 20:23:31 +0000 (20:23 +0000)] 
media: staging: imx: Remove unnecessary braces from if statement

Adhering to Linux kernel coding style guidelines (Chapter 3: Indentation).

Signed-off-by: Ayush Kumar <ayushkr0s@gmail.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
4 weeks agoarm64: dts: renesas: beacon-renesom: Remove LVDS Panel
Adam Ford [Wed, 25 Mar 2026 16:27:35 +0000 (11:27 -0500)] 
arm64: dts: renesas: beacon-renesom: Remove LVDS Panel

The LVDS Panel was never shipped from Beacon, and there are device
tree errors, so rather than trying to fix them, remove it instead.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260325162735.24467-1-aford173@gmail.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
4 weeks agoARM: dts: r9a06g032: Add #address-cells to the GIC node
Herve Codina (Schneider Electric) [Wed, 25 Mar 2026 09:57:18 +0000 (10:57 +0100)] 
ARM: dts: r9a06g032: Add #address-cells to the GIC node

When checking dts involving the r9a06g032.dtsi file, the following kind
of warnings are reported:
   Missing property '#address-cells' in node xxx, using 0 as fallback

Indeed, #address-cells is not present in the GIC interrupt controller
node.

Fix it adding the missing property.

Value '0' is correct because:
1. GIC interrupt controller does not have children,
2. interrupt-map property in PCI node and in IRQ mux node consists of
   several components and the component related to "parent unit
   address", which size is defined by '#address-cells' of the node
   pointed to by the interrupt-parent component, is not used (=0)

No functional change.

Signed-off-by: Herve Codina (Schneider Electric) <herve.codina@bootlin.com>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260325095718.388157-1-herve.codina@bootlin.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
4 weeks agoarm64: dts: renesas: r9a09g056: Remove wdt{0,2,3} nodes
Fabrizio Castro [Tue, 24 Mar 2026 22:52:34 +0000 (22:52 +0000)] 
arm64: dts: renesas: r9a09g056: Remove wdt{0,2,3} nodes

The Renesas RZ/V2N SoC (a.k.a. r9a09g056) comes with 4 CA55
cores and 1 CM33 core.

While the user manual doesn't explicitly specify which cores
should have access to particular watchdogs, it turns out that
(similarly to the Renesas RZ/V2H(P)) it only makes sense for
Linux to use WDT1.

Remove DT nodes wdt{0,2,3} from the RZ/V2N SoC specific dtsi
to make it compliant with the original design intent.

This change is harmless as there are no users for the nodes
being stripped out of this device tree.

Signed-off-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260324225239.19136-2-fabrizio.castro.jz@renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
4 weeks agoarm64: dts: renesas: sparrow-hawk: Add overlay for Olimex MIPI-HDMI adapter
Scott Murray [Fri, 20 Mar 2026 02:52:57 +0000 (03:52 +0100)] 
arm64: dts: renesas: sparrow-hawk: Add overlay for Olimex MIPI-HDMI adapter

Add a DT overlay to bind the Olimex MIPI-HDMI dual-lane DSI-to-HDMI adapter
on the Retronix R-Car V4H Sparrow Hawk board.

Current device link is at https://www.olimex.com/Products/IoT/ESP32-P4/MIPI-HDMI/open-source-hardware

Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260320025328.509003-1-marek.vasut+renesas@mailbox.org
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
4 weeks agoarm64: dts: renesas: r9a09g047e57-smarc: Enable PCIe
John Madieu [Wed, 18 Mar 2026 08:51:19 +0000 (09:51 +0100)] 
arm64: dts: renesas: r9a09g047e57-smarc: Enable PCIe

The RZ Smarc Carrier-II board has PCIe slots mounted on it.
Enable PCIe support.

Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260318085119.44717-5-john.madieu.xa@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
4 weeks agoarm64: dts: renesas: r9a09g047e57-smarc-som: Add PCIe reference clock
John Madieu [Wed, 18 Mar 2026 08:51:18 +0000 (09:51 +0100)] 
arm64: dts: renesas: r9a09g047e57-smarc-som: Add PCIe reference clock

The RZ/G3E SMARC SoM has a fixed 100 MHz reference clock generator
for PCIe.  Model it as a fixed-clock and assign it to the PCIe port.

Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>
Tested-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> # RZ/V2N EVK
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260318085119.44717-4-john.madieu.xa@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
4 weeks agoarm64: dts: renesas: r9a09g047: Add PCIe node
John Madieu [Wed, 18 Mar 2026 08:51:17 +0000 (09:51 +0100)] 
arm64: dts: renesas: r9a09g047: Add PCIe node

The RZ/G3E SoC family features an x2 PCIe IP.  Add the PCIe node.

Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>
Tested-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> # RZ/V2N EVK
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260318085119.44717-3-john.madieu.xa@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
4 weeks agoarm64: dts: renesas: Fix KSZ9131 PHY bogus txdv-skew-psec properties
Marek Vasut [Fri, 13 Mar 2026 16:39:06 +0000 (17:39 +0100)] 
arm64: dts: renesas: Fix KSZ9131 PHY bogus txdv-skew-psec properties

The KSZ9131 schema does not document the "txdv-skew-psec" property,
neither does the kernel driver support this property.  It does however
document and support the "txen-skew-psec" property.  Fix what is likely
a copy-paste error from the matching "rxdv-skew-psec" property, use the
"txen-skew-psec" property instead of the "txdv-skew-psec" property.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Tested-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260313164008.40933-5-marek.vasut+renesas@mailbox.org
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
4 weeks agoarm64: dts: renesas: Drop KSZ9131 PHY C22 compatible strings
Marek Vasut [Fri, 13 Mar 2026 16:39:05 +0000 (17:39 +0100)] 
arm64: dts: renesas: Drop KSZ9131 PHY C22 compatible strings

The Microchip KSZ9131 PHY schema indicates that the compatible string
"ethernet-phy-id0022.1640" must not be followed by any other compatible
string.  Drop trailing "ethernet-phy-ieee802.3-c22" to match the schema.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260313164008.40933-4-marek.vasut+renesas@mailbox.org
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
4 weeks agoarm64: dts: renesas: Drop RTL8211F PHY C22 compatible strings
Marek Vasut [Fri, 13 Mar 2026 16:39:04 +0000 (17:39 +0100)] 
arm64: dts: renesas: Drop RTL8211F PHY C22 compatible strings

The Realtek RTL8211F PHY schema indicates that the compatible string
"ethernet-phy-id001c.c916" must not be followed by any other compatible
string.  Drop trailing "ethernet-phy-ieee802.3-c22" to match the schema.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260313164008.40933-3-marek.vasut+renesas@mailbox.org
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
4 weeks agoarm64: dts: renesas: Drop RTL8211E PHY C22 compatible strings
Marek Vasut [Fri, 13 Mar 2026 16:39:03 +0000 (17:39 +0100)] 
arm64: dts: renesas: Drop RTL8211E PHY C22 compatible strings

The Realtek RTL8211E PHY schema indicates that the compatible string
"ethernet-phy-id001c.c915" must not be followed by any other compatible
string.  Drop trailing "ethernet-phy-ieee802.3-c22" to match the schema.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260313164008.40933-2-marek.vasut+renesas@mailbox.org
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
4 weeks agoPCI: hv: Set default NUMA node to 0 for devices without affinity info
Long Li [Mon, 16 Mar 2026 21:07:42 +0000 (14:07 -0700)] 
PCI: hv: Set default NUMA node to 0 for devices without affinity info

When hv_pci_assign_numa_node() processes a device that does not have
HV_PCI_DEVICE_FLAG_NUMA_AFFINITY set or has an out-of-range
virtual_numa_node, the device NUMA node is left unset. On x86_64,
the uninitialized default happens to be 0, but on ARM64 it is
NUMA_NO_NODE (-1).

Tests show that when no NUMA information is available from the Hyper-V
host, devices perform best when assigned to node 0. With NUMA_NO_NODE
the kernel may spread work across NUMA nodes, which degrades
performance on Hyper-V, particularly for high-throughput devices like
MANA.

Always set the device NUMA node to 0 before the conditional NUMA
affinity check, so that devices get a performant default when the host
provides no NUMA information, and behavior is consistent on both
x86_64 and ARM64.

Fixes: 999dd956d838 ("PCI: hv: Add support for protocol 1.3 and support PCI_BUS_RELATIONS2")
Signed-off-by: Long Li <longli@microsoft.com>
Reviewed-by: Michael Kelley <mhklinux@outlook.com>
Signed-off-by: Wei Liu <wei.liu@kernel.org>
4 weeks agoarm64: dts: renesas: sparrow-hawk: Add overlay for WaveShare Display 13.3"
Marek Vasut [Sat, 17 Jan 2026 00:49:49 +0000 (01:49 +0100)] 
arm64: dts: renesas: sparrow-hawk: Add overlay for WaveShare Display 13.3"

Add a DT overlay to bind the WaveShare 13.3inch 1920x1080 DSI Capacitive
Touch Display on the Retronix R-Car V4H Sparrow Hawk board.

Current device link is at https://www.waveshare.com/13.3inch-dsi-lcd.htm

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260117005028.126361-2-marek.vasut+renesas@mailbox.org
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
4 weeks agoclk: renesas: r9a09g056: Remove entries for WDT{0,2,3}
Fabrizio Castro [Tue, 24 Mar 2026 22:52:35 +0000 (22:52 +0000)] 
clk: renesas: r9a09g056: Remove entries for WDT{0,2,3}

The Renesas RZ/V2N SoC (a.k.a. r9a09g056) comes with 4 watchdogs.

As it turns out, it only makes sense for Linux to have access to
WDT1.

Remove the clock and reset entries for WDT{0,2,3} to prevent
interfering with the CM33 core.

This change is harmless as only WDT1 is currently used in Linux,
there are no users for the WDT{0,2,3} IPs.

Signed-off-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260324225239.19136-3-fabrizio.castro.jz@renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
4 weeks agoclk: renesas: r9a06g032: Enable watchdog reset sources
Herve Codina (Schneider Electric) [Tue, 24 Mar 2026 12:04:30 +0000 (13:04 +0100)] 
clk: renesas: r9a06g032: Enable watchdog reset sources

The watchdog timeout is signaled using an interrupt and, on this
interrupt, a software initiated reset is performed.

This software initiated reset performs, in the end, a hardware system
reset using SWRST_REQ of RSTCTRL register.

The watchdog itself is able to control directly the hardware system
reset without any operation done by the interrupt handler. This feature
allows the watchdog to not depend on the software to reset the system
when a watchdog timeout occurs.

Indeed, when the watchdog timeout occurs, the watchdog requests a system
reset using its own hardware dedicated line but this reset source is
disabled at the reset controller level.

To benefit of this feature and be robust against software issues, enable
watchdogs reset sources.

Suggested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Herve Codina (Schneider Electric) <herve.codina@bootlin.com>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260324120435.243641-2-herve.codina@bootlin.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
4 weeks agoclk: renesas: cpg-mssr: Use struct_size() helper
Rosen Penev [Tue, 24 Mar 2026 02:11:03 +0000 (19:11 -0700)] 
clk: renesas: cpg-mssr: Use struct_size() helper

struct_size() is what is normally used when a flexible array member is
present to avoid accidental mistakes.  pm_size is still needed for the
memcpy() call below.

Added __counted_by for extra runtime analysis.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260324021103.13651-1-rosenp@gmail.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
4 weeks agomedia: cx23885: Module option to disable analog video
Bradford Love [Tue, 17 Mar 2026 21:49:02 +0000 (16:49 -0500)] 
media: cx23885: Module option to disable analog video

Initialized and left to themselves some boards with analog inputs,
on some modern platforms can throw critical errors which prevents
even digital from working thereafter. If analog is never used this
module parameter allows analog to be disabled on a card by card
basis.

It is already possible to disable analog audio.

For example, to disable for Hauppauge QuadHD with analog functionality:

options cx23885 disable_analog_video=56,57

can be placed insode of /etc/modprobe.d/cx23885.conf

Signed-off-by: Bradford Love <brad@nextdimension.cc>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
4 weeks agomedia: vidtv: Use crc32_be() instead of open coding
Eric Biggers [Mon, 16 Mar 2026 21:15:42 +0000 (14:15 -0700)] 
media: vidtv: Use crc32_be() instead of open coding

dvb_crc32() does exactly the same computation as the crc32_be() library
function.  Just call crc32_be() instead.

Signed-off-by: Eric Biggers <ebiggers@kernel.org>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
4 weeks agomedia: em28xx: Add Hauppauge 461e v3
Bradford Love [Tue, 17 Mar 2026 20:57:48 +0000 (15:57 -0500)] 
media: em28xx: Add Hauppauge 461e v3

Same as 461v2, but uses Montage ds3103c instead of ds3103b

Signed-off-by: Bradford Love <brad@nextdimension.cc>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
4 weeks agomedia: m88ds3103: Implement 3103c chip support
Bradford Love [Tue, 17 Mar 2026 20:57:47 +0000 (15:57 -0500)] 
media: m88ds3103: Implement 3103c chip support

Hauppauge 416e products have moved to using the 3103C satellite
demod. This demod behaves mostly like a 3103b, but has
different initialization, clocking, and lock operations.

This Linux code was reverse egineered entirely
using a Windows reference driver.

Signed-off-by: Bradford Love <brad@nextdimension.cc>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
[hverkuil: fix a few minor checkpatch issues]
[hverkuil: fixed two minor sparse issues]

4 weeks agomedia: em28xx: Add Hauppauge em2828X based 9x5 revisions
Bradford Love [Tue, 24 Mar 2026 18:25:41 +0000 (13:25 -0500)] 
media: em28xx: Add Hauppauge em2828X based 9x5 revisions

The Hauppauge HVR-935, HVR-955, and HVR-975 have moved
from cx231xx bridge to em2828x bridge.

The following USB device id's are new:
2040:0360 - HVR-935 ISOC transport
2040:8360 - HVR-935 Bulk transport
2040:0366 - HVR-955 ISOC transport
2040:8366 - HVR-955 Bulk transport
2040:036a - HVR-975 ISOC transport
2040:836a - HVR-975 Bulk transport

The devices all now utilize si2177 tuner. Capabilities are:
- Digital TV
- Composite video input
- S-Video input
- Analog stereo input

HVR-935 has DVB-C/T/T2 demod (si2168).
HVR-955 has ATSC/QAM demod (lgdt3306a).
HVR-975 has both ATSC/QAM and DVB-C/T/T2 demods.

Signed-off-by: Bradford Love <brad@nextdimension.cc>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
[hverkuil: a few minor checkpatch fixes]

4 weeks agomedia: si2157: Include support for si2177 chip
Bradford Love [Tue, 24 Mar 2026 18:25:02 +0000 (13:25 -0500)] 
media: si2157: Include support for si2177 chip

The si2177 is very closely related to si2157, with slight differences
when doing analog operations. Digital is left as is, but analog needs
to be configured specially because the signal is internally demodulated
and CVBS video is output directly from the tuner.

Verified locked and working with all supported standards.

Signed-off-by: Bradford Love <brad@nextdimension.cc>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
4 weeks agomedia: em28xx: driver supports two frontends, but not i2c clients
Bradford Love [Tue, 24 Mar 2026 18:24:25 +0000 (13:24 -0500)] 
media: em28xx: driver supports two frontends, but not i2c clients

Fix em28xx driver to accommodate a device with two i2c client demods.

The em28xx driver already had a multi frontend aware device struct,
with two fe, just not two i2c client demods. Since Hauppauge HVR975
has transitioned from cx231xx to em2828X, this is required for full
functionality of the devices.

Signed-off-by: Bradford Love <brad@nextdimension.cc>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
4 weeks agomedia: au0828: Fix green screen in analog
Bradford Love [Tue, 17 Mar 2026 21:07:20 +0000 (16:07 -0500)] 
media: au0828: Fix green screen in analog

When the driver was converted to VB2 the original function to fix
green frame detection was removed and a default vb2 dqbuf function
was used instead. This vb2 dqbuf function leads to green frames not
being detected and correupting stream captures.

The vidioc_dqbuf function checks the greenscreen flag, and, if set
resets the stream to discard the green frame and decode a real frame.

Signed-off-by: Bradford Love <brad@nextdimension.cc>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
4 weeks agomedia: em28xx: Add Hauppauge USB Live2
Bradford Love [Tue, 17 Mar 2026 20:46:45 +0000 (15:46 -0500)] 
media: em28xx: Add Hauppauge USB Live2

New revision of Hauppauge USB Live2 switches from cx231xx usb bridge
to Empia em2828X bridge. Inputs for the USB Live2 remain the same:
- Composite video
- S-Video
- Analog stereo audio

Signed-off-by: Bradford Love <brad@nextdimension.cc>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
4 weeks agomedia: em28xx: Add support for Empia em2828X bridge
Bradford Love [Tue, 17 Mar 2026 20:45:54 +0000 (15:45 -0500)] 
media: em28xx: Add support for Empia em2828X bridge

The empia em2828X usb bridge contains previous functionality,
but also contains an embedded video decoder. The implemented
capabilities include composite and s-video inputs, as well as
analog TV. Analog TV is expected in CVBS format, it must be
demodulated already.

Media controller decoder entity is included so pipeline
verification passes and graph is properly constructed.

Analog TV bits based off cx231xx driver.

Signed-off-by: Bradford Love <brad@nextdimension.cc>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
[hverkuil: fix a few minor checkpatch issues]

4 weeks agoarm64: dts: renesas: sparrow-hawk: Reserve first 128 MiB of DRAM
Marek Vasut [Tue, 24 Mar 2026 14:33:28 +0000 (15:33 +0100)] 
arm64: dts: renesas: sparrow-hawk: Reserve first 128 MiB of DRAM

Mark the first 128 MiB of DRAM as reserved. The first 128 MiB of DRAM
may optionally be used by TFA and other firmware for its own purposes,
and in such case, Linux must not use this memory.

On this platform, U-Boot runs in EL3 and starts TFA BL31 and Linux from
a single combined fitImage. U-Boot has full access to all memory in the
0x40000000..0xbfffffff range, as well memory in the memory banks in the
64-bit address ranges, and therefore U-Boot patches this full complete
view of platform memory layout into the DT that is passed to the next
stage.

The next stage is TFA BL31 and then the Linux kernel. The TFA BL31 does
not modify the DT passed from U-Boot to TFA BL31 and then to Linux with
any new reserved-memory {} node to reserve memory areas used by the TFA
BL31 to prevent the next stage from using those areas, which lets Linux
to use all of the available DRAM as described in the DT that was passed
in by U-Boot, including the areas that are newly utilized by TFA BL31.

In case of high DRAM utilization, for example in case of four instances
of "memtester 3900M" running in parallel, unless the memory used by TFA
BL31 is properly reserved, Linux may use and corrupt the memory used by
TFA BL31, which would often lead to system becoming unresponsive.

Until TFA BL31 can properly fill its own reserved-memory node into the
DT, and to assure older versions of TFA BL31 do not cause problems, add
explicitly reserved-memory {} node which prevents Linux from using the
first 128 MiB of DRAM.

Note that TFA BL31 can be adjusted to use different memory areas, this
newly added reserved-memory {} node follows longer-term practice on the
R-Car SoCs where the first 128 MiB of DRAM is reserved for firmware use.
In case user does modify TFA BL31 to use different memory ranges, they
must either use a future version of TFA BL31 which properly patches a
reserved-memory {} node into the DT, or they must adjust the address
ranges of this reserved-memory {} node accordingly.

Fixes: a719915e76f2 ("arm64: dts: renesas: r8a779g3: Add Retronix R-Car V4H Sparrow Hawk board support")
Cc: stable@vger.kernel.org
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260324143342.17872-1-marek.vasut+renesas@mailbox.org
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
4 weeks agoMerge tag 'dma-mapping-7.0-2026-03-25' into dma-mapping-for-next
Marek Szyprowski [Wed, 25 Mar 2026 17:24:26 +0000 (18:24 +0100)] 
Merge tag 'dma-mapping-7.0-2026-03-25' into dma-mapping-for-next

dma-mapping fixes for Linux 7.0

A set of fixes for DMA-mapping subsystem, which resolve false-positive
warnings from KMSAN and DMA-API debug (Shigeru Yoshida and Leon
Romanovsky) as well as a simple build fix (Miguel Ojeda).

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
4 weeks agoi2c: s3c24xx: check the size of the SMBUS message before using it
Greg Kroah-Hartman [Mon, 23 Feb 2026 17:05:15 +0000 (18:05 +0100)] 
i2c: s3c24xx: check the size of the SMBUS message before using it

The first byte of an i2c SMBUS message is the size, and it should be
verified to ensure that it is in the range of 0..I2C_SMBUS_BLOCK_MAX
before processing it.

This is the same logic that was added in commit a6e04f05ce0b ("i2c:
tegra: check msg length in SMBUS block read") to the i2c tegra driver.

Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Andi Shyti <andi.shyti@kernel.org>
Cc: stable <stable@kernel.org>
Assisted-by: gkh_clanker_2000
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Link: https://lore.kernel.org/r/2026022314-rely-scrubbed-4839@gregkh
4 weeks agodebugobjects: Drop likely() around !IS_ERR_OR_NULL()
Philipp Hahn [Tue, 10 Mar 2026 11:49:25 +0000 (12:49 +0100)] 
debugobjects: Drop likely() around !IS_ERR_OR_NULL()

IS_ERR_OR_NULL() already uses likely(!ptr) internally. checkpatch points
out the nesting: Remove the explicit use of likely().

Change generated with coccinelle.

Signed-off-by: Philipp Hahn <phahn-oss@avm.de>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Link: https://patch.msgid.link/20260310-b4-is_err_or_null-v1-59-bd63b656022d@avm.de
4 weeks agodt-bindings: i2c: dw: Remove unused bindings
Andy Shevchenko [Tue, 24 Feb 2026 11:52:10 +0000 (12:52 +0100)] 
dt-bindings: i2c: dw: Remove unused bindings

As stated in the d70f60ad964d ("i2c: designware: Remove
not-going-to-be-supported code for Baikal SoC") the Baikal
platforms are not supported and the respective driver code
was removed. Remove the currently unused bindings.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Link: https://lore.kernel.org/r/20260224115210.3499191-1-andriy.shevchenko@linux.intel.com
4 weeks agoASoC: rockchip: rockchip_sai: Set slot width for non-TDM mode
Alexey Charkov [Wed, 18 Mar 2026 14:50:25 +0000 (18:50 +0400)] 
ASoC: rockchip: rockchip_sai: Set slot width for non-TDM mode

Currently the slot width in non-TDM mode is always kept at the POR value
of 32 bits, regardless of the sample width, which doesn't work well for
some codecs such as NAU8822.

Set the slot width according to the sample width in non-TDM mode, which
is what other CPU DAI drivers do.

Tested on the following RK3576 configurations:
- SAI2 + NAU8822 (codec as the clock master), custom board
- SAI1 + ES8388 (codec as the clock master), RK3576 EVB1
- SAI2 + RT5616 (SAI as the clock master), FriendlyElec NanoPi M5

NAU8822 didn't work prior to this patch but works after the patch. Other
two configurations work both before and after the patch.

Fixes: cc78d1eaabad ("ASoC: rockchip: add Serial Audio Interface (SAI) driver")
Signed-off-by: Alexey Charkov <alchark@flipper.net>
Tested-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
Link: https://patch.msgid.link/20260318-sai-slot-width-v1-1-1f68186f71e3@flipper.net
Signed-off-by: Mark Brown <broonie@kernel.org>
4 weeks agoASoC: dt-bindings: rockchip: Convert rockchip-max98090.txt to yaml
Fabio Estevam [Tue, 24 Mar 2026 13:55:08 +0000 (10:55 -0300)] 
ASoC: dt-bindings: rockchip: Convert rockchip-max98090.txt to yaml

Convert rockchip-max98090.txt to yaml to allow dt-schema validation.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Link: https://patch.msgid.link/20260324135508.839142-1-festevam@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
4 weeks agopinctrl: stm32: add firewall checks before probing the HDP driver
Gatien Chevallier [Thu, 26 Feb 2026 10:30:27 +0000 (11:30 +0100)] 
pinctrl: stm32: add firewall checks before probing the HDP driver

Because the HDP peripheral both depends on debug and firewall
configuration, when CONFIG_STM32_FIREWALL is present, use the
stm32 firewall framework to be able to check these configuration against
the relevant controllers.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Reviewed-by: Clément Le Goffic <legoffic.clement@gmail.com>
Reviewed-by: Linus Walleij <linusw@kernel.org>
Link: https://lore.kernel.org/r/20260226-debug_bus-v6-12-5d794697798d@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agodrivers: bus: add the stm32 debug bus driver
Gatien Chevallier [Thu, 26 Feb 2026 10:30:21 +0000 (11:30 +0100)] 
drivers: bus: add the stm32 debug bus driver

Add the stm32 debug bus driver that is responsible of checking the
debug subsystem accessibility before probing the related peripheral
drivers.

This driver is OP-TEE dependent and relies on the STM32 debug access
PTA.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Link: https://lore.kernel.org/r/20260226-debug_bus-v6-6-5d794697798d@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agobus: stm32_firewall: add stm32_firewall_get_grant_all_access() API
Gatien Chevallier [Thu, 26 Feb 2026 10:30:20 +0000 (11:30 +0100)] 
bus: stm32_firewall: add stm32_firewall_get_grant_all_access() API

Add the stm32_firewall_get_grant_all_access() API to be able to fetch
all firewall references in an access-controllers property and try to grant
access to all of them.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Reviewed-by: Linus Walleij <linusw@kernel.org>
Link: https://lore.kernel.org/r/20260226-debug_bus-v6-5-5d794697798d@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agobus: stm32_firewall: allow check on different firewall controllers
Gatien Chevallier [Thu, 26 Feb 2026 10:30:19 +0000 (11:30 +0100)] 
bus: stm32_firewall: allow check on different firewall controllers

Current implementation restricts the check on the firewall controller
being the bus parent. Change this by using the controller referenced
in each firewall queries.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Link: https://lore.kernel.org/r/20260226-debug_bus-v6-4-5d794697798d@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agodt-bindings: bus: document the stm32 debug bus
Gatien Chevallier [Thu, 26 Feb 2026 10:30:18 +0000 (11:30 +0100)] 
dt-bindings: bus: document the stm32 debug bus

Document the stm32 debug bus. The debug bus is responsible for
checking the debug sub-system accessibility before probing any related
drivers.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://lore.kernel.org/r/20260226-debug_bus-v6-3-5d794697798d@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agodt-bindings: pinctrl: document access-controllers property for stm32 HDP
Gatien Chevallier [Thu, 26 Feb 2026 10:30:17 +0000 (11:30 +0100)] 
dt-bindings: pinctrl: document access-controllers property for stm32 HDP

HDP being functional depends on the debug configuration on the platform
that can be checked using the access-controllers property, document it.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Acked-by: Linus Walleij <linusw@kernel.org>
Link: https://lore.kernel.org/r/20260226-debug_bus-v6-2-5d794697798d@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agodt-bindings: document access-controllers property for coresight peripherals
Gatien Chevallier [Thu, 26 Feb 2026 10:30:16 +0000 (11:30 +0100)] 
dt-bindings: document access-controllers property for coresight peripherals

Document the access-controllers for coresight peripherals in case some
access checks need to be performed to use them.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Acked-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20260226-debug_bus-v6-1-5d794697798d@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agobus: rifsc: fix RIF configuration check for peripherals
Gatien Chevallier [Thu, 29 Jan 2026 12:56:17 +0000 (13:56 +0100)] 
bus: rifsc: fix RIF configuration check for peripherals

Peripheral holding CID0 cannot be accessed, remove this completely
incorrect check. While there, fix  and simplify the semaphore checking
that should be performed when the CID filtering is enabled.

Fixes: a18208457253 ("bus: rifsc: introduce RIFSC firewall controller driver")
Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Link: https://lore.kernel.org/r/20260129-fix_cid_check_rifsc-v1-1-ef280ccf764d@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agobus: rifsc: Replace snprintf("%s") with strscpy
Thorsten Blum [Mon, 23 Feb 2026 21:12:11 +0000 (22:12 +0100)] 
bus: rifsc: Replace snprintf("%s") with strscpy

Replace snprintf("%s", ...) with the faster and more direct strscpy().

Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
Acked-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Link: https://lore.kernel.org/r/20260223211212.344855-1-thorsten.blum@linux.dev
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agobus: stm32_firewall: Simplify with scoped for each OF child loop
Krzysztof Kozlowski [Mon, 5 Jan 2026 14:36:59 +0000 (15:36 +0100)] 
bus: stm32_firewall: Simplify with scoped for each OF child loop

Use scoped for-each loop when iterating over device nodes to make code a
bit simpler.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Tested-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260105143657.383621-5-krzysztof.kozlowski@oss.qualcomm.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agobus: firewall: move stm32_firewall header file in include folder
Clément Le Goffic [Tue, 10 Feb 2026 19:05:45 +0000 (20:05 +0100)] 
bus: firewall: move stm32_firewall header file in include folder

Other driver than RIFSC and ETZPC can implement firewall ops, such as
RCC.
In order for them to have access to the ops and type of this framework,
we need to get the `stm32_firewall.h` file in the include/ folder.

Signed-off-by: Clément Le Goffic <clement.legoffic@foss.st.com>
Signed-off-by: Clément Le Goffic <legoffic.clement@gmail.com>
Acked-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Link: https://lore.kernel.org/r/20260210-b4-firewall-upstream-v8-1-097c1e47af82@gmail.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoarm64: defconfig: Enable STMicroelectronics STM32 display support
Raphael Gallais-Pou [Thu, 5 Feb 2026 15:03:24 +0000 (16:03 +0100)] 
arm64: defconfig: Enable STMicroelectronics STM32 display support

Enable STMicroelectronics STM32 display support as module.
This includes:
  * DRM_STM
  * DRM_STM_LVDS
  * BACKLIGHT_GPIO
  * TOUCHSCREEN_ILI210X

This display is used on several SoCs and boards such as STM32MP257F-EV1
and STM32MP257F-DK.

Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
Tested-by: Yannick Fertre <yannick.fertre@foss.st.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260205-master-v1-1-dcefcabc2934@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoarm64: dts: st: enable display support on stm32mp257f-dk board
Raphael Gallais-Pou [Wed, 25 Mar 2026 14:41:49 +0000 (15:41 +0100)] 
arm64: dts: st: enable display support on stm32mp257f-dk board

Enable the following IPs on stm32mp257f-dk in order to get display:
   * LTDC
   * LVDS
   * WSVGA LVDS panel (1024x600)
   * Panel LVDS backlight as GPIO backlight
   * ILI2511 i2c touchscreen

Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
Link: https://lore.kernel.org/r/20260210-display-v2-9-0592bd514958@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoarm64: dts: st: describe power supplies for stm32mp257f-dk board
Raphael Gallais-Pou [Tue, 10 Feb 2026 10:04:01 +0000 (11:04 +0100)] 
arm64: dts: st: describe power supplies for stm32mp257f-dk board

Describe power supplies for stm32mp257f-dk board.

Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
Link: https://lore.kernel.org/r/20260210-display-v2-8-0592bd514958@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoarm64: dts: st: enable display support on stm32mp235f-dk board
Raphael Gallais-Pou [Wed, 25 Mar 2026 14:36:35 +0000 (15:36 +0100)] 
arm64: dts: st: enable display support on stm32mp235f-dk board

Enable the following IPs on stm32mp235f-dk in order to get display:
   * LTDC
   * LVDS
   * WSVGA LVDS panel (1024x600)
   * Panel LVDS backlight as GPIO backlight
   * ILI2511 i2c touchscreen

Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
Link: https://lore.kernel.org/r/20260210-display-v2-7-0592bd514958@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoarm64: dts: st: describe power supplies for stm32mp235f-dk board
Raphael Gallais-Pou [Tue, 10 Feb 2026 10:03:59 +0000 (11:03 +0100)] 
arm64: dts: st: describe power supplies for stm32mp235f-dk board

Describe power supplies for stm32mp235f-dk board.

Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
Link: https://lore.kernel.org/r/20260210-display-v2-6-0592bd514958@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoarm64: dts: st: add clock-cells to syscfg node on stm32mp231
Raphael Gallais-Pou [Tue, 10 Feb 2026 10:03:58 +0000 (11:03 +0100)] 
arm64: dts: st: add clock-cells to syscfg node on stm32mp231

Make the syscfg node a clock provider so clock consumers can reach child
clocks through device-tree.

Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
Link: https://lore.kernel.org/r/20260210-display-v2-5-0592bd514958@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoarm64: dts: st: add lvds support on stm32mp235
Raphael Gallais-Pou [Tue, 10 Feb 2026 10:03:57 +0000 (11:03 +0100)] 
arm64: dts: st: add lvds support on stm32mp235

The LVDS is used on STM32MP2 as a display interface.

Add the LVDS node.

Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
Link: https://lore.kernel.org/r/20260210-display-v2-4-0592bd514958@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoarm64: dts: st: add ltdc support on stm32mp235
Raphael Gallais-Pou [Tue, 10 Feb 2026 10:03:56 +0000 (11:03 +0100)] 
arm64: dts: st: add ltdc support on stm32mp235

Add the LTDC node for stm32mp235 SoC and handle its loopback clocks.

ck_ker_ltdc has the CLK_SET_RATE_PARENT flag.  While having this flag is
semantically correct, it for now leads to an improper setting of the
clock rate.  The ck_ker_ltdc parent clock is the flexgen 27, which does
not support changing rates yet.  To overcome this issue, a fixed clock
can be used for the kernel clock.

Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
Link: https://lore.kernel.org/r/20260210-display-v2-3-0592bd514958@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoarm64: dts: st: add ltdc support on stm32mp231
Raphael Gallais-Pou [Tue, 10 Feb 2026 10:03:55 +0000 (11:03 +0100)] 
arm64: dts: st: add ltdc support on stm32mp231

The LCD-TFT Display Controller (LTDC) handles display composition,
scaling and rotation.  It provides a parallel digital RGB flow to be
used by display interfaces.

Add the LTDC node.

Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
Link: https://lore.kernel.org/r/20260210-display-v2-2-0592bd514958@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoarm64: dts: st: omit unused pinctrl groups from stm32mp25 dtb files
Amelie Delaunay [Wed, 11 Mar 2026 11:30:00 +0000 (12:30 +0100)] 
arm64: dts: st: omit unused pinctrl groups from stm32mp25 dtb files

stm32mp25-pinctrl.dtsi gathers all pinctrl groups from current and future
STM32MP25-based boards. Some groups may remain unused by any board,
resulting in wasted binary space.
Adding /omit-if-no-ref/ to the groups will remove unused groups from the
device tree blobs.

Use the following regex to update the file:
's/^\t[^:]\+: [^ ]\+ {$/\t\/omit-if-no-ref\/\n&/'
Also, merge the duplicated pinctrl_z node.

Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
Link: https://lore.kernel.org/r/20260311-mp25_pinctrl_omit-v1-1-5a3d40046b10@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoarm64: dts: st: add bootph-all in bsec node to stm32mp215f-dk
Patrice Chotard [Wed, 11 Feb 2026 13:55:02 +0000 (14:55 +0100)] 
arm64: dts: st: add bootph-all in bsec node to stm32mp215f-dk

Add bootph-all property in bsec node to ensure that bsec node
is included in U-Boot device tree for all phases.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Link: https://lore.kernel.org/r/20260211-upstream_stm32mp21_bsec_nodes-v1-2-8379bf97b0bc@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoarm64: dts: st: add bsec support to stm32mp21
Patrice Chotard [Wed, 11 Feb 2026 13:55:01 +0000 (14:55 +0100)] 
arm64: dts: st: add bsec support to stm32mp21

Add BSEC support to STM32MP21 SoC family with SoC information:
- RPN = Device part number (BSEC_OTP_DATA9)
- PKG = package data register (Bits 2:0 of BSEC_OTP_DATA122)

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Link: https://lore.kernel.org/r/20260211-upstream_stm32mp21_bsec_nodes-v1-1-8379bf97b0bc@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoARM: dts: stm32: fix misalignments in nodes of stm32mp131
Amelie Delaunay [Wed, 4 Mar 2026 08:07:00 +0000 (09:07 +0100)] 
ARM: dts: stm32: fix misalignments in nodes of stm32mp131

Since the ETZPC system bus was introduced, misalignments have appeared
in some nodes moved under the etzpc parent node.

Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
Link: https://lore.kernel.org/r/20260304-mp1x_alignment_issues-v1-2-19a8013782a5@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoARM: dts: stm32: fix misalignments in nodes of stm32mp151
Amelie Delaunay [Wed, 4 Mar 2026 08:06:59 +0000 (09:06 +0100)] 
ARM: dts: stm32: fix misalignments in nodes of stm32mp151

Since the ETZPC system bus was introduced, misalignments have appeared
in some nodes moved under the etzpc parent node.

Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
Link: https://lore.kernel.org/r/20260304-mp1x_alignment_issues-v1-1-19a8013782a5@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoarm64: dts: st: describe i2c2 / i2c8 on stm32mp235f-dk
Alain Volmat [Tue, 24 Feb 2026 15:48:12 +0000 (16:48 +0100)] 
arm64: dts: st: describe i2c2 / i2c8 on stm32mp235f-dk

Add nodes for i2c2 and i2c8 available on stm32mp235f-dk board.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Link: https://lore.kernel.org/r/20260224-stm32-i2c-dt-updates-v1-9-347cf6fca7d1@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoarm64: dts: st: describe i2c2 / i2c8 on stm32mp257f-dk
Alain Volmat [Tue, 24 Feb 2026 15:48:11 +0000 (16:48 +0100)] 
arm64: dts: st: describe i2c2 / i2c8 on stm32mp257f-dk

Add nodes for i2c2 and i2c8 available on stm32mp257f-dk board.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Link: https://lore.kernel.org/r/20260224-stm32-i2c-dt-updates-v1-8-347cf6fca7d1@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoarm64: dts: st: disable DMA usage for i2c on stm32mp257f-ev1
Alain Volmat [Tue, 24 Feb 2026 15:48:10 +0000 (16:48 +0100)] 
arm64: dts: st: disable DMA usage for i2c on stm32mp257f-ev1

Keep DMA resources available by avoiding usage of DMA for i2c transfers
on stm32mp257f-ev1 board.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Link: https://lore.kernel.org/r/20260224-stm32-i2c-dt-updates-v1-7-347cf6fca7d1@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoarm64: dts: st: add i2c2 pinmux nodes in stm32mp25-pinctrl.dtsi
Alain Volmat [Tue, 24 Feb 2026 15:48:09 +0000 (16:48 +0100)] 
arm64: dts: st: add i2c2 pinmux nodes in stm32mp25-pinctrl.dtsi

Add a 2nd set of i2c2 pinmux nodes (i2c2_pins_b/i2c2_sleep_pins_b)
in stm32mp25-pinctrl.dtsi in order to be used on the stm32mp257f-dk

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Link: https://lore.kernel.org/r/20260224-stm32-i2c-dt-updates-v1-6-347cf6fca7d1@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoarm64: dts: st: update i2c nodes interrupt/wakeup-source in stm32mp231
Alain Volmat [Tue, 24 Feb 2026 15:48:08 +0000 (16:48 +0100)] 
arm64: dts: st: update i2c nodes interrupt/wakeup-source in stm32mp231

Update all i2c nodes with the following properties:
  - replace interrupts with interrupts-extended and rely on exti
  - add the wakeup-source property

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Link: https://lore.kernel.org/r/20260224-stm32-i2c-dt-updates-v1-5-347cf6fca7d1@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoarm64: dts: st: update i2c nodes interrupt/wakeup-source in stm32mp251
Alain Volmat [Tue, 24 Feb 2026 15:48:07 +0000 (16:48 +0100)] 
arm64: dts: st: update i2c nodes interrupt/wakeup-source in stm32mp251

Update all i2c nodes with the following properties:
  - replace interrupts with interrupts-extended and rely on exti
  - add the wakeup-source property

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Link: https://lore.kernel.org/r/20260224-stm32-i2c-dt-updates-v1-4-347cf6fca7d1@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoARM: dts: stm32: remove i2c dma properties in stm32mp157c-ev1
Olivier Moysan [Tue, 24 Feb 2026 15:48:06 +0000 (16:48 +0100)] 
ARM: dts: stm32: remove i2c dma properties in stm32mp157c-ev1

Since DMA resources are limited, remove the DMA related properties
of i2c2 and i2c5 in stm32mp157c-ev1.dts.

Signed-off-by: Olivier Moysan <olivier.moysan@foss.st.com>
Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Link: https://lore.kernel.org/r/20260224-stm32-i2c-dt-updates-v1-3-347cf6fca7d1@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoARM: dts: stm32: update i2c nodes interrupt/wakeup-source in stm32mp131
Alain Volmat [Tue, 24 Feb 2026 15:48:05 +0000 (16:48 +0100)] 
ARM: dts: stm32: update i2c nodes interrupt/wakeup-source in stm32mp131

Update all i2c nodes with the following properties:
  - replace interrupts with interrupts-extended and rely on exti
  - add the wakeup-source property

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Link: https://lore.kernel.org/r/20260224-stm32-i2c-dt-updates-v1-2-347cf6fca7d1@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoARM: dts: stm32: update i2c nodes interrupt/dma in stm32mp151
Alain Volmat [Tue, 24 Feb 2026 15:48:04 +0000 (16:48 +0100)] 
ARM: dts: stm32: update i2c nodes interrupt/dma in stm32mp151

Update all i2c nodes with the following properties:
  - replace interrupts with interrupts-extended and rely on exti
  - add dma properties

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Link: https://lore.kernel.org/r/20260224-stm32-i2c-dt-updates-v1-1-347cf6fca7d1@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoARM: dts: stm32: Add DT overlays for DH STM32MP13xx/STM32MP15xx DHSOM
Marek Vasut [Wed, 21 Jan 2026 08:53:21 +0000 (09:53 +0100)] 
ARM: dts: stm32: Add DT overlays for DH STM32MP13xx/STM32MP15xx DHSOM

The following DTOs are supported on STM32MP15xx DHCOM PDK2:
 - DH 460-200 SRAM board in header X11
 - DH 497-200 adapter card with EDT ETM0700G0EDH6 Parallel RGB panel
 - DH 505-200 adapter card with Chefree CH101OLHLWH-002 LVDS panel
 - DH 531-100 SPI/I2C board in header X21
 - DH 531-200 SPI/I2C board in header X22
 - DH 560-200 7" LCD board in header X12
 - DH 638-100 mezzanine card with RPi 7" DSI panel attached on top
 - DH 672-100 expansion card, which contains CAN/FD transceiver and
              enables PDK2 to use one more CAN/FD interface

The following DTOs are supported on STM32MP15xx DHCOM DRC02:
 - Enable configuration where the DHSOM inserted into the DRC02 has
   RSI 9116 WiFi populated on the SoM and where the microSD slot on
   the bottom of DRC02 must not be used.
   This permits a non-default configuration of the SoM and DRC02 board
   used for custom device setup with on-SoM WiFi.

The following DTOs are supported on STM32MP15xx DHCOM PicoITX:
 - DH 548-200 adapter card with Multi-Inno MI0700D4T-6 7" DPI panel
 - DH 553-100 adapter card with Team Source Display TST043015CMHX 4.3" DPI panel
 - DH 626-100 adapter card with Chefree CH101OLHLWH-002 LVDS panel

The following DTOs are supported on STM32MP15xx DHCOR Avenger96:
 - FDCAN1 on low-speed expansion X6
 - FDCAN2 on low-speed expansion X6
 - AT24C04 I2C EEPROM on low-speed expansion X6 I2C1
 - AT24C04 I2C EEPROM on low-speed expansion X6 I2C2
 - AT25AA010A SPI EEPROM on low-speed expansion X6 SPI2
 - 96boards OV5640 mezzanine card with sensor connected to port J3.
 - DH 644-100 mezzanine card with Orisetech OTM8009A DSI panel
 - DH 644-100 mezzanine card with RPi 7" DSI panel

The following DTOs are supported on STM32MP13xx DHCOR DHSBC:
 - joy-IT RB-TFT3.2-V2 240x320 SPI LCD and XPT2046 resistive touch controller

Signed-off-by: Marek Vasut <marex@nabladev.com>
Link: https://lore.kernel.org/r/20260121085347.10368-3-marex@nabladev.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoarm: dts: stm32: enable CoreSight on the stm32mp135f-dk board
Gatien Chevallier [Thu, 26 Feb 2026 10:30:26 +0000 (11:30 +0100)] 
arm: dts: stm32: enable CoreSight on the stm32mp135f-dk board

Enable CoreSight peripherals on the stm32mp135f-dk board.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Link: https://lore.kernel.org/r/20260226-debug_bus-v6-11-5d794697798d@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoarm: dts: stm32: enable CoreSight on the stm32mp157c-ev1 board
Gatien Chevallier [Thu, 26 Feb 2026 10:30:25 +0000 (11:30 +0100)] 
arm: dts: stm32: enable CoreSight on the stm32mp157c-ev1 board

Enable CoreSight peripherals on the stm32mp157c-ev1 board.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Link: https://lore.kernel.org/r/20260226-debug_bus-v6-10-5d794697798d@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoarm: dts: stm32: enable CoreSight on stm32mp15xx-dkx boards
Gatien Chevallier [Thu, 26 Feb 2026 10:30:24 +0000 (11:30 +0100)] 
arm: dts: stm32: enable CoreSight on stm32mp15xx-dkx boards

Enable CoreSight peripherals on the stm32mp15xx-dkx boards. All boards
including this file are embedding a dual core SoC so this change is
applicable.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Link: https://lore.kernel.org/r/20260226-debug_bus-v6-9-5d794697798d@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoarm: dts: stm32: enable the debug bus on stm32mp1x boards
Gatien Chevallier [Thu, 26 Feb 2026 10:30:23 +0000 (11:30 +0100)] 
arm: dts: stm32: enable the debug bus on stm32mp1x boards

On stm32mp1x boards, enable the debug bus so we always try to probe
the debug peripherals, if their status and the debug configuration
allow it.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Link: https://lore.kernel.org/r/20260226-debug_bus-v6-8-5d794697798d@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoarm: dts: stm32: introduce the debug bus for stm32mp1x platforms
Gatien Chevallier [Thu, 26 Feb 2026 10:30:22 +0000 (11:30 +0100)] 
arm: dts: stm32: introduce the debug bus for stm32mp1x platforms

Some peripherals cannot be probed if a debug configuration is not set
in the BSEC.
Introduce a debug bus that will check the debug subsystem accessibility
before probing these peripheral drivers.

Add Coresight peripheral nodes under this bus and add the appropriate
access-controllers property to the HDP node.

Signed-off-by: Antonio Borneo <antonio.borneo@foss.st.com>
Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Link: https://lore.kernel.org/r/20260226-debug_bus-v6-7-5d794697798d@foss.st.com
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
4 weeks agoiio: accel: adxl380: fix typo in PART_ID register macro
Nikhil Gautam [Wed, 25 Mar 2026 11:42:51 +0000 (17:12 +0530)] 
iio: accel: adxl380: fix typo in PART_ID register macro

Fix a typo in the ADXL380_PART_ID_REG macro name where it was
incorrectly defined as ADLX380_PART_ID_REG.

Also update its usage in adxl380_setup().

Signed-off-by: Nikhil Gautam <nikhilgtr@gmail.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
4 weeks agoriscv: dts: thead: beaglev-ahead: enable HDMI output
Robert Mazur [Wed, 25 Mar 2026 08:18:59 +0000 (09:18 +0100)] 
riscv: dts: thead: beaglev-ahead: enable HDMI output

The BeagleV Ahead board includes a micro HDMI connector (Type-D)
wired to the TH1520 SoC's HDMI transmitter.

Enable the display pipeline by adding the HDMI connector node,
connecting it to the HDMI controller, and activating the DPU
and HDMI nodes.

Signed-off-by: Robert Mazur <robert.mazur@imgtec.com>
Signed-off-by: Drew Fustini <fustini@kernel.org>
4 weeks agoInput: pegasus_notetaker - use HID defines
Oliver Neukum [Wed, 25 Mar 2026 14:32:47 +0000 (15:32 +0100)] 
Input: pegasus_notetaker - use HID defines

The driver uses its own definitions for HID requests.
This leads to duplication and obfuscation. Use HID's
definitions.

Signed-off-by: Oliver Neukum <oneukum@suse.com>
Link: https://patch.msgid.link/20260325143256.371854-2-oneukum@suse.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
4 weeks agoInput: aiptek - use HID headers
Oliver Neukum [Wed, 25 Mar 2026 14:32:46 +0000 (15:32 +0100)] 
Input: aiptek - use HID headers

The driver uses its own definitions for HID requests.
This leads to duplication and obfuscation. Use HID's
definitions.

Signed-off-by: Oliver Neukum <oneukum@suse.com>
Link: https://patch.msgid.link/20260325143256.371854-1-oneukum@suse.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
4 weeks agoInput: goodix-berlin - report a resolution of 10 units/mm
Val Packett [Sat, 21 Mar 2026 07:30:07 +0000 (04:30 -0300)] 
Input: goodix-berlin - report a resolution of 10 units/mm

Without a reported resolution, userspace was assuming 1 unit/mm which
is wildly wrong: a regular smartphone is clearly not 2.4 meters tall.
Most applications do not care much for this kind of raw mm value,
but Phosh's on-screen keyboard would accidentally trigger swipe-to-close
gestures due to misinterpreting small movements as huge ones.

Do what the older goodix.c driver does and set the resolution to 10
units/mm to make sure the numbers calculated by userspace are reasonable.

Signed-off-by: Val Packett <val@packett.cool>
Link: https://patch.msgid.link/20260321073242.556253-1-val@packett.cool
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
4 weeks agosrcu: Use irq_work to start GP in tiny SRCU
Joel Fernandes [Tue, 24 Mar 2026 00:14:18 +0000 (20:14 -0400)] 
srcu: Use irq_work to start GP in tiny SRCU

Tiny SRCU's srcu_gp_start_if_needed() directly calls schedule_work(),
which acquires the workqueue pool->lock.

This causes a lockdep splat when call_srcu() is called with a scheduler
lock held, due to:

  call_srcu() [holding pi_lock]
    srcu_gp_start_if_needed()
      schedule_work() -> pool->lock

  workqueue_init() / create_worker() [holding pool->lock]
    wake_up_process() -> try_to_wake_up() -> pi_lock

Also add irq_work_sync() to cleanup_srcu_struct() to prevent a
use-after-free if a queued irq_work fires after cleanup begins.

Tested with rcutorture SRCU-T and no lockdep warnings.

[ Thanks to Boqun for similar fix in patch "rcu: Use an intermediate irq_work
to start process_srcu()" ]

Signed-off-by: Joel Fernandes <joelagnelf@nvidia.com>
Reviewed-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Boqun Feng <boqun@kernel.org>
4 weeks agorcu: Use an intermediate irq_work to start process_srcu()
Boqun Feng [Thu, 19 Mar 2026 00:56:21 +0000 (17:56 -0700)] 
rcu: Use an intermediate irq_work to start process_srcu()

Since commit c27cea4416a3 ("rcu: Re-implement RCU Tasks Trace in terms
of SRCU-fast") we switched to SRCU in BPF. However as BPF instrument can
happen basically everywhere (including where a scheduler lock is held),
call_srcu() now needs to avoid acquiring scheduler lock because
otherwise it could cause deadlock [1]. Fix this by following what the
previous RCU Tasks Trace did: using an irq_work to delay the queuing of
the work to start process_srcu().

[boqun: Apply Joel's feedback]
[boqun: Apply Andrea's test feedback]

Reported-by: Andrea Righi <arighi@nvidia.com>
Closes: https://lore.kernel.org/all/abjzvz_tL_siV17s@gpd4/
Fixes: commit c27cea4416a3 ("rcu: Re-implement RCU Tasks Trace in terms of SRCU-fast")
Link: https://lore.kernel.org/rcu/3c4c5a29-24ea-492d-aeee-e0d9605b4183@nvidia.com/
Suggested-by: Zqiang <qiang.zhang@linux.dev>
Tested-by: Andrea Righi <arighi@nvidia.com>
Tested-by: Paul E. McKenney <paulmck@kernel.org>
Tested-by: Joel Fernandes <joelagnelf@nvidia.com>
Signed-off-by: Boqun Feng <boqun@kernel.org>
4 weeks agosrcu: Push srcu_node allocation to GP when non-preemptible
Paul E. McKenney [Sat, 21 Mar 2026 03:29:20 +0000 (20:29 -0700)] 
srcu: Push srcu_node allocation to GP when non-preemptible

When the srcutree.convert_to_big and srcutree.big_cpu_lim kernel boot
parameters specify initialization-time allocation of the srcu_node
tree for statically allocated srcu_struct structures (for example, in
DEFINE_SRCU() at build time instead of init_srcu_struct() at runtime),
init_srcu_struct_nodes() will attempt to dynamically allocate this tree
at the first run-time update-side use of this srcu_struct structure,
but while holding a raw spinlock.  Because the memory allocator can
acquire non-raw spinlocks, this can result in lockdep splats.

This commit therefore uses the same SRCU_SIZE_ALLOC trick that is used
when the first run-time update-side use of this srcu_struct structure
happens before srcu_init() is called.  The actual allocation then takes
place from workqueue context at the ends of upcoming SRCU grace periods.

[boqun: Adjust the sha1 of the Fixes tag]

Fixes: 175b45ed343a ("srcu: Use raw spinlocks so call_srcu() can be used under preempt_disable()")
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Boqun Feng <boqun@kernel.org>
4 weeks agotools/sched_ext: Regenerate autogen enum headers
Cheng-Yang Chou [Wed, 25 Mar 2026 04:51:48 +0000 (12:51 +0800)] 
tools/sched_ext: Regenerate autogen enum headers

Regenerate enum_defs.autogen.h, enums.autogen.h and enums.autogen.bpf.h
using the upstream scripts [1][2] to sync with recent kernel enum
additions.

[1] https://github.com/sched-ext/scx/blob/main/scripts/gen_enum_defs.py
[2] https://github.com/sched-ext/scx/blob/main/scripts/gen_enums.py

Signed-off-by: Cheng-Yang Chou <yphbchou0911@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
4 weeks agosrcu: Use raw spinlocks so call_srcu() can be used under preempt_disable()
Paul E. McKenney [Sat, 14 Mar 2026 11:12:58 +0000 (04:12 -0700)] 
srcu: Use raw spinlocks so call_srcu() can be used under preempt_disable()

Tree SRCU has used non-raw spinlocks for many years, motivated by a desire
to avoid unnecessary real-time latency and the absence of any reason to
use raw spinlocks.  However, the recent use of SRCU in tracing as the
underlying implementation of RCU Tasks Trace means that call_srcu()
is invoked from preemption-disabled regions of code, which in turn
requires that any locks acquired by call_srcu() or its callees must be
raw spinlocks.

This commit therefore converts SRCU's spinlocks to raw spinlocks.

[boqun: Add Fixes tag]

Reported-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
Fixes: c27cea4416a3 ("rcu: Re-implement RCU Tasks Trace in terms of SRCU-fast")
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Boqun Feng <boqun@kernel.org>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
4 weeks agoworkqueue: unlink pwqs from wq->pwqs list in alloc_and_link_pwqs() error path
Breno Leitao [Mon, 23 Mar 2026 10:18:36 +0000 (03:18 -0700)] 
workqueue: unlink pwqs from wq->pwqs list in alloc_and_link_pwqs() error path

When alloc_and_link_pwqs() fails partway through the per-cpu allocation
loop, some pool_workqueues may have already been linked into wq->pwqs
via link_pwq(). The error path frees these pwqs with kmem_cache_free()
but never removes them from the wq->pwqs list, leaving dangling pointers
in the list.

Currently this is not exploitable because the workqueue was never added
to the global workqueues list and the caller frees the wq immediately
after. However, this makes sure that alloc_and_link_pwqs() doesn't leave
any half-baked structure, which may have side effects if not properly
cleaned up.

Fix this by unlinking each pwq from wq->pwqs before freeing it. No
locking is needed as the workqueue has not been published yet, thus
no concurrency is possible.

Signed-off-by: Breno Leitao <leitao@debian.org>
Signed-off-by: Tejun Heo <tj@kernel.org>
4 weeks agoworkqueue: Better describe stall check
Petr Mladek [Wed, 25 Mar 2026 12:34:18 +0000 (13:34 +0100)] 
workqueue: Better describe stall check

Try to be more explicit why the workqueue watchdog does not take
pool->lock by default. Spin locks are full memory barriers which
delay anything. Obviously, they would primary delay operations
on the related worker pools.

Explain why it is enough to prevent the false positive by re-checking
the timestamp under the pool->lock.

Finally, make it clear what would be the alternative solution in
__queue_work() which is a hotter path.

Signed-off-by: Petr Mladek <pmladek@suse.com>
Acked-by: Song Liu <song@kernel.org>
Signed-off-by: Tejun Heo <tj@kernel.org>
4 weeks agoselftests/bpf: Make reg_bounds test more robust
Alexei Starovoitov [Wed, 25 Mar 2026 01:22:42 +0000 (18:22 -0700)] 
selftests/bpf: Make reg_bounds test more robust

The verifier log output may contain multiple lines that start with
18: (bf) r0 = r6
teach reg_bounds to look for lines that have ';' in them,
since reg_bounds test is looking for:
18: (bf) r0 = r6       ; R0=... R6=...

Reviewed-by: Emil Tsalapatis <emil@etsalapatis.com>
Link: https://lore.kernel.org/r/20260325012242.45606-1-alexei.starovoitov@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
4 weeks agoASoC: SDCA: fix finding wrong entity
Shuming Fan [Wed, 25 Mar 2026 11:04:06 +0000 (19:04 +0800)] 
ASoC: SDCA: fix finding wrong entity

This patch fixes an issue like:
where searching for the entity 'FU 11' could incorrectly match 'FU 113' first.
The driver should first perform an exact match on the full string name.
If no exact match is found, it can then fall back to a partial match.

Fixes: 48fa77af2f4a ("ASoC: SDCA: Add terminal type into input/output widget name")
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Shuming Fan <shumingf@realtek.com>
Link: https://patch.msgid.link/20260325110406.3232420-1-shumingf@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
4 weeks agoInput: zinitix - use guard notation when acquiring mutex
Dmitry Torokhov [Sun, 18 Aug 2024 02:08:21 +0000 (19:08 -0700)] 
Input: zinitix - use guard notation when acquiring mutex

Guard notation simplifies code.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
4 weeks agoInput: wm97xx - use guard notation when acquiring mutex
Dmitry Torokhov [Fri, 16 Aug 2024 22:18:44 +0000 (15:18 -0700)] 
Input: wm97xx - use guard notation when acquiring mutex

Guard notation simplifies code.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
4 weeks agoInput: wdt87xx_i2c - switch to using cleanup functions
Dmitry Torokhov [Wed, 29 May 2024 18:08:15 +0000 (11:08 -0700)] 
Input: wdt87xx_i2c - switch to using cleanup functions

Start using __free() and guard() primitives to simplify the code
and error handling.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
4 weeks agoInput: tsc2007 - use guard notation when acquiring mutexes
Dmitry Torokhov [Tue, 6 Aug 2024 23:48:00 +0000 (16:48 -0700)] 
Input: tsc2007 - use guard notation when acquiring mutexes

This makes the code more compact and error handling more robust.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
4 weeks agoInput: sx8654 - use IRQF_NOAUTOEN when requesting interrupt
Dmitry Torokhov [Wed, 14 Aug 2024 21:22:13 +0000 (14:22 -0700)] 
Input: sx8654 - use IRQF_NOAUTOEN when requesting interrupt

Instead of requesting interrupt normally and immediately disabling it
with call to disable_irq() use IRQF_NOAUTOEN to keep it disabled until
it is needed. This avoids a tiny window when interrupt is enabled but
not needed.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
4 weeks agoInput: sx8654 - use guard notation when acquiring spinlock
Dmitry Torokhov [Wed, 14 Aug 2024 21:13:33 +0000 (14:13 -0700)] 
Input: sx8654 - use guard notation when acquiring spinlock

Guard notation simplifies code.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
4 weeks agoInput: sur40 - use guard notation when acquiring spinlock
Dmitry Torokhov [Wed, 14 Aug 2024 21:38:11 +0000 (14:38 -0700)] 
Input: sur40 - use guard notation when acquiring spinlock

Guard notation simplifies code.

Also use list_first_entry() instead of list_entry() to emphasize intent.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>