]> git.ipfire.org Git - thirdparty/kernel/stable.git/log
thirdparty/kernel/stable.git
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>
4 weeks agoInput: stmfts - use guard notation when acquiring mutex
Dmitry Torokhov [Fri, 16 Aug 2024 21:09:22 +0000 (14:09 -0700)] 
Input: stmfts - use guard notation when acquiring mutex

Guard notation simplifies code.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
4 weeks agoInput: raydium_i2c_ts - switch to using cleanup functions
Dmitry Torokhov [Wed, 29 May 2024 18:22:15 +0000 (11:22 -0700)] 
Input: raydium_i2c_ts - 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: pixcir_i2c_ts - use guard notation when acquiring mutex
Dmitry Torokhov [Sun, 18 Aug 2024 02:07:03 +0000 (19:07 -0700)] 
Input: pixcir_i2c_ts - use guard notation when acquiring mutex

Guard notation simplifies code.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
4 weeks agoInput: novatek-nvt-ts - use guard notation when acquiring mutex
Dmitry Torokhov [Sun, 18 Aug 2024 02:04:21 +0000 (19:04 -0700)] 
Input: novatek-nvt-ts - use guard notation when acquiring mutex

Guard notation simplifies code.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
4 weeks agoInput: mxs-lradc-ts - use guard notation when acquiring spinlock
Dmitry Torokhov [Fri, 23 Aug 2024 00:12:08 +0000 (17:12 -0700)] 
Input: mxs-lradc-ts - use guard notation when acquiring spinlock

Guard notation simplifies code and shows critical section more clearly.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
4 weeks agodt-bindings: mtd: mxc-nand: add missing compatible string and ref to nand-controller...
Frank Li [Tue, 24 Mar 2026 22:16:20 +0000 (18:16 -0400)] 
dt-bindings: mtd: mxc-nand: add missing compatible string and ref to nand-controller-legacy.yaml

Add compatible string fsl,imx51-nand, fsl,imx53-nand and fsl,imx35-nand.

Add missinge properties dmas and dma-names.

Change reg's maxItems to 2 because i.MX53 have addition NAND flash internal
buffer space.

Change ref to nand-controller-legacy.yaml allow legacy DT layout.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
4 weeks agodt-bindings: mtd: gpmi-nand: ref to nand-controller-legacy.yaml
Frank Li [Tue, 24 Mar 2026 22:16:19 +0000 (18:16 -0400)] 
dt-bindings: mtd: gpmi-nand: ref to nand-controller-legacy.yaml

Ref to nand-controller-legacy.yaml instead nand-controller.yaml to allow
legacy DT layout.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
4 weeks agodt-bindings: mtd: refactor NAND bindings and add nand-controller-legacy.yaml
Frank Li [Tue, 24 Mar 2026 22:16:18 +0000 (18:16 -0400)] 
dt-bindings: mtd: refactor NAND bindings and add nand-controller-legacy.yaml

The modern NAND controller binding requires NAND chips to be described as
child nodes of the controller, for example:

  nand-controller {
          ...
          nand@0 {
                  /* raw NAND chip properties */
          };
  };

However, many existing device trees place NAND chip properties directly
within the controller node because those controllers support only a single
chip. This layout is still widely used by older platforms and by other DT
consumers such as U-Boot. Migrating all existing users to the new layout
will take time.

Several kernel drivers, such as ams-delta.c, davinci_nand.c and
fsmc_nand.c, still expect the legacy layout where raw NAND properties are
defined in the controller node.

To support both layouts during the transition:

- Extract NAND chip-related properties into separate schemas
  (nand-property.yaml and raw-nand-property.yaml) from
  nand-chip.yaml and raw-nand-chip.yaml.
- Introduce nand-controller-legacy.yaml to allow both the
  legacy and modern layouts.
- Add a select condition in nand-controller.yaml to prevent
  node name pattern matching for fsl,* NAND controllers.

