Latest Linux kernel releases

  11.02 6.18.10, 6.12.70, 6.6.124, 6.1.163, 5.15.200, 5.10.250
  08.02 6.19 (merge, pull)

Significant pull requests for mainline kernel

 
11 Feb 2026: OpenRISC updates for 6.20 [+ + +]

OpenRISC updates for 6.20

The main focus for this series has been to improve OpenRISC
kernel out-of-the-box support for FPGA dev boards.

 - Adds device tree configurations for De0 Nano single and
   multicore configurations.
 - Fixes bug in OpenRISC SMP preventing the kernel from running on FPGA
   boards, due to IPIs not being unmasked on secondary CPUs in some
   configurations.
 - Picked up a fix from Brian Masney defining the nop() macro to fix
   build failures on OpenRISC for drivers using the nop() macro.

 
09 Feb 2026: sched_ext: Changes for v6.20 [+ + +]
sched_ext: Changes for v6.20

- Move C example schedulers back from the external scx repo to
  tools/sched_ext as the authoritative source. scx_userland and scx_pair
  are returning while scx_sdt (BPF arena-based task data management) is
  new. These schedulers will be dropped from the external repo.

- Improve error reporting by adding scx_bpf_error() calls when DSQ
  creation fails across all in-tree schedulers.

- Avoid redundant irq_work_queue() calls in destroy_dsq() by only
  queueing when llist_add() indicates an empty list.

- Fix flaky init_enable_count selftest by properly synchronizing
  pre-forked children using a pipe instead of sleep().

09 Feb 2026: cgroup changes for v6.20 [+ + +]
cgroup: Changes for v6.20

- cpuset changes:

  - Continue separating v1 and v2 implementations by moving more
    v1-specific logic into cpuset-v1.c.

  - Improve partition handling. Sibling partitions are no longer
    invalidated on cpuset.cpus conflict, cpuset.cpus changes no longer
    fail in v2, and effective_xcpus computation is made consistent.

  - Fix partition effective CPUs overlap that caused a warning on cpuset
    removal when sibling partitions shared CPUs.

- Increase the maximum cgroup subsystem count from 16 to 32 to
  accommodate future subsystem additions.

- Misc cleanups and selftest improvements including switching to
  css_is_online() helper, removing dead code and stale documentation
  references, using lockdep_assert_cpuset_lock_held() consistently,
  and adding polling helpers for asynchronously updated cgroup
  statistics.

09 Feb 2026: workqueue changes for v6.20 [+ + +]
workqueue: Changes for v6.20

- Rework the rescuer to process work items one-by-one instead of
  slurping all pending work items in a single pass. As there is only
  one rescuer per workqueue, a single long-blocking work item could
  cause high latency for all tasks queued behind it, even after memory
  pressure is relieved and regular kworkers become available to service
  them.

- Add CONFIG_BOOTPARAM_WQ_STALL_PANIC build-time option and
  workqueue.panic_on_stall_time parameter for time-based stall panic,
  giving systems more control over workqueue stall handling.

- Replace BUG_ON() with panic() in the stall panic path for clearer
  intent and more informative output.

09 Feb 2026: SPI updates for v6.20 [+ + +]
spi: Updates for v7.0

The highlight here is that David Lechner has added support for multi-lane
SPI devices.  Unlike the existing dual/quad SPI support this is for
devices (typically ADCs/DACs) which support multiple independent data
streams over multiple data lanes, instead of sending one data stream N
times as fast they simultaneously transfer N different data streams.
This is very similar to the case where multiple devices are grouped
together but in this case it's a single device in a way that's visible
to software.

Otherwise there's been quite a bit of work on existing drivers, both
cleanup and feature improvement, and a reasonable collection of new
drivers.

 - Support for multi-lane SPI devices.
 - Preparatory work for some memory mapped flash improvements that will
   happen in the MTD subsystem.
 - Several conversions to fwnode APIs.
 - A bunch of cleanup and hardening work on the ST drivers.
 - Support for DMA mode on Renesas RZV2H and i.MX target mode.
 - Support for ATCSPI200, AXIADO AX300, NXP XPI and Renesas RZ/N1.

09 Feb 2026: regulator updates for v6.20 [+ + +]
regulator: Updates for v7.0

There's a bunch of new drivers here, plus a lot of hardening for the
supply resolution code which allow us to support systems where we have
two PMICs each of which has regulators supplied by the other.  This did
work a long time ago but got broken as part of improved integration with
the device model, it's fairly rare so nobody noticed.

 - Improvements for supply handling from André Draszik to allow systems
   with two PMICs with supply/consumer relationships in both
   directions to instantiate.
 - New drivers for Maxim MAX776750, Realtek RT8902, Samsung S2MPG11,
   Texas Instuments TPS65185.

This have also pulls in some MFD updates which are build dependencies
for the Samsung S2MPG11 support.

09 Feb 2026: regmap updates for v6.20 [+ + +]
regmap: Updates for v7.0

The main change here is the implementation of a mechanism for generating
register defaults via a callback rather than with a table in the driver.
This is useful for devices where there are large ranges of registers
with the same or generateable values, it allows us to have a small
amount of code instead of a larger amount of default data.

 
9 Feb 2026: m68k updates for v6.20 [+ + +]
m68k updates for v7.0

  - Add missing put_device() in the NuBus driver,
  - Replace vsprintf() with vsnprintf() on Sun-3.

Thanks for pulling!

 
8 Feb 2026: bitmap for 6.20 [+ + +]
more rust helpers, a new KUNIT test for bitops and a couple random
fixes.

All patches spent in -next for at least 2 weeks with no issues.

Thanks,
Yury

bitmap updates for v6.20

 - more rust helpers (Alice);
 - more bitops tests (Ryota);
 - FIND_NTH_BIT() uninitialized variable fix (Lee Yongjun);
 - random cleanups (Andy, H. Peter).

8 Feb 2026: Rust for v6.20 / v7.0 [+ + +]
This is the next round of the Rust support.

A medium-sized one this time. The major changes are the rewrite of our
procedural macros to use the `syn` parsing library which we introduced
last cycle.

Only a single one-liner conflict expected at this time (please pick the
longer line). The resolutions in linux-next should be fine. I did a test
merge with what you have at the moment.

All commits have been in linux-next for a week or more.


Cheers,
Miguel

Rust changes for v6.20 / v7.0

Toolchain and infrastructure:

 - Add '__rust_helper' annotation to the C helpers.

   This is needed to inline these helpers into Rust code.

 - Remove imports available via the prelude, treewide.

   This was possible thanks to a new lint in Klint that Gary has
   implemented -- more Klint-related changes, including initial upstream
   support, are coming.

 - Deduplicate pin-init flags.

