Linus Torvalds has just announced the release of Linux 6.15:
So this was delayed by a couple of hours because of a last-minute bug report resulting in one new feature being disabled at the eleventh hour, but 6.15 is out there now.
Apart from that final scramble, things looked pretty normal last week. Various random small fixes all over, with drivers as usual accounting for most of it. But we’ve got some bcachefs fixes, some core networking, and some mm fixes in there too. Nothing looks particularly scary.
And this obviously means that the merge window opens tomorrow as usual, and I see the usual people being proactive and having sent me their pull requests. It’s memorial day tomorrow here in the US, but like the USPS, “neither snow nor rain nor heat nor gloom of night” – nor memorial day – stops the merge window.
[ Actually, thinking back on the ice storm of last winter, sometimes snow *does* stop the merge window. But only temporarily ]
Anyway, please keep testing,
Linus
Linux 6.14 was released about two months ago with improved Wine performance with NT synchronization (NTSYNC) primitive driver, FUSE support for io_uring-based communication, amdxdna driver for AMD NPUs, uncached buffered I/Os, and many more changes. Let’s now see what the freshly-released Linux 6.15 has to offer, with a list of some notable changes, and a more in-depth look at Arm, RISC-V, and MIPS architectures often used in embedded devices.
Notable changes in Linux 6.15
Some potentially interesting changes in Linux 6.15 include:
- Support for larger 32-bit x86 systems with more than eight CPUs or more than 4GB of RAM has been removed because this type of hardware has been unavailable for a long time, and workloads needing more cores and memory have moved to 64-bit systems.
- Several changes to filesystem mounts
- New API to receive information about filesystem mount and unmount events based on the fanotify mechanism. It’s not properly documented yet, but the related commit has a few more details.
- The statmount() system call can now receive information about the ID mappings applied to a filesystem mount. See commit for details
- It is now possible to create an ID-mapped mount of another mount that is already ID-mapped, thus changing the mappings. You can read the commit message if you want to understand why and how it was implemented.
- Several mount-API changes to make it easier to assemble complex filesystem hierarchies without exposing partial results or parts of any filesystem that are meant to remain hidden.
- The FUSE subsystem can now enforce timeouts on requests, enabling recovery when the user-space server becomes unresponsive. FUSE can also now handle file names longer than 1,024 characters.
- The “fwctl” subsystem has been merged. It’s designed to pass command data directly through to complex firmware systems, and three drivers have been merged in Linux 6.15: one for CXL devices, one for mlx5 adapters, and one for AMD/Pensando distributed services cards. Check out the documentation for more details.
Arm architecture updates in Linux 6.15
As usual, it was a busy release for the Arm architecture:
- Allwinner
- Allwinner H616 – Extend clock driver to cover TCON clock and reset, enable GPU clock reparenting during rate change
- Allwinner A523/T527 – Add watchdog support, clock driver, pin control driver, NMI controller
- DTS changes
- Add Allwinner H616 (with Mali-G31 MP2 GPU) support to Arm Mali Bifrost GPU driver
- Enable USB and LED on Anbernic RG35XX
- Fix reboot GPIO detection logic on Anbernic RG35XX
- Disable (non-existent) battery thermistor on Anbernic RG35XX
- Add CPU OPP table for A100
- New Device – NetCube Systems Kumquat board based on Allwinner V3s SoC
- Rockchip
- Rockchip RK3588J – (CPU frequency) is now limited in the same way as the vendor kernel to allow room for the industrial-grade temperature ranges.
- PHY driver – Rockchip RK3576 hdptx, RK3562 naneng-combo support
- Clock driver – Added support for Rockchip RK3528 and RK3562
- Pin control – Added support for RK3528 subdriver
- I2C driver – Add support for RK3562
- PCIe controller driver
- Rockchip – Describe RK3568 and RK3588 BARs as Resizable, not Fixed
- Synopsys – Add Rockchip support for DWC debugfs features
- iommu – Driver adjustments for recent DT probing changes
- SPI driver – Added Rockchip RK3562
- ASoC – Added Rockchip RK3588 S/PDIF support
- IRQ driver – A workaround for Rockchip 3568002 erratum in the GIC-V3 driver to ensure that the addressing is limited to the lower 32-bit of the physical address space.
- Network – Add initial support for the Ethernet controllers found in RK3528 and initial support to power up/down the integrated PHY.
- arm64 defconfig
- Enable Rockchip UFS host driver
- Enable Synopsys HDMI receiver (HDMI input)
- New devices
- Ariaboard Photonicat (RK3568 router)
- Firefly ROC-RK3576-PC (RK3576 SBC)
- Radxa ROCK 4D (RK3576 SBC)
- Orange Pi 5 Ultra board (RK3588)
- MNT Reform 2 laptop (RK3588)
- Amlogic
- Pinctrl
- Add – Amlogic A4 subdriver
- Define the pull-up/down resistor value as 60 kOhm
- Clock driver
- Fix mmc A clock gate definition on Amlogic G12 SoCs
- Properly set CPU cluster A on Amlogic G12B
- Fix 32k clock definition on Amlogic GXBB
- Correct documentation typo on Amlogic A1
- ARM DT changes – Switch to the new PWM controller bindings
- ARM64 DT changes for Linux 6.15
- Switch to the new PWM controller binding
- Add gpio_intc node for Amlogic A4 & A5 SoCs
- New devices – N/A
- Pinctrl
- Samsung
- PHY driver
- Added Samsung MIPI D-/C-PHY driver, Exynos Auto v920 UFS PHY driver
- Samsung USB3 Type-C lane orientation detection and configuration for Google GS101
- Clock driver
- Samsung Exynos 2200 – Alive, CMGP, HSI, PERIC/PERIS, TOP, UFS, and VFS
- Samsung Exynos 7870 – Alive, MIF, DISP AUD, FSYS, G3D, ISP, MFC, and PERI
- I2C driver – Add support for Samsung Exynos 7870
- Pinctrl driver
- Add pin controller drivers for newly usptreamed Samsung Exynos 2200 and Exynos 7870.
- Correct filter configuration offset of some of Google GS101 SoC pin banks, which later is supposed to be used during system suspend/resume.
- SoC Drivers
- Add support for Exynos USI v1 serial engines. Drivers already support newer IP blocks – USI v2 – present in Exynos 850 and newer. A bit older ARM64 designs, like the Exynos 8895, use older USI v1 block.
- Add Exynos ACPM (Alive Clock and Power Manager) protocol driver for Google GS101 SoC. ACPM protocol allows communication between the power management firmware and other embedded processors.
- Exynos2200: Add PMU, ChipID and SYSREG Devicetree bindings.
- Exynos7870: Add PMU and ChipID Devicetree bindings.
- Various cleanups.
- DTS ARM changes – N/A
- Samsung DTS ARM64 changes
- Samsung Exynos 7870 added to Arm Mali Midgard GPU driver
- Google GS101
- Disable GSA core pinctrl because its registers are not available for normal world.
- Add APM (Active Power Management) mailbox and the ACPM firmware nodes.
- Add new boards: Google Pixel 6 Pro (Raven).
- Enable framebuffer and reboot-mode.
- Exynos 990 – Add PERIS clock controller, MCT timer
- Exynos 8895:
- Define all remaining serial engine (USI) and syscon nodes, add MMC.
- Enable microSD and touchsreen on Samsung Galaxy S8 (dreamlte).
- Exynos Auto v920 – Add UFS and CPU cache information.
- Various cleanups.
- Defconfig changes – N/A
- New Device – Google Pixel 6 Pro
- PHY driver
- Qualcomm
- PHY Drivers
- Added Qualcomm X1P42100 PCIe Gen4x4, QCS615 qmp usbc, PCIe UNIPHY 28LP driver, and SM8750 QMP UFS PHY
- Qualcomm support for dual lane PHY, support for QCS8300 SoC
- Clock drivers
- Support associating GDSCs with multiple power domains
- Add Qualcomm IPQ9574 NSS clk driver
- Add Qualcomm QCS8300 GPU and video clk drivers
- Add Qualcomm SDM429 RPM clks
- Add Qualcomm QCM6490 LPASS (low power audio) resets
- Fix halt check of voted branch clks
- Properly park Qualcomm SM8250 camera clks
- Add SDCC rests to Qualcomm SDM660
- Fix Qualcomm SM8750 regmap to skip protected registers
- Retain state for Qualcomm’s SM8650 USB hardware when powered down
- Remove GPU AHB and dispaly XO clks from Qualcomm X Elite clk driver
- Update UART frequency table on Qualcomm IPQ5424 to fix flow control
- Allow Qualcomm IPQ5018 GCC driver to be compiled on arm32
- remoteproc – Add support for managing the modem remoteprocessor on the Qualcomm MSM8226, MSM8926, and SM8750 platforms
- Qualcomm PCIe controller driver
- Add qcom,pcie-ipq5332 binding
- Add qcom i.MX8QM and i.MX8QXP/DXP optional DMA interrupt (I didn’t know NXP was using a Qualcomm PCIe implemented?)
- Add optional dma-coherent DT property for Qualcomm SA8775P
- Make DT iommu property required for SA8775P and prohibited for SDX55
- Add DT IOMMU and DMA-related properties for Qualcomm SM8450
- Add endpoint DT properties for SAR2130P and enable endpoint mode in driver
- Describe endpoint BAR0 and BAR2 as 64-bit only and BAR1 and BAR3 as RESERVED
- Media – Added Qualcomm iris video decoder driver
- iommu – MMUv2 devicetree binding updates for Qualcomm implementations (QCS8300 GPU and MSM8937)
- WiFi – ath12k: continued work on MLO
- Driver updates
- Improve the client interface for the Qualcomm ICE driver to avoid leaking references, including fixing the client drivers to call the new function.
- Adopt str_on_off() helper in AOSS driver and mark non-global servreg QMI element info array in the PDR driver static.
- Introduce Devicetree binding for providing board-specific firmware-name for the GENI serial engine block.
- Add SDM630/636 support in pd-mapper.
- Clean up and fix error handling in the SSC block bus driver.
- Add missing msm8916-acc compatible to resolve a number of Devicetree validation errors.
- PHY Drivers
-
- Arm64 defconfig updates for Linux 6.15
- Explicitly enable the DRM_DISPLAY_CONNECTOR module, as this is used by a variety of boards.
- Enable retimer and redriver drivers used in the USB configuration of a variety of Qualcomm X Elite-based devices.
- Enable the NSS clock controller driver for IPQ9574, the new Iris video encoder/decoder driver and its clock controller, as well as the QCM2290 GPU clock controller.
- New devices – Huawei Matebook E Go LTE (gaokun2), E Go, and E Go 2023 (gaokun3)
- Arm64 defconfig updates for Linux 6.15
- MediaTek
- Add Mediatek MT8370 (Genio 510) support, a minor variation of MT8390 (Genio 700) with fewer CPU and GPU cores
- MFD – MediaTek MT6359 – Added mfd_cell for mt6359-accdet to allow its driver to probe.
- PCIe Gen3 controller driver:
- Remove leftover mac_reset assert for Airoha EN7581 SoC
- Add EN7581 PBUS controller ‘mediatek,pbus-csr’ DT property and program host bridge memory aperture to this syscon node
- Network – Support phylink managed EEE
- WiFi – MediaTek (mt76): preparation for mt7996 Multi-Link Operation (MLO) support
- Driver updates for Linux 6.15
- Add entries for new and missing SoCs in the MediaTek SoCInfo driver (MT8370AV/AZA, MT8390AV/AZA) and an extra entry for a new revision of the MT8395AV/ZA SoC.
- The MediaTek SoCInfo driver also gets its SoC attribute information restructured: now the family, machine, and soc_id fields are correctly populated.
- MT8188 gains support for the secondary Display Parallel Interface used for HDMI, and for the Display Stream Compression component routing through mmsys and mutex tables.
- All of the MMSYS drivers get an important overhaul: it was found that, in multiple cases, the tables contained wrong mask/value pairs, hence those were doing either nothing or breaking routings. The mmsys tables were converted to use a newly introduced macro that will perform a compile time check, making sure that each table entry’s value fits in the declared register mask.
- Thanks to a new macro, multiple MediaTek SoCs got multiple fixes in their MMSYS tables, addressing issues that were severely impacting the functionality of the display controller pipelines.
- ARM64 DTS updates
- SoCs
- Airoha EN7581 gets support for its SCU clock controller, SPI NAND, hardware RNG, pinctrl, and i2c controllers;
- MediaTek MT8365 SoC gets support for all of its Display Controller components;
- MT8188 gets support for more Display Controller components (DSC and MERGE), for the tertiary MSDC (eMMC/SD/SDIO) controller, and for the MTU3 USB DRD controllers;
- MT8195 and MT8188 both get migrated to the new OF Graph used for defining a pipeline for the Display Controller components (this was previously hardcoded per-board in the drm driver)
- Boards
- Google Kukui (MT8183) is switched to Elan touchscreen driver instead of hid-over-i2c to fix probe failures in some cases;
- Google Cherry (MT8195) and Geralt (MT8188) Chromebooks get migrated to using OF Graph for defining their board specific part of the display pipeline;
- MediaTek Genio 350 (mt8365) EVK board adds support for HDMI output through the iTE IT66121 chip, and for DSI output to the Startek KD070FHFID015 display;
- MediaTek Genio 700 (and 510) EVKs get support for their integrated dual Digital Microphones, for their RichTek RT1715 USB Type-C Controller with USB-PD capability, the iTE IT5205 Alternate Mode
- Passive MUX (USB3.1/DP1.4), and for USB Gadget/Host switching through the MTU3 DRD Controller, other than for USB in general;
- MediaTek Genio 1200 EVK gets support for its MediaTek MT6360 PMIC integrated Type-C Controller, and the IT5205 MUX;
- Radxa NIO-12L gets its DSI display pipeline preconfigured, and also the introduction of a devicetree overlay for the official Radxa 8HD DSI panel, enabling display output over DSI.
- Various fixes and cleanups
- SoCs
- New device – MediaTek Genio 510 EVK board (aka MT8370 EVK board)
- Other new Arm hardware platforms and SoCs
- AMD – Versal NET SoC with Cortex-A78 CPUs and FPGA fabric
- Apple – T2 baseboard management controller on earlier Intel CPU-based Macs
- Arm – Morello reference platform with experimental CHERI support, which requires a modified kernel.
- Google – Google Pixel Pro 6 phone based on gs101 (Tensor)
- NXP
- 11x distinct board variants from Toradex and one from Variscite, all based on i.MX6
- 3x additional variants of the i.MX8MP based “Skov” board
- A second variant of the i.MX95 EVK board
- Renesas – Two boards based on Renesas SoCs
- STMicro
- STM32MP25, MP211, MP213, MP215, MP231, MP233 and MP235
- 3x boards based on 32-bit STM32MP1
- Raspberry Pi-specific changes
- IRQ
- Enable irqchip/irq-bcm2712-mip driver when ARCH_BCM2835 is enabled
- Fix BCM2712 irqchip driver Kconfig dependencies required on the Raspberry Pi 5
- spi driver – Restore native CS probing when pinctrl-bcm2835 is absent
- network – phy: microchip: force IRQ polling mode for lan88xx. It’s to prevent the lan78xx driver from getting stuck in an interrupt loop while bringing the device up and flooding the kernel log with messages like:
1lan78xx 2-3:1.0 enp1s0u3: kevent 4 may have been dropped
- IRQ
Linux 6.15 changes for RISC-V
The RISC-C architecture had its fair share of changes too:
- The RISC-V architecture has gained support for the BFloat16 floating-point extension, the Zaamo and Zalrsc extensions, and Zicbom, Zicntr, and Zihpm extensions
- The sub-architecture selection Kconfig system has been cleaned up, the documentation has been improved, and various detections have been fixed
- The vector-related extensions dependencies are now validated when parsing from device tree and in the DT bindings
- Misaligned access probing can be overridden via a kernel command-line parameter, along with various fixes to misalign access handling
- Support for relocatable !MMU kernels builds
- Support for hpge pfnmaps, which should improve TLB utilization
- Support for runtime constants, which improves the d_hash() performance
- Support for bfloat16, Zicbom, Zaamo, Zalrsc, Zicntr,
Various fixes- We were missing a secondary mmu notifier call when flushing the tlb which is required for IOMMU
- Fix ftrace panics by saving the registers as expected by ftrace
- Fix a couple of stimecmp usage related to cpu hotplug
- purgatory_start is now aligned as per the STVEC requirements
- A fix for hugetlb when calculating the size of non-present PTEs
- Alibaba T-Head
- pmdomain – Add power-domain driver for TH1520
- firmware – Add AON firmware protocol driver. Note: the T-Head TH1520 SoC uses an E902 co-processor running Always-On (AON) firmware to manage power, clock, and other system resources.
- Microchip – DTS – update pcie reg properties to new format
- SiFive
- Serial – lock port in startup()/shutdown() callbacks
- Timer – Add SiFive CLINT2
- perf
- Rename U74 to “Bullet”
- Add SiFive P550, P650, abd “Bullet” events
- Sophgo
- Add Sophgo SPI NOR controller driver
- SG2042
- Enable SPI controller in device tree
- IRQ – new driver for the MSI interrupt controller
- Add PWM support
- Pinctrl – Sophgo RISC-V SG2042 and SG2044 subdrivers
- SpacemIT
- SpacemIT K1 – Adds I2C driver
- Added Jupiper mini-ITX motherboard with SpacemiT K1/M1
- StarFive – JH7110 – DTS: pciephy0 USB 3.0 configuration registers
MIPS updates
There are still some MIPS updates, but the list is short:
- Add support for multi-cluster configuration
- Add quirks for enabling multi-cluster mode on EyeQ6
- Add DTS clocks for ralink (notably omega2+ and vocore2 boards)
- Cleanup Realtek DTS
- Other cleanups and fixes
For even more information, the Linux 6.15 changelog was generated with commit messages only using the command git log v6.14..v6.15-rc7 --stat
. You can also check out Kernelnewbies for another view of the Linux 6.15 changes.

Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress. We also use affiliate links in articles to earn commissions if you make a purchase after clicking on those links.