Keep compatibility with existing device trees while allowing gradual
migration to the modern binding structure.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
4 weeks agomtd: spinand: winbond: Clarify when to enable the HS bit
Miquel Raynal [Wed, 18 Mar 2026 10:47:50 +0000 (11:47 +0100)] 
mtd: spinand: winbond: Clarify when to enable the HS bit

Above 104MHz when in fast dual or quad I/O reads, the delay between
address and data cycles is too short. It is possible to reach higher
frequencies, up to 166MHz, by adding a few more dummy cycles through the
setting of the HS bit. Improve the condition for enabling this bit, and
also make sure we set it at soon as we go over 104MHz.

Fixes: f1a91175faaa ("mtd: spinand: winbond: Enable high-speed modes on w25n0xjw")
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
4 weeks agomtd: rawnand: sunxi: introduce maximize variable user data length
Richard Genoud [Tue, 17 Mar 2026 14:24:37 +0000 (15:24 +0100)] 
mtd: rawnand: sunxi: introduce maximize variable user data length

In Allwinner SoCs, user data can be added in OOB before each ECC data.
For older SoCs like A10, the user data size was the size of a register
(4 bytes) and was mandatory before each ECC step.
So, the A10 OOB Layout is:
[4Bytes USER_DATA_STEP0] [ECC_STEP0 bytes]
[4bytes USER_DATA_STEP1] [ECC_STEP1 bytes]
...
NB: the BBM is stored at the beginning of the USER_DATA_STEP0.

Now, for H6/H616 NAND flash controller, this user data can have a
different size for each step.
So, we are maximizing the user data length to use as many OOB bytes as
possible.

Fixes: 88fd4e4deae8 ("mtd: rawnand: sunxi: Add support for H616 nand controller")
Signed-off-by: Richard Genoud <richard.genoud@bootlin.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
4 weeks agomtd: rawnand: sunxi: fix typos in comments
Richard Genoud [Tue, 17 Mar 2026 14:24:36 +0000 (15:24 +0100)] 
mtd: rawnand: sunxi: fix typos in comments

Fix lenghts -> lengths and chuncks -> chunks

Signed-off-by: Richard Genoud <richard.genoud@bootlin.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
4 weeks agomtd: rawnand: sunxi: change error prone variable name
Richard Genoud [Tue, 17 Mar 2026 14:24:35 +0000 (15:24 +0100)] 
mtd: rawnand: sunxi: change error prone variable name

In sunxi_nand_hw_ecc_ctrl_init(), i is used as a loop index variable and
at the same time as the value used to set ECC mode in ECC control
register.
To prevent it from being re-used as a loop variable, let's change the
naming to ecc_mode.

No functional change.

Signed-off-by: Richard Genoud <richard.genoud@bootlin.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
4 weeks agomtd: rawnand: sunxi: remove dead code
Richard Genoud [Tue, 17 Mar 2026 14:24:34 +0000 (15:24 +0100)] 
mtd: rawnand: sunxi: remove dead code

sunxi_nand_ooblayout_free() is only used in a code path where
engine_type == NAND_ECC_ENGINE_TYPE_ON_HOST

So the other cases can be removed.

Signed-off-by: Richard Genoud <richard.genoud@bootlin.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
4 weeks agomtd: rawnand: sunxi: make the code more self-explanatory
Richard Genoud [Tue, 17 Mar 2026 14:24:33 +0000 (15:24 +0100)] 
mtd: rawnand: sunxi: make the code more self-explanatory

In sunxi_nfc_hw_ecc_{read,write}_chunk(), the ECC step was forced to 0,
the reason is not trivial to get when reading the code.

The explanation is that, from the NAND flash controller perspective, we
are indeed at step 0 for user data length and ECC errors.

Just add a const value with an explanation to clarify things.

Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: Richard Genoud <richard.genoud@bootlin.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
4 weeks agomtd: rawnand: sunxi: replace hard coded value by a define - take2
Richard Genoud [Tue, 17 Mar 2026 14:24:32 +0000 (15:24 +0100)] 
mtd: rawnand: sunxi: replace hard coded value by a define - take2

The user data length (4) has been replaced almost all over the file, but
2 places were forgotten.