'kernel' crate:

 - Add support for calling a function exactly once with the new
   'do_once_lite!' macro (and 'OnceLite' type).

   Based on this, add 'pr_*_once!' macros to print only once.

 - Add 'impl_flags!' macro for defining common bitflags operations:

       impl_flags!(
           /// Represents multiple permissions.
           #[derive(Debug, Clone, Default, Copy, PartialEq, Eq)]
           pub struct Permissions(u32);

           /// Represents a single permission.
           #[derive(Debug, Clone, Copy, PartialEq, Eq)]
           pub enum Permission {
               /// Read permission.
               Read = 1 << 0,

               /// Write permission.
               Write = 1 << 1,

               /// Execute permission.
               Execute = 1 << 2,
           }
       );

       let mut f: Permissions = Permission::Read | Permission::Write;
       assert!(f.contains(Permission::Read));
       assert!(!f.contains(Permission::Execute));

       f |= Permission::Execute;
       assert!(f.contains(Permission::Execute));

       let f2: Permissions = Permission::Write | Permission::Execute;
       assert!((f ^ f2).contains(Permission::Read));
       assert!(!(f ^ f2).contains(Permission::Write));

 - 'bug' module: support 'CONFIG_DEBUG_BUGVERBOSE_DETAILED' in the
   'warn_on!' macro in order to show the evaluated condition alongside
   the file path:

        ------------[ cut here ]------------
        WARNING: [val == 1] linux/samples/rust/rust_minimal.rs:27 at ...
        Modules linked in: rust_minimal(+)

 - Add safety module with 'unsafe_precondition_assert!' macro, currently
   a wrapper for 'debug_assert!', intended to mark the validation of
   safety preconditions where possible:

       /// # Safety
       ///
       /// The caller must ensure that `index` is less than `N`.
       unsafe fn set_unchecked(&mut self, index: usize, value: T) {
           unsafe_precondition_assert!(
               index < N,
               "set_unchecked() requires index ({index}) < N ({N})"
           );

           ...
       }

 - Add instructions to 'build_assert!' documentation requesting to
   always inline functions when used with function arguments.

 - 'ptr' module: replace 'build_assert!' with a 'const' one.

 - 'rbtree' module: reduce unsafe blocks on pointer derefs.

 - 'transmute' module: implement 'FromBytes' and 'AsBytes' for
   inhabited ZSTs, and use it in Nova.

 - More treewide replacements of 'c_str!' with C string literals.

'macros' crate:

 - Rewrite most procedural macros ('module!', 'concat_idents!',
   '#[export]', '#[vtable]', '#[kunit_tests]') to use the 'syn' parsing
   library which we introduced last cycle, with better diagnostics.

   This also allows to support '#[cfg]' properly in the '#[vtable]'
   macro, to support arbitrary types in 'module!' macro (not just an
   identifier) and to remove several custom parsing helpers we had.

 - Use 'quote!' from the recently vendored 'quote' library and remove
   our custom one.

   The vendored one also allows us to avoid quoting '"' and '{}' inside
   the template anymore and editors can now highlight it. In addition,
   it improves robustness as it eliminates the need for string quoting
   and escaping.

 - Use 'pin_init::zeroed()' to simplify KUnit code.

'pin-init' crate:

 - Rewrite all procedural macros ('[pin_]init!', '#[pin_data]',
   '#[pinned_drop]', 'derive([Maybe]Zeroable)') to use the 'syn' parsing
   library which we introduced last cycle, with better diagnostics.

 - Implement 'InPlaceWrite' for '&'static mut MaybeUninit<T>'. This
   enables users to use external allocation mechanisms such as
   'static_cell'.

 - Support tuple structs in 'derive([Maybe]Zeroable)'.

 - Support attributes on fields in '[pin_]init!' (such as
   '#[cfg(...)]').

 - Add a '#[default_error(<type>)]' attribute to '[pin_]init!' to
   override the default error (when no '? Error' is specified).

 - Support packed structs in '[pin_]init!' with
   '#[disable_initialized_field_access]'.

 - Remove 'try_[pin_]init!' in favor of merging their feature
   with '[pin_]init!'. Update the kernel's own 'try_[pin_]init!'
   macros to use the 'default_error' attribute.

 - Correct 'T: Sized' bounds to 'T: ?Sized' in the generated
   'PinnedDrop' check by '#[pin_data]'.

Documentation:

 - Conclude the Rust experiment.

MAINTAINERS:

 - Add "RUST [RUST-ANALYZER]" entry for the rust-analyzer support. Tamir
   and Jesung will take care of it. They have both been active around it
   for a while. The new tree will flow through the Rust one.

 - Add Gary as maintainer for "RUST [PIN-INIT]".

 - Update Boqun and Tamir emails to their kernel.org accounts.

And a few other cleanups and improvements.

8 Feb 2026: locking updates for v6.20 [+ + +]


for you to fetch changes up to 7a562d5d2396c9c78fbbced7ae81bcfcfa0fde3f:

