Linus Torvalds has just released Linux 7.1 on LKML:
So it’s only Sunday morning back home, but it’s Sunday afternoon where I am right now, so I’m doing the 7.1 release at the regular time – just not in the regular timezone.
This obviously means that the merge window opens tomorrow, but I’ll be in yet another timezone by then, so timing will all be a bit irregular. Normally I try to front-load the merge window and do as much as possible the first few days – this time I’m not sure that will work out with my laptop and a couple of long flights without internet, but I’ve made sure that I have fetched the early pull requests (thank you – you know who you are), so I will be able to do some of it off-line.
Anyway, possible slight hiccups in the merge window aside, the news today is 7.1. Below is the shortlog for the last week – nothing particularly interesting or scary stands out, which is as it should be. It’s mostly various smaller driver updates (gpu, networking, sound, misc) with some networking and trace tooling fixes. And random minor changes elsewhere.
Please do keep testing despite the release, and apologies in advance if my merge window latency is going to be a bit random the next few days. I briefly onsidered just extending the release for a week, but decided it wasn’t really worth it. I may come to regret that decision,
Linus
Released about two months ago, Linux 7.0 introduced AI coding assistants documentation, implemented a new generic API for file IO error reporting, the second phase of improved swapping performance with swap tables, and Rust got a rank upgrade of sorts, since it is no longer experimental. Now that Linux 7.1 has been released, it’s time to list some newsworthy changes and check out the embedded-focused Arm, RISC-V, and MIPS architectures in more detail.
Interesting changes in Linux 7.1
Some notable updates in Linux 7.1 include:
- New version of the NTFS filesystem (again) – I still remember NTFS being a pain on Arm in the mid 2000’s, as we had to use a fuse-based version (NTFS-3G) to get write support, but with limited performance. Since then things have improved with projects like ntfs3, but apparently not enough, as there’s now a “completely rewritten version” with full support for writes, a conversion to use iomap internally, and a promise of more active maintenance.
- Security enhancements – Linux 7.1 introduces the Landlock security module for Unix domain sockets, stricter default permission overrides for /proc/PID/mem, security-module hooks for overlay filesystems, and the libcrypto library has gained support for a range of new algorithms.
- The high-resolution-timer core has been rewritten for better performance; in practical terms, the scheduler can now use high-resolution timers with no performance loss relative to a scheduler using coarse timers.
- Removal of the swap map after several kernel releases implemented various swap improvements. The only user-visible changes should be better performance and reduced memory usage by the swap subsystem. See details on LWN.
- Support has been removed for some old and unused 486 subarchitectures (M486, M486SX, and ELAN)
Arm changes in Linux 7.1
As usual, there were plenty of changes to the Arm architecture:
- Arm 9.6 LSUI feature adds instructions allowing the kernel to access user-space memory without disabling the “privileged access never” mode first. Linux 7.1 uses the new instructions to accelerate futex operations.
- Support for Memory Partitioning and Monitoring (MPAM) feature has been improved and exposed to user space. Check out the documentation for more information.
- Allwinner
- MTD – SunXi driver support for new versions of the Allwinner NAND controller.
- Power Management – Add support for the Allwinner A733 power domains
- Clock driver – Support for the r-spi module clock in the A523 PRCM block,
- Device tree changes for Linux 7.1
- Allwinner A523 SoC family has LED controller enabled.
- Avaota A1 board has SPI NAND enabled.
- UART DMA channels added for A64 and H6. Standard resolution MMIO timer added for H616. This timer can be used as a broadcast timer for wakeup from idle states.
- New devices – TaiqiCat (TQC) A01 set-top-box based on Allwinner H6
- Rockchip
- Added support for Rockchip RV1103B 32-bit single-core vision processor (clock, pinctrl, etc.)
- Clock – Plug an OF node leak in Rockchip rk808 clk driver
- PCIe controller driver
- Add tracepoints for PCIe controller LTSSM transitions and link rate changes
- Trace LTSSM events collected by the dw-rockchip debug FIFO
- New devices
- Khadas Edge 2L (RK3576)
- Rockchip RK3576 EVB2 board
- OneThing Edge Cube (OEC) based on RK3566
- Amlogic
- Pinctrl – Fix a deadlock in the Amlogic driver, caused by playing around in sysfs
- ARM device tree – drop iio-hwmon in favour of generic-adc-thermal
- ARM64 device tree for Linux 7.1
- Fix Ethernet PHY interrupt number for P230 reference board
- Add missing cache information to cpu0 for Amlogic AXG
- Fix Khadas VIM4 board model name
- Fix GIC register ranges for Amlogic T7
- Fix Khadas VIM4 memory layout for 8GB RAM
- Drop CPU masks from GICv3 PPI interrupts for Amlogic S6
- New device – N/A
- Samsung
- Clock
- Axis ARTPEC-9: Add new PLL clocks and new drivers for eight clock controllers on the SoC
- Exynos Auto v920: Add G3D (GPU) clock controller
Exynos 850: Define missing clock for the APM mailbox
- Fix booting of secondary CPU on Exynos5250 based Google Manta board – difference in TZ firmware.
- SoC Drivers
- Few cleanups in ACPM firmware drivers, used on Google GS101 and newer Samsung Exynos SoCs. Notable change is removing ‘const’ in ‘struct acpm_handle’ pointers, because even though the code does not modify pointed data, it immediately drops the const via cast. Also code is not logically readable when a reference getters/putters (e.g. acpm_handle_put()) take a pointer to const, because the meaning of “get” and “put” implies changing the memory, even if that changeable field is outside of pointed data.
- DTS ARM changes – Few cleanups
- Samsung DTS ARM64 changes for Linux 7.1
- Add initial support for Axis ARTPEC-9 SoC and Alfred board using it. Just like ARTPEC-8, this is a derivative of Samsung Exynos SoC made for Axis, sharing most or all of core SoC blocks with Samsung designs.
- Google GS101 Pixel phone: describe all PMIC regulators and Maxim fuel-gauge.
- Exynos Auto v920: add G3D (GPU) clock controller (CMU).
- Defconfig changes – N/A
- New Devices
- Exynos 5250 based Google Manta (Nexus 10)
- Exynos 7870 based Samsung Galaxy J7 (2016) and Samsung Galaxy J5 (2017).
- Clock
- Qualcomm
- New SoCs
- Qualcomm Glymur is a compute SoC using 18 Oryon-2 CPU cores (Snapdragon X2 Elite, SKU: X2E-96-100, X2E-88-100)
- Qualcomm Mahua is a variant of Glymur with only 12 CPU cores (SKU: X2E-80-100), but largely identical.
- Qualcomm Eliza is an embedded platform for mobile phone (SM7750) and IoT (QC7790S/M) workloads
- Qualcomm IPQ5210 is a wireless networking SoC using Cortex-A53 cores
- Clock
- The parking of shared RCGs during registration parks the MDP source clock, disabling display until the msm display driver successfully initializes the hardware again. Mark this clock on Makena and Hamoa as “no_init_park” to retain a working recovery console, etc.
- Global TCSR, RPMh, and display clock controller for the Qualcomm Eliza platform
- TCSR, the multiple global, and the RPMh clock controller for the Qualcomm Nord platform
- GPU clock controller for Qualcomm SM8750
- Video and GPU clock controller for Qualcomm Glymur
- Global clock controller for Qualcomm IPQ5210
- Pinctrl
- Qualcomm Eliza and Hawi families TLMM pin controllers
- Qualcomm SDM670 and Milos family LPASS LPI pin controllers
- Qualcomm IPQ5210 pin controller
- remoteproc
- Introduce support for more than 10 entries in the Qualcomm minidump implementation.
- Add audio DSP remoteproc support for the Qualcomm Eliza platform. Add modem remoteproc support for the Qualcomm MDM9607, MSM8917, MSM8937, and MSM8940 platforms.
- Add a list of Qualcomm QMI service ids to the QMI header file, in order to avoid sprinkling them across the various drivers using them. Migrate sysmon to use this constant.
- PHY – Qualcomm Eliza QMP UFS PHY
- iommu – MMU-500 device-tree binding additions for Qualcomm Eliza & Hawi SoCs
- PCIe controller driver – Advertise ‘Hot-Plug Capable’ and set ‘No Command Completed Support’ since Qcom Root Ports support hotplug events like DL_Up/Down and can accept writes to Slot Control without delays between writes.
- WiFi (ath12k)
- Monitor mode support on IPQ5332
- Nasic hwmon temperature reporting
- Support IPQ5424
- Driver updates
- Add ECS LIVA QC710, Glymur CRD, Mahua CRD, Purwa IoT EVK, and Asus Vivobook to the QSEECOM allow-list, to enable UEFI variable access
through uefisecapp. - Register the Gunyah watchdog device if the SCM driver finds itself running under Gunyah. Clean up some locking using guards.
- Handle possible cases where AOSS cooling state is given a non-boolean state.
- Replace LLCC per-slice activation bitmap with reference counting. Also add SDM670 support.
- Improve probe deferral handling in the OCMEM driver.
- Add Milos, QCS615, Eliza, Glymur, and Mahua support to the pd-mapper.
- Add support for SoCCP-based pmic-glink, as found in Glymur and Kaanapali.
- Add common QMI service ids to the main qmi header file, to avoid spreading these constants in various drivers.
- Add support for version 2 of SMP2P and implement the irqchip state reading support.
- Add CQ7790, SA8650P, SM7450, SM7450P, and IPQ5210 SoC and the PM7550BA PMIC identifiers to the socinfo driver.
- Add Eliza and Mahua support to the UBWC driver, introduce helpers for drivers to read out min_acc length and other programmable values, and disable bank swizzling for Glymur.
- Simplify the logic related to allocation of NV download request in the WCNSS control driver.
- Add ECS LIVA QC710, Glymur CRD, Mahua CRD, Purwa IoT EVK, and Asus Vivobook to the QSEECOM allow-list, to enable UEFI variable access
- Arm64 device tree updates
-
Snapdragon X Elite – Introduce UFS support and flatten the DWC3 node on Hamoa. Enable UFS, SDC, DisplayPort audio playback, and an EL2 overlay for the Hamoa IoT EVK. Enable DisplayPort audio on the Hamoa CRD and add HDMI support on the ASUS Zenbook A14. Reduce the duplication of thermal sensors across Purwa and Hamoa.
- IPQ5332/IPQ9574 – Add the QPIC SPI NAND controller. Describe and enable the eMMC controller on IPQ9574.
- Snapdragon 8 Elite Gen 5 (SM8850 and variants) – Add display, audio/compute remoteprocs, QUP devices, thermal sensors, display, and CoreSight on the Kaanapali platform. Enable audio, compute display, PMIC, Bluetooth, and WiFi on the MTP. Describe PMIC, audio, and compute remoteprocs on QRD.
- Snapdragon Ride (SA8775P) – Add role-switching support for the tertiary USB controller on Lemans. Enable the tertiary USB controller and the GPIO expander on the Lemans EVK, and add an overlay for the IFP Mezzanine.
- Snapdragon 7s Gen 3 (SM7635) – Add UFS, camera control interface, audio GPR, and FastRPC support on Milos. Enable UFS, camera EEPROMs, and hall effect sensor on the Fairphone FP6.
- Dragonwing IQ8 – Add camera control interface and fix a variety of things on the Monaco platform, add missing FastRPC compute banks. Add eMMC support, describe the DisplayPort bridge and GPIO expander on the Monaco EVK. Add overlay for EVK camera and the IFP mezzanine. Describe DSI on the Monaco SoC and enable Bluetooth, WiFi, and DSI/DP bridge on the Ride board.
- Add touchscreen to the Xiaomi Redmi 4A, 5A, and Go, and fix the board-id on the 4A.
- Add the ambient light and proximity sensor on the Asus ZenFone 2 Laser/Selfie.
- QCS6490/QCM6490 – On Kodiak-based boards, enable the Ethernet and USB Type-A ports on the Rb3 Gen2, correct the LT9611 routing on the RubikPi3, add Bluetooth on the IDP, and add front camera support on the Fairphone FP5. Introduce an overlay for the Rb3 Gen2 Industrial Mezzanine.
- QRB2210/QRB4210 – Describe the WiFi/BT combo chip properly on the QRB2210 RB1 and QRB4210. Describe the DSI/DP brigde on the Arduino Uno Q.
- SC8280XP – Introduce DSI display support
- Add LLCC on SDM670 and another SPI controller on SDM630.
- SDM845 – Properly describe the WiFi/BT chip on a variety of devices. Introduce the “alert slider” on the OnePlus 6 and OnePlus 6T devices.
- SM6125 – Introduce the PRNG, describe the debug UART, and add the MDSS core reset. Enable the debug UART and fix various issues on the Xiaomi
Redmi Note 8. Describe the touchscreen on the Xiaomi Mi A3. - Properly describe the WiFi/BT combo chip in SM8150 HDK.
- SM8550 – Improve the EAS properties, in addition to various other fixes. Introduce a new overlay for the HDK display card.
- Introduce various smaller fixes across SM8450 and SM8650.
- SM9750 – Add display support and enable DSI and DisplayPort on the MTP. Also add tsens and thermal-zones.
- QCS615 – Add ETR devices, flatten the USB controller node, and mark USB controllers as wakeup-capable devices, on Talos. Properly describe the IPA IMEM slice on a variety of platforms.
- Drop redundant non-controllable regulator definitions from a variety of boards.
- Drop redundant VSYNC pin state definition from various platforms.
-
- Arm32 device tree updates
- Qualcomm APQ8084 is incomplete and hasn’t seen functional contributions since 2016, so drop the platform (for now?). Also drop a number of unused IPQ-related dtsi files.
- Clean up the RPM bus clocks in MSM8974 interconnect nodes.
- Arm64 defconfig updates for Linux 7.1
- Enable base drivers for booting boards based on Kaanapali, Glymur, Eliza, SM8750, and IPQ5210 SoCs.
- Enable the Milos LPASS LPI driver. Enable the Qualcomm WCD937x headphone codec driver, used on QCM6490 boards.
- Enable the QCOMTEE driver, to support the interface found in various Qualcomm SoCs.
- Enable Ethernet and analog codecs used on the Arduino Ventuno Q.
- Enable the Lontium LT8713sx driver, used for the Monaco EVK board.
- Enable the PCI pwrctrl generic driver used in a few different Qualcomm-based boards with USB controllers on PCI buses.
- New Devices
- Redmi 4A, Redmi Go, Redmi Note 8T
- Arduino Monza (Arduino VENTUNO Q) SBC
- Purwa EVK
- ECS Liva QCS710 mini PC
- Additional variants of the DB820c Ayaneo Pocket S2
- Thundercomm AI Mini PC G1
- Samsung Galaxy Core Prime LTE Verizon Wireless
- Wiko Pulp 4G
- The Purwa-variant of ASUS Vivobook S15
- The Eliza MTP, and the Glymur and Mahua CRDs.
- New SoCs
- MediaTek
- Pinctrl – Implement the GPIO .get_direction() callback in the Mediatek driver to rid dmesg warnings
- PHY – Added Mediatek mt8167 dsi-phy
- WiFi (mt76):
- mt7996/mt7925 MLO fixes/improvements
- mt7996 NPU support (HW eth/wifi traffic offload)
- Bluetooth
- Support MT6639 (MT7927)
- Support MT7902 SDIO
- DRM
- mtk_dsi: enable hs clock during pre-enable
- Remove all conflicting aperture devices during probe
- Add support for mt8167 display blocks
- MFD – Correct the hardware CIDs for the MT6328, MT6331, and MT6332 PMICs to allow proper driver binding
- MediaTek PCIe Gen3 controller driver
- Use dev_err_probe() to simplify error paths and make deferred probe messages visible in /sys/kernel/debug/devices_deferred
- Power off device if setup fails
- Integrate new pwrctrl API to enable power control for WiFi/BT adapters on mainboard or in PCIe or M.2 slots
- ARM32 updates – Fix a dtbs_check validation error by changing the fallback compatible of the efuse node to the correct one in MT7623.
- ARM64 device tree updates for Linux 7.1
- The gpio-ranges pin was fixed in MT6795, MT7981B, and MT7986A SoCs, as the very last GPIO was unusable; Even though anyway unused, this fixes the hardware description.
- Model string fixes for Banana Pi BPI-R4 Pro 4E/8X: now the correct model is shown.
- The MT6359 PMIC gets disambiguation for two default regulator names, mainly fixing issues seen on U-Boot, but also making the regulators visually distinguishable in a summary…!
- Aliases for eMMC/SD controllers added in MT8365 EVK board, MT8395 Radxa NIO-12L and Genio 1200 for consistency
- Fixes to the MediaTek AUDSYS device tree binding
- MT8195 Cherry Chromebooks get their WiFi on PCI Express and Bluetooth on USB described with the proper power supplies now tied to the correct devices (USB VBUS and PCIE3v3): this is now described almost perfectly, or at least links the right resources in the right places. This is also done as a preparation for when the M.2 E-Key connector binding will be upstreamed.
- MT8195 Cherry Dojo gets its M.2 M-Key slot correctly described with the new pcie-m2-m-connector binding.
- Defconfig updates – N/A
- New devices – N/A
- Other new Arm hardware platforms and SoCs
- Arm
- Zena virtual platform in FVP using Cortex-A720AE cores, with additional versions planned to be merged in the future.
- ARM corstone-1000-a320 is a reference platform for IOT, using low-end Cortex-A320 cores
- Aspeed – Two more Aspeed BMC-based boards
- Axis – ARTPEC-9 Cortex-A55 cores embedded SoC using the Samsung SoC platform
- Microchip – LAN9691 updated 64-bit variant of the arm32 lan966x series of networking SoCs
- NXP
- S32N79 automotive Cortex-A78AE (8x) + Cortex-R52 (12x) SoC, a significant upgrade from the older S32V and S32G series
- 22x additional industrial/embedded boards using 64-bit NXP i.MX8M or i.MX9 SoCs
- Renesas – RZ/G3L (r9a08g046) is an industrial embedded chip using Cortex-A55 cores, similar to the already supported G3E and G3S variants
- Texas Instruments – Four variants of the Toradex Verdin using TI AM62
- Arm
- Raspberry Pi-specific changes
- Add the V3D DT node to the 2712 (Raspberry Pi 5) SoC
- Add the I2C controller, CSI (camera), ISP (image signal processor), fix the pinctrl node, and update the UART10 interrupt for the RP1 sister chip to the 2712 (Raspberry Pi 5)
- Move the firmware and GPU to the root level to fix DTC warnings
- Enable EEE for Raspberry Pi RP1
- gpiolib: handle gpio-hogs only once – Fixes a behaviour change that breaks boot on Raspberry Pi 5 when using the firmware-supplied device tree
RISC-V updates in Linux 7.1
RISC-V support keeps progressing steadily:
- Add Kunit correctness testing and microbenchmarks for strlen(), strnlen(), and strrchr()
- Add RISC-V-specific strnlen(), strchr(), strrchr() implementations
- Add hardware error exception handling
- Clean up and optimize our unaligned access probe code
- Enable HAVE_IOREMAP_PROT to be able to use generic_access_phys()
- Remove XIP kernel support (since it’s not used by anybody)
- Warn when addresses outside the vmemmap range are passed to vmemmap_populate()
- Update the ACPI FADT revision check to warn if it’s not at least ACPI v6.6, which is when key RISC-V-specific tables were added to the specification
- Increase COMMAND_LINE_SIZE to 2048 to match ARM64, x86, PowerPC, etc.
- Make kaslr_offset() a static inline function, since there’s no need for it to show up in the symbol table
- Add KASLR offset and SATP to the VMCOREINFO ELF notes to improve kdump support
- Add Makefile cleanup rule for vdso_cfi copied source files, and add a .gitignore for the build artifacts in that directory
- Remove some redundant ifdefs that check Kconfig macros
- Add missing SPDX license tag to the CFI selftest
- Simplify UTS_MACHINE assignment in the RISC-V Makefile
- Clarify some unclear comments and remove some superfluous comments
- Fix various English typos across the RISC-V codebase
- Alibaba T-Head
- Hwmon – Adapt moortec,mr75203 bindings for T-Head TH1520
- DRM – Support TH1520 HDMI plus DT bindings
- Device tree updates for Linux 7.1
- Update the T-Head TH1520 RISC-V SoC device tree to support the Verisilicon DC8200 display controller (called DPU in manual) and the Synopsys DesignWare HDMI TX controller. In addition, enable HDMI output for the LicheePi 4a board.
- Enable the display pipeline for the TH1520-based BeagleV Ahead board by adding the HDMI connector node, connecting it to the HDMI controller, and activating the DPU and HDMI nodes.
- Add coefficients to the TH1520 PVT node as the values in the TH1520 manual differ from the defaults in the driver.
- Microchip
- Add support for Microchip PIC64GX embedded RISC-V chip using SIFIVE U54 CPU cores. “PolarFire SoC without the FPGA.”
- SoC drivers
- Add coverage for the pic64gx in the system controller and syscons.
- Add an interrupt mux driver (akin to the one that Renesas recently added) that fixes a problem where the platform never properly modelled GPIO interrupts. There’s a GPIO driver change here that Bartosz has acked that adds the interrupt support to the GPIO driver itself.
- Device tree
- Add support for the picgx64 and its curiosity board.
- Add the missing tsu_clk for ptp on the macb on PolarFire SoC and resolve a long-running problem with gpio interrupts being incorrectly described
on the platform.
- SiFive – spi: sifive: fix controller deregistration. Make sure to deregister the controller before disabling underlying
resources like interrupts during driver unbind. - Sophgo
- PCIe controller driver – Disable ASPM L0s and L1 on Sophgo 2042 PCIe Root Ports that advertise support for them (
- DMA engine – Add support for CV1800B DMA
- SpacemiT
- Device Tree changes for Linux 7.1
- K3 SoC
- Add I2C support
- Add PMIC regulator tree
- Add Ethernet support
- Add pinctrl/GPIO/Clock
- Enable full UART support
- K1 SoC
- Milk-V Jupiter – Enable PCIe/USB on, QSPI/SPI NOR flash, Enable EEPROM, and LEDs
- Fix PMIC supply properties
- Fix PCIe missing power regulator
- K3 SoC
- Power Management – SpacemiT P1:
- Drop the deprecated “vin-supply” property from the devicetree bindings
- Add individual regulator supply properties to match actual hardware topology
- Device Tree changes for Linux 7.1
- StarFive
- USB – Add support for StarFive JHB100 SoC. JHB100 contains 2 dwc3 USB controllers and PHYs working at USB 2.0 speed. Note: it’s a BCM RISC-V chip.
MIPS changelog
As usual, MIPS was pretty quiet with just two lines for the summary:
- Support for Mobileye EyeQ6Lplus
- Cleanups and fixes
Here are a few of the commits:
- MIPS/mtd: Handle READY GPIO in generic NAND platform data
- MIPS/input: Move RB532 button to GPIO descriptors
- MIPS: validate DT bootargs before appending them
- MIPS: Alchemy: Remove unused forward declaration
- MAINTAINERS: Mobileye: Add EyeQ6Lplus files
- MIPS: config: add eyeq6lplus_defconfig
- MIPS: Add Mobileye EyeQ6Lplus evaluation board dts
- MIPS: Add Mobileye EyeQ6Lplus SoC dtsi
- clk: eyeq: Add Mobileye EyeQ6Lplus OLB
- clk: eyeq: Adjust PLL accuracy computation
- clk: eyeq: Skip post-divisor when computing PLL frequency
- pinctrl: eyeq5: Add Mobileye EyeQ6Lplus OLB
- pinctrl: eyeq5: Use match data
- reset: eyeq: Add Mobileye EyeQ6Lplus OLB
- MIPS: Add Mobileye EyeQ6Lplus support
- dt-bindings: soc: mobileye: Add EyeQ6Lplus OLB
- dt-bindings: mips: Add Mobileye EyeQ6Lplus SoC
- MIPS: dts: loongson64g-package: Switch to Loongson UART driver
- mips: pci-mt7620: rework initialization procedure
- mips: pci-mt7620: add more register init values
For more details, you can read the complete Linux 7.1 changelog generated with comments only using the command git log v7.0..v7.1 --stat. Alternatively, Kernelnewbies should have a longer list of changes for the Linux 7.1 release.

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.