The user data is placed before the ECC, for each step.
So, in sunxi_nfc_hw_ecc_read_extra_oob(), the offset of the user data in
OOB is indeed ((ecc->bytes + USER_DATA_SZ) * ecc->steps);

And in sunxi_nand_ooblayout_ecc(), the offset of the ECC chunk in OOB is
the same offset plus the current user data size:
section * (ecc->bytes + USER_DATA_SZ) + USER_DATA_SZ;

Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: Richard Genoud <richard.genoud@bootlin.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
4 weeks agomtd: rawnand: sunxi: do not count BBM bytes twice
Richard Genoud [Tue, 17 Mar 2026 14:24:31 +0000 (15:24 +0100)] 
mtd: rawnand: sunxi: do not count BBM bytes twice

BBM is already part of USER_DATA section, so we should not remove it twice

This was working ok because we are on the safe size, advertising that
there was 2 bytes less available than in reality.

But we can't change old platforms, since it may lead to a different ECC
strength, so, introduce a legacy flag for old platforms, and switch the
new platforms to the correct count.

Signed-off-by: Richard Genoud <richard.genoud@bootlin.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
4 weeks agomtd: rawnand: sunxi: fix sunxi_nfc_hw_ecc_read_extra_oob
Richard Genoud [Tue, 17 Mar 2026 14:24:30 +0000 (15:24 +0100)] 
mtd: rawnand: sunxi: fix sunxi_nfc_hw_ecc_read_extra_oob

When dumping the OOB, the bytes at the end where actually copied from
the beginning of the OOB instead of current_offset.

That leads to something like:
OOB: ff ff ff ff ff ff ff ff ea 19 00 3a 83 db aa 8d
OOB: 99 09 c8 9a 90 36 35 7d aa 15 13 07 3d 97 b2 a4
OOB: a8 bb 19 b3 07 e9 f6 25 52 d7 1a 23 e2 7e 0a e4
OOB: 52 8a 09 d2 1a 86 3d cf b4 99 43 13 d3 90 33 0b
OOB: ff ff ff ff ff ff ff ff ea 19 00 3a 83 db aa 8d
OOB: 99 09 c8 9a 90 36 35 7d aa 15 13 07 3d 97 b2 a4
OOB: a8 bb 19 b3 07 e9 f6 25 52 d7 1a 23 e2 7e 0a e4
OOB: 52 8a 09 d2 1a 86 3d cf b4 99 43 13 d3 90 33 0b
instead of:
OOB: ff ff ff ff ff ff ff ff ea 19 00 3a 83 db aa 8d
OOB: 99 09 c8 9a 90 36 35 7d aa 15 13 07 3d 97 b2 a4
OOB: a8 bb 19 b3 07 e9 f6 25 52 d7 1a 23 e2 7e 0a e4
OOB: 52 8a 09 d2 1a 86 3d cf b4 99 43 13 d3 90 33 0b
OOB: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
OOB: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
OOB: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
OOB: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
(example with BCH16, user data [8,0], no scrambling)

*cur_off (offset from the beginning of the page) was compared to offset
(offset from the beginning of the OOB), and then, the
nand_change_read_column_op() sets the current position to the beginning
of the OOB instead of OOB+offset

Fixes: 15d6f118285f ("mtd: rawnand: sunxi: Stop supporting ECC_HW_SYNDROME mode")
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: Richard Genoud <richard.genoud@bootlin.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
4 weeks agomtd: rawnand: sunxi: sunxi_nand_ooblayout_free code clarification
Richard Genoud [Tue, 17 Mar 2026 14:24:29 +0000 (15:24 +0100)] 
mtd: rawnand: sunxi: sunxi_nand_ooblayout_free code clarification

The available length is really USER_DATA_LEN - 2 instead of just 2 (the
user data length minus the BBM length)
USER_DATA_LEN being 4, that doesn't change anything now, but if
USER_DATA_LEN changes, it will.