[ MERGE NOTE: please note the default-enabled nature of the new
  locking context analysis feature, and its justification described
  below. If that's too aggressive, please disregard this pull request. ]

Locking updates for v6.20:

Lock debugging:

 - Implement compiler-driven static analysis locking context
   checking, using the upcoming Clang 22 compiler's context
   analysis features. (Marco Elver)

   We removed Sparse context analysis support, because prior to
   removal even a defconfig kernel produced 1,700+ context
   tracking Sparse warnings, the overwhelming majority of which
   are false positives. On an allmodconfig kernel the number of
   false positive context tracking Sparse warnings grows to
   over 5,200... On the plus side of the balance actual locking
   bugs found by Sparse context analysis is also rather ... sparse:
   I found only 3 such commits in the last 3 years. So the
   rate of false positives and the maintenance overhead is
   rather high and there appears to be no active policy in
   place to achieve a zero-warnings baseline to move the
   annotations & fixers to developers who introduce new code.

   Clang context analysis is more complete and more aggressive
   in trying to find bugs, at least in principle. Plus it has
   a different model to enabling it: it's enabled subsystem by
   subsystem, which results in zero warnings on all relevant
   kernel builds (as far as our testing managed to cover it).
   Which allowed us to enable it by default, similar to other
   compiler warnings, with the expectation that there are no
   warnings going forward. This enforces a zero-warnings baseline
   on clang-22+ builds. (Which are still limited in distribution,
   admittedly.)

   Hopefully the Clang approach can lead to a more maintainable
   zero-warnings status quo and policy, with more and more
   subsystems and drivers enabling the feature. Context tracking
   can be enabled for all kernel code via WARN_CONTEXT_ANALYSIS_ALL=y
   (default disabled), but this will generate a lot of false positives.

   ( Having said that, Sparse support could still be added back,
     if anyone is interested - the removal patch is still
     relatively straightforward to revert at this stage. )

Rust integration updates: (Alice Ryhl, Fujita Tomonori, Boqun Feng)

  - Add support for Atomic<i8/i16/bool> and replace most Rust native
    AtomicBool usages with Atomic<bool>

  - Clean up LockClassKey and improve its documentation

  - Add missing Send and Sync trait implementation for SetOnce

  - Make ARef Unpin as it is supposed to be

  - Add __rust_helper to a few Rust helpers as a preparation for
    helper LTO

  - Inline various lock related functions to avoid additional
    function calls.

WW mutexes:

  - Extend ww_mutex tests and other test-ww_mutex updates (John Stultz)

Misc fixes and cleanups:

  - rcu: Mark lockdep_assert_rcu_helper() __always_inline
    (Arnd Bergmann)

  - locking/local_lock: Include more missing headers (Peter Zijlstra)

  - seqlock: fix scoped_seqlock_read kernel-doc (Randy Dunlap)

  - rust: sync: Replace `kernel::c_str!` with C-Strings
    (Tamir Duberstein)

 Thanks,

Ingo

 
6 Feb 2026: KVM: x86 pull requests for 6.20 [+ + +]
Unless I'm forgetting something, there's only one conflict, between "selftests"
and the kvm-riscv tree[*] (Anup also mentioned this in his pull request).

There are two ABI changes, both of which I'm confident won't break userspace:

 - When populating guest_memfd, require the source to be 4KiB aligned.
 - Disallow changing the virtual CPU model when L2 is active (basically an
   extension of the existing rule that the model can't be changed after KVM_RUN.

Oh, and except for the PMU pull request, these are all against 6.19-rc4.

[*] https://lore.kernel.org/all/aXt2F2jIm5YK8LB1@sirena.org.uk
6 Feb 2026: nolibc changes for 6.20/7.0 [+ + +]
nolibc changes for 6.20/7.0

Highlights:

* All time-related functionality uses 64-bit timestamps for
  y2038 compatibility.
* fread() and fskeek() support.
* ptrace() support.
* Addition of libc-test to the regular kselftests.
* Smaller cleanups and fixes to the code and build system.

6 Feb 2026: Btrfs updates for 6.20/7.0 [+ + +]
Hi,

please pull the following btrfs updates. Thanks.

User visible changes, feature updates:

- when using block size > page size, enable direct IO

- fallback to buffered IO if the data profile has duplication,
  workaround to avoid checksum mismatches on block group profiles with
  redundancy, real direct IO is possible on single or RAID0

- redo export of zoned statistics, moved from sysfs to /proc/pid/mountstats
  due to size limitations of the former

Experimental features:

- remove offload checksum tunable, intended to find best way to do it
  but since we've switched to offload to thread for everything we don't
  need it anymore

- initial support for remap-tree feature, a translation layer of logical
  block addresses that allow changes without moving/rewriting blocks to
  do eg. relocation, or other changes that require COW

Notable fixes:

- automatic removal of accidentally leftover chunks when free-space-tree
  is enabled since mkfs.btrfs v6.16.1

- zoned mode

  - do not try to append to conventional zones when RAID is mixing zoned
    and conventional drives

  - fixup write pointers when mixing zoned and conventional on DUP/RAID*
    profiles

- when using squota, relax deletion rules for qgroups with 0 members to
  allow easier recovery from accounting bugs, also add more checks to
  detect bad accounting

- fix periodic reclaim scanning, properly check boundary conditions not
  to trigger it unexpectedly or miss the time to run it

- trim

  - continue after first error

  - change reporting to the first detected error

  - add more cancellation points

  - reduce contention of big device lock that can block other operations
    when there's lots of trimmed space

- when chunk allocation is forced (needs experimental build) fix
  transaction abort when unexpected space layout is detected

Core:

- switch to crypto library API for checksumming, removed module
  dependencies, pointer indirections, etc.

- error handling improvements

- adjust how and where transaction commit or abort are done and are
  maybe not necessary

- minor compression optimization to skip single block ranges

- improve how compression folios are handled

- new and updated selftests

- cleanups, refactoring

  - auto-freeing and other automatic variable cleanup conversion

  - structure size optimizations

  - condition annotations

6 Feb 2026: LoongArch KVM changes for v6.20 [+ + +]
LoongArch KVM changes for v6.20

1. Add more CPUCFG mask bits.
2. Improve feature detection.
3. Add FPU/LBT delay load support.
4. Set default return value in KVM IO bus ops.
5. Add paravirt preempt feature support.
6. Add KVM steal time test case for tools/selftests.

 
5 Feb 2026: ACPI support updates for v6.20-rc1/v7.0-rc1 [+ + +]
This goes a bit early, but it's ready.


 acpi-6.20-rc1


 Merge branch 'acpi-apei'


 Linux 6.19-rc7

to receive ACPI support updates for 6.20-rc1/7.0-rc1 (whichever it
turns out to be).

This one is significantly larger than previous ACPI support pull
requests because several significant updates have coincided in it.

First, there is a routine ACPICA code update, to upstream version
20251212, but this time it covers new ACPI 6.6 material that has not
been covered yet.  Among other things, it includes definitions of a
few new ACPI tables and updates of some others, like the GICv5 MADT
structures and ARM IORT IWB node definitions that are used for adding
GICv5 ACPI probing on ARM (that technically is IRQ subsystem material,
but it depends on the ACPICA changes, so it is included here).  The
latter alone adds a few hundred lines of new code.

Second, there is an update of ACPI _OSC handling including a fix that
prevents failures from occurring in some corner cases due to careless
handling of _OSC error bits.

On top of that, the "system resource" ACPI device objects with the
PNP0C01 and PNP0C02 are now going to be handled by the ACPI core
device enumeration code instead of handing them over to the legacy
PNP system driver which causes device enumeration issues to occur.
Some of those issues have been worked around in device drivers and
elsewhere and those workarounds should not be necessary any more, so
they are going away.

Moreover, the time has come to convert all "core ACPI" device drivers
that were still using struct acpi_driver objects for device binding
into proper platform drivers that use struct platform_driver for this
purpose.  These updates are accompanied by some requisite core ACPI
device enumeration code changes.

Next, there are ACPI APEI updates, including changes to avoid excess
overhead in the NMI handler and in SEA on the ARM side, changes
to unify ACPI-based HW error tracing and logging, and changes to
prevent APEI code from reaching out of its allocated memory.

There are also some ACPI power management updates, mostly related to
the ACPI cpuidle support in the processor driver, suspend-to-idle
handling on systems with ACPI support and to ACPI PM of devices.

In addition to the above, bugs are fixed and the code is cleaned up
in assorted places all over.

Specifics:

 - Update the ACPICA code in the kernel to upstream version 20251212
   which includes the following changes:

   * Add support for new ACPI table DTPR (Michal Camacho Romero)
   * Release objects with acpi_ut_delete_object_desc() (Zilin Guan)
   * Add UUIDs for Microsoft fan extensions and UUIDs associated with
     TPM 2.0 devices (Armin Wolf)
   * Fix NULL pointer dereference in acpi_ev_address_space_dispatch()
     (Alexey Simakov)
   * Add KEYP ACPI table definition (Dave Jiang)
   * Add support for the Microsoft display mux _OSI string (Armin Wolf)
   * Add definitions for the IOVT ACPI table (Xianglai Li)
   * Abort AML bytecode execution on AML_FATAL_OP (Armin Wolf)
   * Include all fields in subtable type1 for PPTT (Ben Horgan)
   * Add GICv5 MADT structures and Arm IORT IWB node definitions (Jose
     Marinho)
   * Update Parameter Block structure for RAS2 and add a new flag in
     Memory Affinity Structure for SRAT (Pawel Chmielewski)
   * Add _VDM (Voltage Domain) object (Pawel Chmielewski)

 - Add support for GICv5 ACPI probing on ARM which is based on the
   GICv5 MADT structures and ARM IORT IWB node definitions recently
   added to ACPICA (Lorenzo Pieralisi)

 - Rework ACPI PM notification setup for PCI root buses and modify the
   ACPI PM setup for devices to register wakeup source objects under
   physical (that is, PCI, platform, etc.) devices instead of doing that
   under their ACPI companions (Rafael Wysocki)

 - Adjust debug messages regarding postponed ACPI PM printed during
   system resume to be more accurate (Rafael Wysocki)

 - Remove dead code from lps0_device_attach() (Gergo Koteles)

 - Start to invoke Microsoft Function 9 (Turn On Display) of the Low-
   Power S0 Idle (LPS0) _DSM in the suspend-to-idle resume flow on
   systems with ACPI LPS0 support to address a functional issue on
   Lenovo Yoga Slim 7i Aura (15ILL9), where system fans and keyboard
   backlights fail to resume after suspend (Jakob Riemenschneider)

 - Add sysfs attribute cid for exposing _CID lists under ACPI device
   objects (Rafael Wysocki)

 - Replace sprintf() with sysfs_emit() in all of the core ACPI sysfs
   interface code (Sumeet Pawnikar)

 - Use acpi_get_local_u64_address() in the code implementing ACPI
   support for PCI to evaluate _ADR instead of evaluating that object
   directly (Andy Shevchenko)

 - Add JWIPC JVC9100 to irq1_level_low_skip_override[] to unbreak
   serial IRQs on that system (Ai Chao)

 - Fix handling of _OSC errors in acpi_run_osc() to avoid failures on
   systems where _OSC error bits are set even though the _OSC return
   buffer contains acknowledged feature bits (Rafael Wysocki)

 - Clean up and rearrange \_SB._OSC handling for general platform
   features and USB4 features to avoid code duplication and unnecessary
   memory management overhead (Rafael Wysocki)

 - Make the ACPI core device enumeration code handle PNP0C01 and PNP0C02
   ("system resource") device objects directly instead of letting the
   legacy PNP system driver handle them to avoid device enumeration
   issues on systems where PNP0C02 is present in the _CID list under
   ACPI device objects with a _HID matching a proper device driver in
   Linux (Rafael Wysocki)

 - Drop workarounds for the known device enumeration issues related to
   _CID lists containing PNP0C02 (Rafael Wysocki)

 - Drop outdated comment regarding removed function in the ACPI-based
   device enumeration code (Julia Lawall)

 - Make PRP0001 device matching work as expected for ACPI device objects
   using it as a _HID for board development and similar purposes (Kartik
   Rajput)

 - Use async schedule function in acpi_scan_clear_dep_fn() to avoid
   races with user space initialization on some systems (Yicong Yang)

 - Add a piece of documentation explaining why binding drivers directly
   to ACPI device objects is not a good idea in general and why it is
   desirable to convert drivers doing so into proper platform drivers
   that use struct platform_driver for device binding (Rafael Wysocki)

 - Convert multiple "core ACPI" drivers, including the NFIT ACPI device
   driver, the generic ACPI button drivers, the generic ACPI thermal
   zone driver, the ACPI hardware event device (HED) driver, the ACPI EC
   driver, the ACPI SMBUS HC driver, the ACPI Smart Battery Subsystem
   (SBS) driver, and the ACPI backlight (video) driver to proper platform
   drivers that use struct platform_driver for device binding (Rafael
   Wysocki)

 - Use acpi_get_local_u64_address() in the ACPI backlight (video) driver
   to evaluate _ADR instead of evaluating that object directly (Andy
   Shevchenko)

 - Convert the generic ACPI battery driver to a proper platform driver
   using struct platform_driver for device binding (Rafael Wysocki)

 - Fix incorrect charging status when current is zero in the generic
   ACPI battery driver (Ata =C4=B0lhan K=C3=B6kt=C3=BCrk)

 - Use LIST_HEAD() for initializing a stack-allocated list in the
   generic ACPI watchdog device driver (Can Peng)

 - Rework the ACPI idle driver initialization to register it directly
   from the common initialization code instead of doing that from a
   CPU hotplug "online" callback and clean it up (Huisong Li, Rafael
   Wysocki)

 - Fix a possible NULL pointer dereference in
   acpi_processor_errata_piix4() (Tuo Li)

 - Make read-only array non_mmio_desc[] static const (Colin Ian King)

 - Prevent the APEI GHES support code on ARM from accessing memory out
   of bounds or going past the ARM processor CPER record buffer (Mauro
   Carvalho Chehab)

 - Prevent cper_print_fw_err() from dumping the entire memory on systems
   with defective firmware (Mauro Carvalho Chehab)

 - Improve ghes_notify_nmi() status check to avoid unnecessary overhead
   in the NMI handler by carrying out all of the requisite preparations
   and the NMI registration time (Tony Luck)

 - Refactor the GHES driver by extracting common functionality into
   reusable helper functions to reduce code duplication and improve
   the ghes_notify_sea() status check in analogy with the previous
   ghes_notify_nmi() status check improvement (Shuai Xue)

 - Make ELOG and GHES log and trace consistently and support the CPER
   CXL protocol analogously (Fabio De Francesco)

 - Disable KASAN instrumentation in the APEI GHES driver when compile
   testing with clang < 18 (Nathan Chancellor)

 - Let ghes_edac be the preferred driver to load on  __ZX__ and _BYO_
   systems by extending the platform detection list in the APEI GHES
   driver (Tony W Wang-oc)

 - Clean up cppc_perf_caps and cppc_perf_ctrls structs and rename EPP
   constants for clarity in the ACPI CPPC library (Sumit Gupta)

Thanks!



5 Feb 2026: Power management updates for v6.20-rc1/v7.0-rc1 [+ + +]
This goes a bit early, but it's ready.


 pm-6.20-rc1


 Merge branch 'pm-tools'


 Merge tag 'cpufreq-arm-fixes-6.19-rc8' of

to receive power management updates for 6.20-rc1/7.0-rc1 (whichever it
turns out to be).

By the number of commits, cpufreq is the leading party (again) and the
most visible change there is the removal of the omap-cpufreq driver
that has not been used for a long time (good riddance).  There are also
quite a few changes in the cppc_cpufreq driver, mostly related to fixing
its frequency invariance engine in the case when the CPPC registers
used by it are not in PCC.  In addition to that, support for AM62L3 is
added to the ti-cpufreq driver and the cpufreq-dt-platdev list is
updated for some platforms.  The remaining cpufreq changes are assorted
fixes and cleanups.

Next up is cpuidle and the changes there are dominated by intel_idle
driver updates, mostly related to the new command line facility allowing
users to adjust the list of C-states used by the driver.  There are also
a few updates of cpuidle governors, including two menu governor fixes
and some refinements of the teo governor, and a MAINTAINERS update
adding Christian Loehle as a cpuidle reviewer.  [Thanks for stepping up
Christian!]

The most significant update related to system suspend and hibernation
is the one to stop freezing the PM runtime workqueue during system PM
transitions which allows some deadlocks to be avoided.  There is also
a fix for possible concurrent bit field updates in the core device
suspend code and a few other minor fixes.

Apart from the above, several drivers are updated to discard the return
value of pm_runtime_put() which is going to be converted to a void
function as soon as everybody stops using its return value, PL4 support
for Ice Lake is added to the Intel RAPL power capping driver, and there
are assorted cleanups, documentation fixes, and some cpupower utility
improvements.

Specifics:

 - Remove the unused omap-cpufreq driver (Andreas Kemnade)

 - Optimize error handling code in cpufreq_boost_trigger_state() and
   make cpufreq_boost_trigger_state() return -EOPNOTSUPP if no policy
   supports boost (Lifeng Zheng)

 - Update cpufreq-dt-platdev list for tegra, qcom, TI (Aaron Kling,
   Dhruva Gole, and Konrad Dybcio)

 - Minor improvements to the cpufreq and cpumask rust implementation
   (Alexandre Courbot, Alice Ryhl, Tamir Duberstein, and Yilin Chen)

 - Add support for AM62L3 SoC to the ti-cpufreq driver (Dhruva Gole)

 - Update arch_freq_scale in the CPPC cpufreq driver's frequency
   invariance engine (FIE) in scheduler ticks if the related CPPC
   registers are not in PCC (Jie Zhan)

 - Assorted minor cleanups and improvements in ARM cpufreq drivers (Juan
   Martinez, Felix Gu, Luca Weiss, and Sergey Shtylyov)

 - Add generic helpers for sysfs show/store to cppc_cpufreq (Sumit
   Gupta)

 - Make the scaling_setspeed cpufreq sysfs attribute return the actual
   requested frequency to avoid confusion (Pengjie Zhang)

 - Simplify the idle CPU time granularity test in the ondemand cpufreq
   governor (Frederic Weisbecker)

 - Enable asym capacity in intel_pstate only when CPU SMT is not
   possible (Yaxiong Tian)

 - Update the description of rate_limit_us default value in cpufreq
   documentation (Yaxiong Tian)

 - Add a command line option to adjust the C-states table in the
   intel_idle driver, remove the 'preferred_cstates' module parameter
   from it, add C-states validation to it and clean it up (Artem
   Bityutskiy)

 - Make the menu cpuidle governor always check the time till the closest
   timer event when the scheduler tick has been stopped to prevent it
   from mistakenly selecting the deepest available idle state (Rafael
   Wysocki)

 - Update the teo cpuidle governor to avoid making suboptimal decisions
   in certain corner cases and generally improve idle state selection
   accuracy (Rafael Wysocki)

 - Remove an unlikely() annotation on the early-return condition in
   menu_select() that leads to branch misprediction 100% of the time
   on systems with only 1 idle state enabled, like ARM64 servers (Breno
   Leitao)

 - Add Christian Loehle to MAINTAINERS as a cpuidle reviewer (Christian
   Loehle)

 - Stop flagging the PM runtime workqueue as freezable to avoid system
   suspend and resume deadlocks in subsystems that assume asynchronous
   runtime PM to work during system-wide PM transitions (Rafael Wysocki)

 - Drop redundant NULL pointer checks before acomp_request_free() from
   the hibernation code handling image saving (Rafael Wysocki)

 - Update wakeup_sources_walk_start() to handle empty lists of wakeup
   sources as appropriate (Samuel Wu)

 - Make dev_pm_clear_wake_irq() check the power.wakeirq value under
   power.lock to avoid race conditions (Gui-Dong Han)

 - Avoid bit field races related to power.work_in_progress in the core
   device suspend code (Xuewen Yan)

 - Make several drivers discard pm_runtime_put() return value in
   preparation for converting that function to a void one (Rafael
   Wysocki)

 - Add PL4 support for Ice Lake to the Intel RAPL power capping
   driver (Daniel Tang)

 - Replace sprintf() with sysfs_emit() in power capping sysfs show
   functions (Sumeet Pawnikar)

 - Make dev_pm_opp_get_level() return value match the documentation
   after a previous update of the latter (Aleks Todorov)

 - Use scoped for each OF child loop in the OPP code (Krzysztof
   Kozlowski)

 - Fix a bug in an example code snippet and correct typos in the energy
   model management documentation (Patrick Little)

 - Fix miscellaneous problems in cpupower (Kaushlendra Kumar):

   * idle_monitor: Fix incorrect value logged after stop
   * Fix inverted APERF capability check
   * Use strcspn() to strip trailing newline
   * Reset errno before strtoull()
   * Show C0 in idle-info dump

 - Improve cpupower installation procedure by making the systemd step
   optional and allowing users to disable the installation of systemd's
   unit file (Jo=C3=A3o Marcos Costa)

Thanks!



 
4 Feb 2026: USB serial device ids for 6.20-rc1 [+ + +]
USB serial device ids for 6.20-rc1

Here are some new modem device ids for 6.20-rc1.

Everything has been in linux-next with no reported issues.

4 Feb 2026: I3C changes for 6.20 [+ + +]
Here is the i3c subsystem pull request for 6.19. Most of the work has
been concentrated on mipi-i3c-hci and in particular its pci variant. The
renesas and dw drivers have also seen a few improvements.

I3C for 6.20

Subsystem:
 - add sysfs entry and attribute for Device NACK Retry count

Drivers:
 - dw: Device NACK Retry configuration knob
 - mipi-i3c-hci: support for Multi-Bus Instances, Runtime PM support, System
   Suspend support
 - renesas: suspend/resume support

 
1 Feb 2026: kselftest next update for Linux 6.20-rc1 [+ + +]
Hi Linus,


resctrl test:
- fixes a devision by zero error on Hygon
- fixes non-contiguous CBM check for Hygon
- defines CPU vendor IDs as bits to match usage
- adds CPU vendor detection for Hygon

- coredeump test: changes to use __builtin_trap() instead of a null pointer
- anon_inode: replaces null pointers with empty arrays
- kublk: includes message in _Static_assert for C11 compatibility
- run_kselftest.sh: adds `--skip` argument option
- pidfd: fixes typo in comment

Note:

There is a conflict between the following commits found during linux-next
merge and Mark fixed it up

   tools/testing/selftests/ublk/kublk.h

between commit:

   584709ad5ce35 ("selftests: ublk: replace assert() with ublk_assert()")

from the block tree and commit:

   3e6ad272bb8b3 ("kselftest/kublk: include message in _Static_assert for C11 compatibility")

from the kselftest tree.

diff is attached.

thanks,
-- Shuah

linux_kselftest-next-6.20-rc1

resctrl test:
- fixes a devision by zero error on Hygon
- fixes non-contiguous CBM check for Hygon
- defines CPU vendor IDs as bits to match usage
- adds CPU vendor detection for Hygon

- coredeump test: changes to use __builtin_trap() instead of a null pointer
- anon_inode: replaces null pointers with empty arrays
- kublk: includes message in _Static_assert for C11 compatibility
- run_kselftest.sh: adds `--skip` argument option
- pidfd: fixes typo in comment

 
31 Jan 2026: SOC FSL for 6.20 [+ + +]
Hi Arnd,


Documentation is acked by Conor Dooley and changes to fsl-mc bus are 
reviewed or acked by Ioana Ciornei.

Thanks
Christophe

FSL SOC Changes for 6.20

Freescale Management Complex:
- Convert fsl-mc bus to bus callbacks
- Fix a use-after-free
- Drop redundant error messages
- Fix ressources release on some error path

Freescale QUICC Engine:
- Add an interrupt controller for IO Ports
- Use scoped for-each OF child loop

31 Jan 2026: i2c-host for v6.20 [+ + +]
Hi Wolfram,

here is the pull request for the merge window. Most of the
patches that did not make it were not ready to be merged due to
missing or pending reviews. Some were ready only very late and I
did not feel comfortable including them. For a smaller set I
simply ran out of time to follow up properly.

This pull request includes general cleanups across several
drivers, a DesignWare core refactoring to enable mode switching,
runtime PM improvements for imx-lpi2c, a new lan9691 I2C driver
and targeted fixes in rtl9300, spacemit and tegra.

I will try to collect a few more minor patches for next week, so
if it is OK with you, please expect a second part.

Thank you and I wish you a great weekend,
Andi

i2c-host for v6.20

- amd-mp2, designware, mlxbf, rtl9300, spacemit, tegra: cleanups
- designware: use a dedicated algorithm for AMD Navi
- designware: replace magic numbers with named constants
- designware: replace min_t() with min() to avoid u8 truncation
- designware: refactor core to enable mode switching
- imx-lpi2c: add runtime PM support for IRQ and clock handling
- lan9691-i2c: add new driver
- rtl9300: use OF helpers directly and avoid fwnode handling
- spacemit: add bus reset support
- units: add HZ_PER_GHZ and use it in several i2c drivers

 
30 Jan 2026: interconnect changes for 6.20 [+ + +]
This is the pull request with interconnect changes for the v6.20-rc1 merge
window. As always, the summary is in the signed tag.

All patches have been in linux-next for over a week. There are currently

Thanks,
Georgi


interconnect changes for 6.20

This pull request contains the interconnect changes for the 6.20-rc1
merge window. The core and driver changes are listed below.

Core changes:
- Add KUnit tests for core functionality

Driver changes:
- New driver for MediaTek MT8196 EMI
- MediaTek driver fixes
- Support for Glymur BWMONs
- QCS8300 driver topology fix
- Misc cleanups

Signed-off-by: Georgi Djakov <djakov@kernel.org>

30 Jan 2026: kunit next update for Linux 6.20-rc1 [+ + +]
Hi Linus,


kunit:
- adds __rust_helper to helpers
- fixes up const mis-match in many assert functions
- fixes up const mismatch in test_list_sort
- protects KUNIT_BINARY_STR_ASSERTION against ERR_PTR values
- respects KBUILD_OUTPUT env variable by default
- adds bash completion

kunit tool:
- adds test for nested test result reporting
- fixes to not overwrite test status based on subtest counts
- adds 32-bit big endian ARM configuration to qemu_configs
- renames test_data_path() to _test_data_path()
- fixes relying on implicit working directory change

diff is attached.

thanks,
-- Shuah

linux_kselftest-kunit-6.20-rc1

kunit:
- adds __rust_helper to helpers
- fixes up const mis-match in many assert functions
- fixes up const mismatch in test_list_sort
- protects KUNIT_BINARY_STR_ASSERTION against ERR_PTR values
- respects KBUILD_OUTPUT env variable by default
- adds bash completion

kunit tool:
- adds test for nested test result reporting
- fixes to not overwrite test status based on subtest counts
- adds 32-bit big endian ARM configuration to qemu_configs
- renames test_data_path() to _test_data_path()
- fixes relying on implicit working directory change

 
29 Jan 2026: ASPEED clk updates for v6.20 [+ + +]
Hi Stephen,=0A=
=0A=
=0A=
The series includes:=0A=
- Reorganization of ASPEED clock drivers under drivers/clk/aspeed/=0A=
- MAINTAINERS updates for ASPEED clock drivers=0A=
- New ASPEED clock driver support=0A=
=0A=
The branch is based on v6.19-rc1 as requested.=0A=
=0A=
Thanks,=0A=
=0A=
Billy=0A=
=0A=
----------------------------------------------------------------=0A=
 
28 Jan 2026: RISC-V Devicetrees for v6.20 (or v7.0?) [+ + +]

Hey folks,

Not a very big PR from me this time either. Last windows I've been
expecting my PR to contain the Canaan k230 platform but the clock
driver that I am waiting on always seems to end up not being quite
ready =C2=AF\_(=E3=83=84)_/=C2=AF

Cheers,
Conor.

RISC-V Devicetrees for v6.20 (or v7.0)

Anlogic:
Minor change to the extension information, to add the "b" extension
that's a catch-all for 3 of the extensions already in the dts.

Starfive:
Append the jh7110 compatible to jh7110s devicetrees, as that will enable
OpenSBI etc to run without adding support for this minor variant. The
"s" device differs from the non "s" device only in
thermal limits and voltage/frequency characteristics.

Microchip:
Redo the mpfs clock setup yet again, to something approaching correct.
The original binding conjured up for the platform was wildly inaccurate,
and even with the original improvements, a bigger change to using
syscons was required to support several peripherals that also inhabit
the memory regions that the clocks lie in. The damage to the dts isn't
that bad in the end, and of course the whole thing has been done in a
backwards compatible manner, with the code changes being merged a cycle
or two ago in the kernel and like a year ago in U-Boot (the only other
user that I am aware of).

Generic:
Additions to extensions.yaml, mainly for things in the "rva23" profile
that appear for the first time on the Spacemit K3 SoC.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>

 
26 Jan 2026: auxdisplay for 6.20-1 [+ + +]
For this subsystem it's rather moderated update and basically for only a single
driver. Everything was floating in Linux Next for weeks without reported issues.
Please, pull for v6.20-rc1 (or whatever next cycle version will be).

Thanks,

With Best Regards,
Andy Shevchenko

auxdisplay for v6.20-1

* A good refactoring of arm-charlcd to use modern kernel APIs

 
25 Jan 2026: Apple SoC driver changes for v6.20 [+ + +]
Apple SoC driver updates for 6.20

- Add a poweroff function to the RTKit library which will be required
  for the first USB4/Thunderbolt series I hope to submit next cycle.

 
23 Jan 2026: clk: imx: Updates for v6.20 [+ + +]
i.MX clocks changes for 6.20

- Add support for 241.90 MHz and 332.60 MHz to the fractional-N
  General-Purpose PLL (GPPLL).

 
22 Jan 2026: RISC-V SpacemiT Devicetrees for v6.20 [+ + +]
Hi Arnd,


Yixun Lan

RISC-V SpacemiT DT changes for 6.20

- Disable Ethernet PHY auto sleep mode
- Add pinctrl IO power support
- Add K3 Pico-ITX board
- Add support for K3 SoC
- Add DWC USB support
- Add reset for eMMC(sdhci)/I2C
- Add PCIe support
- Support PMIC for Jupiter board

22 Jan 2026: arm64: dts: samsung: dts for v6.20, part two [+ + +]
Hi Arnd and SoC folks,

On top of previous pull request:
https://patchwork.kernel.org/project/linux-soc/patch/20260117180406.9361-5-krzk@kernel.org/


Best regards,
Krzysztof


Samsung DTS ARM64 changes for v6.20, part two

Add DPU clock management unit nodes to Google GS101.

22 Jan 2026: clk: samsung: clock for v6.20/v7.0 [+ + +]
Samsung SoC clock drivers changes for v6.20

1. Add new clock controllers:
   - MFD for ExynosAutov920 SoC,
   - Display Process Unit (DPU) for Google GS101 SoC.

2. Implement automatic clock gating mode (HWACG) for Google GS101 SoC
   clock controllers (but also used on almost all modern Exynos SoC),
   opposed to currently used mode - manual mode.

Background on HW automatic clock gating from Peter Griffin in cover letter:

This series addresses an issue with Samsung Exynos based upstream clock driver
whereby the upstream clock driver sets all the clock gates into "manual mode"
(which uses a bit that is documented as reserved in the gate registers).

Another issue with the current "manual clock gating" approach upstream is
there are many bus/interconnect clocks whose relationships to the IPs
are not well documented or defined in the specs. When adding a new CMU until
now we have tried to label these clocks appropriately with CLK_IS_CRITICAL and
CLK_IGNORE_UNUSED but doing so is both error prone and time consuming. If
your lucky disabling a critical bus clock causes an immediate hang. Other
clocks however aren't so obvious and show up through random instability
some period of time later.

Fortunately each CMU (at least on newer Exynos) provides a "hardware
automatic clock gating" HWACG feature that is used by the downstream
Samsung clock drivers. Hardware automatic clock gating uses a hardware
interface between the CMU and IP to control all clocks required by the
IP. This interface is called Q-channel, and is part of the Arm AMBA low
power interface specification [1].

The advantage of using this Qchannel hardware interface for
enabling/disabling the clocks is that it takes care of all clocks
(including bus/interconnect) ones for the IP automatically thereby reducing
the dynamic power.

Whilst each clock component (GATE, MUX, DIV, QCH etc) has a HWACG enable
bit there are also some "global enable override" bits for the entire CMU in
the CMU_CONTROLLER_OPTION register.

This series makes use of those "global enable" override bits to enable auto
clock mode for the entire CMU and every component within it. Through
experimentation we can see that setting the "manual mode" reserved gate bit
on a particular gate register overides the global enable bits. So the code
is updated accordingly not to do that.

Auto clock mode has been implemented as a "opt in" by setting a new
auto_clock_gate flag in the CMU static data. The intention is existing
platforms in manual mode should not be effected by any of these changes.

If auto_clock_mode flag is set and the option_offset field is specified
then the global enable override bits will be written for the
CMU (to avoid relying on any prior bootstage configuration). Again if auto
mode is enabled the code no longer sets MANUAL and clears HWACG bits on
each gate register.

To ensure compatibility with older DTs (that specified an incorrect CMU
size) the resource size is checked and the driver falls back to manual
clock gate mode in such cases. As the CLK_IGNORE_UNUSED and CLK_IS_CRITICAL
flags are required for manual clock gate mode, the patch removing these
flags has been dropped from v2. I tested with an old DT and we successfully
switch to manual clock gate mode and the system correctly boots.

To have dynamic root clock gating (drcg) of bus components and memclk
enabled, it is required to set the bus_component_drcg and memclk registers
in the correspondingly named sysreg controller. If auto clock mode is
enabled the clock driver will now attempt to get the sysreg syscon via the
samsung,sysreg property (as used by other Exynos drivers upstream) and set
the registers accordingly. The suspend/resume code paths are also updated
to handle saving/restoring registers using a regmap. Note cmu_top is an
exception and does not have a corresondingly named sysreg_top.

As all clock gates are currently exposed in the gs101 drivers and DT, we
continue to register all of these gates in auto clock mode, but with some new
samsung_auto_clk_gate_ops. As clk enable and clk disable are now handled by
Q-channel interface the .enable and .disable implementations are
no-ops. However by using some CMU qchannel debug registers we can report
the current clock status (enabled or disabled) of every clock gate in the
system. This has the nice effect of still being able to dump the entire
clock tree from /sys/kernel/debug/clk/clk_summary and see a live view of
every auto clock in the system.

With the infrastructure in place, all the CMUs registered in clk-gs101 are
now updated to enable auto clock mode. From dumping
/sys/kernel/debug/clk/clk_summary it is possible to see that after enabling
auto clock mode approximately 305 clocks are enabled, and 299 are now
disabled. This number goes up and down a bit by 3-5 clocks just on a idle
system sat at a console.

With auto clock mode enabled it is now also possible to boot without the
clk_ignore_unused kernel command line property for the first time!

For future CMUs in gs101 I propose we continue to expose all gates, but
register the CMU in "auto mode". For new device drivers or updates to
existing dt bindings related to clocks to support gs101 I suggest we only
use the "obviously correct" clock(s). By "obviously correct" I mean a clock
has the IP name in the clock register name, but not try to deduce other
obsucurely named bus/interconnect clocks which will now all be handled
automatically. Note it is still possible to test whether the "obviously
correct" clock is indeed correct by putting the individual gate in manual
mode and disabling the clock (e.g. by using devmem).

22 Jan 2026: memory: drivers for v6.20/v7.0 [+ + +]
Memory controller drivers for v6.20

1. Mediatek SMI: Fix old struct device reference leaks during error
   paths and device unbinding.

2. Memory Devicetree bindings: refactor existing LPDDR bindings and add
   bindings for DDR4 SDRAM.  These will be used for example in
   stm32mp257f-ev1 DTS.

22 Jan 2026: [PULL REQUEST] Intel IOMMU updates for v6.20 [+ + +]
Hi Joerg,

 
21 Jan 2026: arm64: dts: ti: K3 updates for v6.20 [+ + +]
Hi,

This PR has the usual 75 char warnings around pinctrl usage and couple
of other places which I have chosen to ignore in favor of readability.

Additionally, commit 4df89cb826e0 ("dt-bindings: remoteproc: Add HSM
M4F core on TI K3 SoCs") is available in linux-next from remote-proc
tree[1], so ti,hsm-m4fss compatibile nodes were picked as a result.
This generates a checkpatch warning which should be cleared once
remote-proc tree is merged.

Finally, this tag also contains ti-k3-dt-fixes-for-v6.19[2] for
cleaner build which was merged to linus master post v6.19-rc1
(shortlog and diffstat in the pull request contain these patches as
well).

TI K3 device tree updates for v6.20

Generic Fixes/Cleanups:
- Minor whitespace cleanup and lowercase hex formatting for consistency
- Various DT schema warning fixes across multiple boards

SoC Specific Features and Fixes:
AM62P/J722S:
- Add HSM M4F node for hardware security module support

J784S4/J742S2/J721S2:
- Add HSM M4F node for hardware security module support
- Refactor watchdog instances for j784s4
- Move c71_3 node to appropriate order in device tree

Board Specific Fixes:
AM62:
- phycore-som: Add bootphase tags to cpsw_mac_syscon and phy_gmii_sel

AM62A:
- phycore-som: Add bootphase tags to cpsw_mac_syscon and phy_gmii_sel

AM62P:
- Verdin: Fix SD regulator startup delay

AM67A:
- Kontron SA67: Fix CMA node and SD card regulator configuration

AM69:
- Aquila: Change main_spi0/2 chip select to GPIO mode
- Aquila-clover: Change main_spi2 CS0 to GPIO mode
- Aquila-dev/clover: Fix USB-C Sink PDO configuration

21 Jan 2026: arm64: defconfig: TI K3 updates for v6.20 [+ + +]
Hi,

Please note that there is a minor merge conflict Vs xilinx tree as
reported in [1] with conflict resolution.

TI K3 defconfig updates for v6.20

- Enable configurations for Kontron SMARC-sAM67 module support

21 Jan 2026: soc: ti: Driver updates for v6.20 [+ + +]
Hi,

TI SoC driver updates for v6.20

Bug Fixes:
- pruss: Fix double free in pruss_clk_mux_setup()
- k3-socinfo: Fix regmap leak on probe failure
- k3-socinfo: Fix compile testing dependency issue

Cleanups:
- knav_dma/knav_qmss: Remove redundant ENOMEM printks and simplify error me=
ssages
- knav_dma/knav: Simplify code with scoped for each OF child loops
- ti_sci.h: Fix all kernel-doc warnings

21 Jan 2026: Immutable branch between I3C and IIO due for the v6.20 [+ + +]
Immutable branch between I3C and IIO due for the v6.20 merge window

 
20 Jan 2026: cpupower second update for Linux 6.20-rc1 [+ + +]
Hi Rafael,


Improve the installation procedure by making this systemd step optional
enabling users to disable installation of systemd's unit file.

diff is attached.

thanks,
-- Shuah

linux-cpupower-6.20-update-2

Improve the installation procedure by making this systemd step optional
enabling users to disable installation of systemd's unit file.

 
18 Jan 2026: clk: thead: Updates for v6.20 [+ + +]
Hi Stephen, sorry for not sending this sooner. There are not many
changes for this cycle.

Thanks,
Drew

T-HEAD clock changes for v6.20

There is just one set of changes for thead this cycle. They add support
for CPU scaling on the T-HEAD TH1520 by allowing the PLL rate used for
the CPU cluster to be reconfigured. The changes have been tested in
linux-next.

Signed-off-by: Drew Fustini <fustini@kernel.org>

18 Jan 2026: Apple SoC defconfig changes for v6.20 [+ + +]
Apple SoC defconfig update for 6.20

- Enable most drivers required for Apple Silicon as module inside
  defconfig
- Enable the power-domain driver when ARCH_APPLE and PM is selected
  since it's critical for booting these systems

18 Jan 2026: Apple SoC DT changes for v6.20 [+ + +]
Apple SoC DT update for 6.20

- Add all required nodes and connections for USB3 support. This is
  responsible for the majority of the diffstat. The dt-bindings for the
  Type-C PHY are scheduled to be sent via the PHY tree and are already
  in next.
- Add RTC subnodes to the System Management Controller
- Add chassis-type property for all M1 and M2 machines
- Fix some minor power management issues
- Add backlight nodes for the A9X-based iPad Pro

 
17 Jan 2026: pinctrl: samsung: drivers for v6.20/v7.0 [+ + +]
Samsung pinctrl drivers changes for v6.20

Add new pin controllers for Samsung Exynos9610 SoC.

17 Jan 2026: samsung: drivers pull for v6.20/v7.0 [+ + +]
Samsung SoC drivers for v6.20

1. Several improvements in Exynos ChipID Socinfo driver and finally
   adding Google GS101 SoC support.

2. Few cleanups from old code.

3. Documenting Axis Artpec-9 SoC PMU (Power Management Unit).

17 Jan 2026: TEE sysfs for 6.20 [+ + +]
attribute and implement support for OP-TEE.

Thanks,
Jens

TEE sysfs for 6.20

- Add an optional generic sysfs attribute for TEE revision
- Implement revision reporting for OP-TEE using both SMC and FF-A ABIs

17 Jan 2026: AMDTEE update for 6.20 [+ + +]
couple of functions in the AMDTEE driver in the TEE subsystem.

Thanks,
Jens

AMDTEE update for 6.20

Remove unused return variables

17 Jan 2026: TEE bus callbacks for 6.20 [+ + +]
the bus get rid of the struct device_driver callbacks .probe(),
.remove() and .shutdown().

The maintainers for the updated drivers using the TEE bus have agreed to
take these changes via my tree, with the exception of the maintainer for
drivers/firmware/broadcom/tee_bnxt_fw.c, who has remained silent during
the review. However, the changes in the drivers are straight forward so
it's better to take these patches too rather than excluding them.

Further details are in the last patch set:
https://lore.kernel.org/op-tee/cover.1765791463.git.u.kleine-koenig@baylibre.com/

Thanks,
Jens

TEE bus callback for 6.20

- Move from generic device_driver to TEE bus-specific callbacks
- Add module_tee_client_driver() and registration helpers to reduce
  boilerplate
- Convert several client drivers (TPM, KEYS, firmware, EFI, hwrng,
  and RTC)
- Update documentation and fix kernel-doc warnings

17 Jan 2026: OP-TEE update for 6.20 [+ + +]
subsystem, and for the OP-TEE mailing list.

Thanks,
Jens

OP-TEE update for 6.20

- A micro optimization by making a local array static const
- Update OP-TEE mailing list as moderated
- Update an outdated comment for cmd_alloc_suppl()

 
16 Jan 2026: aspeed: second batch of arm devicetree changes for 6.20 [+ + +]
aspeed: second batch of arm devicetree changes for 6.20

New platforms:

- Facebook Anacapa

  The Meta Anacapa BMC is the DC-SCM (Data Center Secure Control
  Module) controller for the Meta OCP Open Rack Wide (ORW) compute tray.
  This platform is a key component of the AMD Helios AI rack reference
  design system, designed for next-generation AI workloads.

  The BMC utilizes the Aspeed AST2600 SoC to manage the compute tray, which
  contains up to 4 AMD Instinct MI450 Series GPUs (connected via a Broadcom
  OCP NIC) and host CPUs. Its primary role is to provide essential system
  control, power sequencing, and telemetry reporting for the compute comple=
x
  via the OpenBMC software stack.

  For more detail on the AMD Helios reference design:

  https://www.amd.com/en/blogs/2025/amd-helios-ai-rack-built-on-metas-2025-=
ocp-design.html

- ASRock Rack ALTRAD8

  The ALTRAD8 BMC is an Aspeed AST2500-based BMC for the ASRock Rack
  ALTRAD8UD-1L2T and ALTRAD8UD2-1L2Q boards.

Significant changes:

- Switch IBM FSI CFAM nodes to use non-deprecated AT25 properties

Updated platforms:

- bletchley (Facebook): USB-C tweaks

16 Jan 2026: nuvoton: arm64 devicetree changes for 6.20 [+ + +]
Nuvoton arm64 devicetree changes for 6.20

Just the one patch from Rob adding the device_type property to the memory n=
ode
of the NPCM845 EVB DTS.

 
14 Jan 2026: clk: spacemit: Updates for v6.20 [+ + +]
Hi Stephen,

support for SpacemiT new K3 SoC, while doing this I've created an immutable
tag (spacemit-clkrst-v6.20-3) for reset driver in case it also needs to be
merged during same merge window, otherwise everything is normal.

Yixun Lan


RISC-V SpacemiT clock changes for 6.20

- Fix driver to build as module
- Refactor to extract common code
- Add clock support for new K3 SoC

 
12 Jan 2026: rv changes for v6.20 (for-next) [+ + +]
Steve,

rv changes for v6.20 (for-next)

Summary of changes:

- Refactor da_monitor to minimise macros

  Complete refactor of da_monitor.h to reduce reliance on macros
  generating functions. Use generic static functions and uses the
  preprocessor only when strictly necessary (e.g. for tracepoint
  handlers).
  The change essentially relies on functions with generic names (e.g.
  da_handle) instead of monitor-specific as well adding the need to
  define constant (e.g. MONITOR_NAME, MONITOR_TYPE) before including the
  header rather than calling macros that would define functions.
  Also adapt monitors and documentation accordingly.

- Cleanup DA code generation scripts

  Clean up functions in dot2c removing reimplementations of trivial
  library functions (__buff_to_string) and removing some other unused
  intermediate steps.

- Annotate functions with types in the rvgen python scripts

- Remove superfluous assignments and cleanup generated code

  The rvgen scripts generate a superfluous assignment to 0 for enum
  variables and don't add commas to the last elements, which is against
  the kernel coding standards. Change the generation process for a
  better compliance and slightly simpler logic.

- Remove superfluous declarations from generated code

  The monitor container source files contained a declaration and a
  definition for the rv_monitor variable. The former is superfluous and
  was removed.

- Fix reference to outdated documentation

  s/da_monitor_synthesis.rst/monitor_synthesis.rst in comment in
  da_monitor.h

 
8 Jan 2026: Linux Media vimc update for 6.20-rc1 [+ + +]
Hi Mauro,


Adds
     RGB/YUV input entity implementation
     support for V4L2_FIELD_ALTERNATE in vimc-sensor
     support for multiple RGB formats in vimc-debayer
     support custom bytesperline values in vimc-capture
     document RGB/YUV input entity

diff is attached.

thanks,
-- Shuah


linux-vimc-6.20-rc1

Adds
     RGB/YUV input entity implementation
     support for V4L2_FIELD_ALTERNATE in vimc-sensor
     support for multiple RGB formats in vimc-debayer
     support custom bytesperline values in vimc-capture
     document RGB/YUV input entity

 
7 Jan 2026: RTLA changes for v6.20 [+ + +]
Steven,

please pull the following changes for RTLA (more info in tag description).

Thanks,
Tomas

RTLA patches for v6.20

- Remove unused function declarations

Some functions were removed in recent code consolidation 6.18, but
their prototypes were not removed from headers. Remove them.

- Set stop threshold after enabling instances

Prefer recording samples without stopping on them on the start of
tracing to stopping on samples that are never recorded. This fixes
flakiness of some RTLA tests and unifies behavior of sample collection
between tracefs mode and BPF mode.

- Consolidate usage help message implementation

RTLA tools (osnoise-top, osnoise-hist, timerlat-top, timerlat-hist)
each implement usage help individually. Move common logic between
them into a new function to reduce code duplication.

- Add BPF actions feature

Add option --bpf-action to attach a BPF program (passed as filename of
its ELF representation) to be executed via BPF tail call at latency
threshold.

- Consolidate command line option parsing

Each RTLA tool implements the parsing of command line options
individually. Now that we have a common structure for parameters,
unify the parsing of those options common among all four tools into
one function.

- Deduplicage cgroup common code

Two functions in utils.c, setting cgroup for comm and setting cgroup
for pid, duplicate code for constructing the cgroup path. Extract it
to a new helper function.

- String and error handling fixes and cleanups

There were several instances of unsafe string and error handling that
could cause invalid memory access; fix them. Also, remove a few unused
headers, update .gitignore, and deduplicate code.

The tag was tested (make && make check) as well as pre-tested on top of
next-20260107. There are no known conflicts.

Signed-off-by: Tomas Glozar <tglozar@redhat.com>

 
6 Jan 2026: cpupower update for Linux 6.20-rc1 [+ + +]
Hi Rafael,


Fixes to miscellaneous problems in cpupower tool:

- idle_monitor: fix incorrect value logged after stop
- Fix inverted APERF capability check
- Use strcspn() to strip trailing newline
- Reset errno before strtoull()
- Show C0 in idle-info dump

diff is attached.

thanks,
-- Shuah

cpupower update for Linux 6.20-rc1

Fixes to miscellaneous problems in cpupower tool:

- idle_monitor: fix incorrect value logged after stop
- Fix inverted APERF capability check
- Use strcspn() to strip trailing newline
- Reset errno before strtoull()
- Show C0 in idle-info dump

 
05 Jan 2026: aspeed: first batch of devicetree changes for 6.20 [+ + +]
First batch of ASPEED Arm devicetree changes for 6.20

New platforms:

- NVIDIA MSX4 BMC

  The NVIDIA MSX4 HPM (host platform module) is a reference board for
  managing up to 8 PCIe connected NVIDIA GPUs via ConnectX-8 (CX8)
  SuperNICs. The BMC manages all GPUs and CX8s for both telemetry and
  firmware update via MCTP over USB. The host CPUs are dual socket Intel
  Granite Rapids processors.

  For more detail on this architecture:

  https://developer.nvidia.com/blog/nvidia-connectx-8-supernics-advance-ai-=
platform-architecture-with-pcie-gen6-connectivity/

Updated platforms:

- ast2600-evb (ASPEED): Various tidy-ups to address binding warnings
- bletchley (Meta): Watchdog fix, tidy-ups to address binding warnings
- clemente (Meta): HDD LED fix, GPIO line names, EEPROMs
- harma (Meta): fanboard presence GPIO
- santabarbara (Meta): IPMB, GPIO line names, additional IO expander