Signed-off-by: Richard Genoud <richard.genoud@bootlin.com>
Reviewed-by: Chen-Yu Tsai <wens@kernel.org>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
4 weeks agodrm: verisilicon: make vs_dc_platform_driver static
Icenowy Zheng [Tue, 24 Mar 2026 06:08:06 +0000 (14:08 +0800)] 
drm: verisilicon: make vs_dc_platform_driver static

The platform_driver struct isn't export and is only used for module
init/exit functions generated by module_platform_driver() macro.

Make it static to prevent namespace pollution.

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202603180616.TM6qYvIY-lkp@intel.com/
Signed-off-by: Icenowy Zheng <zhengxingda@iscas.ac.cn>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patch.msgid.link/20260324060806.2047121-1-zhengxingda@iscas.ac.cn
4 weeks agomfd: intel-lpss: Add Intel Nova Lake-H PCI IDs
Saranya Gopal [Fri, 13 Mar 2026 10:03:37 +0000 (12:03 +0200)] 
mfd: intel-lpss: Add Intel Nova Lake-H PCI IDs

Add Intel Nova Lake-H LPSS PCI IDs.

Signed-off-by: Saranya Gopal <saranya.gopal@intel.com>
Co-developed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://patch.msgid.link/20260313100337.3471-1-ilpo.jarvinen@linux.intel.com
Signed-off-by: Lee Jones <lee@kernel.org>
4 weeks agoMAINTAINERS: Update GPU driver maintainer information
Jianmin Lv [Fri, 20 Mar 2026 10:10:12 +0000 (18:10 +0800)] 
MAINTAINERS: Update GPU driver maintainer information

I and Qianhai are GPU R&D engineers at Loongson, specializing
in kernel driver development. We understand that the current
Loongson GPU driver lacks dedicated maintenance resources
because of some reasons.

As Loongson GPU driver developers, we have both the capability
and the responsibility to continuously maintain the Loongson
GPU driver, ensuring minimal impact on its users. After internal
discussions, our team has decided to recommend me and Qianhai
to take over the maintenance responsibilities, and recommend
Huacai, Mingcong and Ruoyao to help to review.

And We'll continue to maintain it for current supported chips
and drive future updates according to chip support plan.

Signed-off-by: Jianmin Lv <lvjianmin@loongson.cn>
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patch.msgid.link/20260320101012.22714-1-lvjianmin@loongson.cn
4 weeks agodrm/simple-kms: Deprecate simple-kms helpers
Thomas Zimmermann [Thu, 19 Mar 2026 15:59:52 +0000 (16:59 +0100)] 
drm/simple-kms: Deprecate simple-kms helpers

Deprecate simple-encoder and simple-display-pipe helpers in favor of
regular atomic helpers. Remove the related documentation. Add TODO
item for converting the remaining drivers.

These helpers have been deprecated for years and many drivers have
been updated to not use them. Still there are a few left and we
occasionally receive new drivers build upon them. Marking them as
deprecated will hopefully resolve these problems. The TODO items
should be easy enough for getting new voluteers started on DRM driver
development.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: David Lechner <david@lechnology.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://patch.msgid.link/20260319160110.109610-17-tzimmermann@suse.de
4 weeks agodrm/mipi-dbi: Remove simple-display helpers from mipi-dbi
Thomas Zimmermann [Thu, 19 Mar 2026 15:59:51 +0000 (16:59 +0100)] 
drm/mipi-dbi: Remove simple-display helpers from mipi-dbi

With the conversion to regular atomic helpers, mipi-dbi's support
for simple-display helpers is unused. Removed it.

v2:
- remove unused connector from struct mipi_dbi_dev

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: David Lechner <david@lechnology.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://patch.msgid.link/20260319160110.109610-16-tzimmermann@suse.de
4 weeks agodrm/st7735r: Use regular atomic helpers; drop simple-display helpers
Thomas Zimmermann [Thu, 19 Mar 2026 15:59:50 +0000 (16:59 +0100)] 
drm/st7735r: Use regular atomic helpers; drop simple-display helpers

Replace simple-display helpers with regular atomic helpers. Store the
pipeline elements in struct st7735r_device and initialize them as part
of probing the device. Use mipi-dbi's existing helpers and initializer
macros where possible.

Effectively open-codes the modesetting code in the initializer helpers
of mipi-dbi and simple-display. St7735r requires a custom helper for
CRTC enablement, and non-freeing cleanup of the pipeline.

v2:
- fix connector initialization

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: David Lechner <david@lechnology.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://patch.msgid.link/20260319160110.109610-15-tzimmermann@suse.de
4 weeks agodrm/st7735r: Rename priv variable to st7735r
Thomas Zimmermann [Thu, 19 Mar 2026 15:59:49 +0000 (16:59 +0100)] 
drm/st7735r: Rename priv variable to st7735r

Rename the driver's device variable according to DRM conventions. No
functional changes.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: David Lechner <david@lechnology.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://patch.msgid.link/20260319160110.109610-14-tzimmermann@suse.de
4 weeks agodrm/st7735r: Rename struct st7735r_priv to struct st7735r_device
Thomas Zimmermann [Thu, 19 Mar 2026 15:59:48 +0000 (16:59 +0100)] 
drm/st7735r: Rename struct st7735r_priv to struct st7735r_device

Rename the driver's device struct according to DRM conventions. Also
add a helper to upcast from struct drm_device. No functional changes.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: David Lechner <david@lechnology.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://patch.msgid.link/20260319160110.109610-13-tzimmermann@suse.de
4 weeks agodrm/st7586: Use regular atomic helpers; drop simple-display helpers
Thomas Zimmermann [Thu, 19 Mar 2026 15:59:47 +0000 (16:59 +0100)] 
drm/st7586: Use regular atomic helpers; drop simple-display helpers

Replace simple-display helpers with regular atomic helpers. Store the
pipeline elements in struct st7586_device and initialize them as part
of probing the device. Use mipi-dbi's existing helpers and initializer
macros where possible.

Effectively open-codes the modesetting code in the initializer helpers
of mipi-dbi and simple-display. St7586 requires custom helpers for
various pipeline elements, and non-freeing cleanup of the pipeline.

v3:
- return early in st7586_plane_helper_atomic_update (David)
v2:
- fix connector initialization

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: David Lechner <david@lechnology.com>
Tested-by: David Lechner <david@lechnology.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://patch.msgid.link/20260319160110.109610-12-tzimmermann@suse.de
4 weeks agodrm/panel-mipi-dbi: Use regular atomic helpers; drop simple-display helpers
Thomas Zimmermann [Thu, 19 Mar 2026 15:59:46 +0000 (16:59 +0100)] 
drm/panel-mipi-dbi: Use regular atomic helpers; drop simple-display helpers

Replace simple-display helpers with regular atomic helpers. Store the
pipeline elements in struct panel_mipi_dbi_device and initialize them as
part of probing the device. Use mipi-dbi's existing helpers and initializer
macros where possible.

Effectively open-codes the modesetting code in the initializer helpers
of mipi-dbi and simple-display. Panel-mipi-dbi requires a custom helper
for CRTC enablement, and non-freeing cleanup of the pipeline.

v2:
- fix connector initialization

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: David Lechner <david@lechnology.com>
Tested-by: David Lechner <david@lechnology.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://patch.msgid.link/20260319160110.109610-11-tzimmermann@suse.de
4 weeks agodrm/mi0283qt: Use regular atomic helpers; drop simple-display helpers
Thomas Zimmermann [Thu, 19 Mar 2026 15:59:45 +0000 (16:59 +0100)] 
drm/mi0283qt: Use regular atomic helpers; drop simple-display helpers

Replace simple-display helpers with regular atomic helpers. Store the
pipeline elements in struct mi0283qt_device and initialize them as part
of probing the device. Use mipi-dbi's existing helpers and initializer
macros where possible.

Effectively open-codes the modesetting code in the initializer helpers
of mipi-dbi and simple-display. Mi0283qt requires a custom helper for
CRTC enablement, and non-freeing cleanup of the pipeline.

v3:
- set dbi variable (David)
v2:
- fix connector initialization
- fix coding style

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: David Lechner <david@lechnology.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://patch.msgid.link/20260319160110.109610-10-tzimmermann@suse.de
4 weeks agodrm/ili9486: Use regular atomic helpers; drop simple-display helpers
Thomas Zimmermann [Thu, 19 Mar 2026 15:59:44 +0000 (16:59 +0100)] 
drm/ili9486: Use regular atomic helpers; drop simple-display helpers

Replace simple-display helpers with regular atomic helpers. Store the
pipeline elements in struct ili9486_device and initialize them as part
of probing the device. Use mipi-dbi's existing helpers and initializer
macros where possible.

Effectively open-codes the modesetting code in the initializer helpers
of mipi-dbi and simple-display. Ili9486 requires a custom helper for
CRTC enablement, and non-freeing cleanup of the pipeline.

v3:
- set ili9486 variable (David)
v2:
- fix connector initialization

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: David Lechner <david@lechnology.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://patch.msgid.link/20260319160110.109610-9-tzimmermann@suse.de
4 weeks agodrm/ili9341: Use regular atomic helpers; drop simple-display helpers
Thomas Zimmermann [Thu, 19 Mar 2026 15:59:43 +0000 (16:59 +0100)] 
drm/ili9341: Use regular atomic helpers; drop simple-display helpers

Replace simple-display helpers with regular atomic helpers. Store the
pipeline elements in struct ili9341_device and initialize them as part
of probing the device. Use mipi-dbi's existing helpers and initializer
macros where possible.

Effectively open-codes the modesetting code in the initializer helpers
of mipi-dbi and simple-display. Ili9341 requires a custom helper for
CRTC enablement, and non-freeing cleanup of the pipeline.

v3:
- set dbi variable (David)
v2:
- fix connector initialization

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: David Lechner <david@lechnology.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://patch.msgid.link/20260319160110.109610-8-tzimmermann@suse.de
4 weeks agodrm/ili9225: Use regular atomic helpers; drop simple-display helpers
Thomas Zimmermann [Thu, 19 Mar 2026 15:59:42 +0000 (16:59 +0100)] 
drm/ili9225: Use regular atomic helpers; drop simple-display helpers

Replace simple-display helpers with regular atomic helpers. Store the
pipeline elements in struct ili9225_device and initialize them as part
of probing the device. Use mipi-dbi's existing helpers and initializer
macros where possible.

Effectively open-codes the modesetting code in the initializer helpers
of mipi-dbi and simple-display. Ili9225 requires custom helpers for
various pipeline elements, and non-freeing cleanup of the pipeline.

v3:
- set dbi variable (David)
v2:
- fix connector initialization

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: David Lechner <david@lechnology.com>
Tested-by: David Lechner <david@lechnology.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://patch.msgid.link/20260319160110.109610-7-tzimmermann@suse.de
4 weeks agodrm/ili9163: Use regular atomic helpers; drop simple-display helpers
Thomas Zimmermann [Thu, 19 Mar 2026 15:59:41 +0000 (16:59 +0100)] 
drm/ili9163: Use regular atomic helpers; drop simple-display helpers

Replace simple-display helpers with regular atomic helpers. Store the
pipeline elements in struct ili9163_device and initialize them as part
of probing the device. Use mipi-dbi's existing helpers and initializer
macros where possible.

Effectively open-codes the modesetting code in the initializer helpers
of mipi-dbi and simple-display. Ili9163 requires a custom helper for
CRTC enablement, and non-freeing cleanup of the pipeline.

v3:
- set dbi variable (David)
v2:
- fix connector initialization

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: David Lechner <david@lechnology.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://patch.msgid.link/20260319160110.109610-6-tzimmermann@suse.de
4 weeks agodrm/hx8357d: Use regular atomic helpers; drop simple-display helpers
Thomas Zimmermann [Thu, 19 Mar 2026 15:59:40 +0000 (16:59 +0100)] 
drm/hx8357d: Use regular atomic helpers; drop simple-display helpers

Replace simple-display helpers with regular atomic helpers. Store the
pipeline elements in struct hx8357d_device and initialize them as part
of probing the device. Use mipi-dbi's existing helpers and initializer
macros where possible.

Effectively open-codes the modesetting code in the initializer helpers
of mipi-dbi and simple-display. Hx8357d requires a custom helper for
CRTC enablement, and non-freeing cleanup of the pipeline.

v2:
- fix connector initialization

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: David Lechner <david@lechnology.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://patch.msgid.link/20260319160110.109610-5-tzimmermann@suse.de
4 weeks agodrm/mipi-dbi: Provide callbacks for atomic interfaces
Thomas Zimmermann [Thu, 19 Mar 2026 15:59:39 +0000 (16:59 +0100)] 
drm/mipi-dbi: Provide callbacks for atomic interfaces

Refactor the existing simple-display callbacks such that they invoke
helpers compatible with regular atomic modesetting. Allows for adding
mipi-dbi drives that do not require simple-display helpers.

Provide initializer macro for elements of the regular modesetting
pipeline. These will be used by drivers to integrate mipi-dbi helpers.
Also provide initializer macros for the plane formats.

As the new helpers are DRM functions, add the drm_ prefix. Mipi-dbi
interfaces currently lack this.

v3:
- fix uninitialized variable (David)
- document public interfaces (David)
- mention format macros in commit message (David)

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: David Lechner <david@lechnology.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://patch.msgid.link/20260319160110.109610-4-tzimmermann@suse.de
4 weeks agodrm/mipi-dbi: Support custom pipelines with drm_mipi_dbi_dev_init()
Thomas Zimmermann [Thu, 19 Mar 2026 15:59:38 +0000 (16:59 +0100)] 
drm/mipi-dbi: Support custom pipelines with drm_mipi_dbi_dev_init()

Initialize the mipi-dbi device with drm_mipi_dbi_dev_init() without
creating a modesetting pipeline. Will allow for mipi-dbi drivers
without simple-display helpers.

As the new helper is a DRM function, add the drm_ prefix. Mipi-dbi
interfaces currently lack this.

v3:
- document tx_buf_size parameter (David)

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: David Lechner <david@lechnology.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://patch.msgid.link/20260319160110.109610-3-tzimmermann@suse.de
4 weeks agodrm/mipi-dbi: Only modify planes on enabled CRTCs
Thomas Zimmermann [Thu, 19 Mar 2026 15:59:37 +0000 (16:59 +0100)] 
drm/mipi-dbi: Only modify planes on enabled CRTCs

Use drm_atomic_helper_commit_tail_rpm() as commit tail to update the
plane after enabling the CRTC. Then remove the plane-update code from
mipi_dbi_enable_flush() and inline the remaining backlight code where
necessary.

Mipi-dbi's current commit tail drm_atomic_helper_commit_tail() first
updates the plane and then enables the CRTC. But the CRTC enablement
includes power management that prevents the initial plane update from
working. Hence, each mipi-dbi driver includes a plane update in their
CRTC enablement; in the form of mipi_dbi_enable_flush() or custom code.

Using drm_atomic_helper_commit_tail_rpm() enables the CRTC before any
plane updates. Hence the additional plane update can be removed from
mipi_dbi_enable_flush() and a number of drivers.

This leaves backlight_enable() in the helper, which can now be inlined
into affected drivers. Drivers now enable the CRTC plus an optional
backlight and then automatically update the plane.

In the case of disabling the display, drm_atomic_helper_commit_tail_rpm()
only disables the CRTC without touching the plane at all. Mipi-dbi's
mipi_dbi_pipe_disable() already contains the necessary logic.

Removing the plane update from the CRTC enablement will also help with
converting mipi-dbi from simple-pipe helpers to regular atomic helpers.

v3:
- st7586: remove unused variable
v2:
- ili9225: remove unused variables (David)
- st7586: remove unused variables (David)

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: David Lechner <david@lechnology.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://patch.msgid.link/20260319160110.109610-2-tzimmermann@suse.de
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>