Nicolas Frattaroli
September 30, 2025
Reading time:
Linux kernel version 6.17 has been released, and as always, Collabora contributed in many areas to make this release as good as it can be.
In this release cycle, Collabora has been especially active in the kernel's graphics subsystem, where the Panfrost and Panthor drivers for Arm Mali GPUs saw various cleanups and enhancements. Furthermore, a small but very significant fix was made to Nouveau, the kernel's open source NVIDIA driver. Also worth mentioning are the new Rust abstractions we contributed, in line with our commitment to leveraging the Rust programming language in the Linux kernel. We of course can't forget our efforts in the realm of hardware enablement, bringing new drivers for various System-on-Chip devices to the mainline Linux kernel. This includes the long-awaited move of the Rockchip hardware video decoding driver from the staging tree as a result of our continued investment in embedded multimedia.
For a full overview of what landed this release, not just from us but the entire mainline kernel community, please refer to LWN's excellent two-part merge window summaries:
AngeloGioacchino Del Regno was very active in adding mainline kernel support to MediaTek devices, as usual. His contributions include initial hardware support in several areas of the MT6991/MT8196 SoCs. This consists of Pulse-Width-Modulation (PWM), SPI communications, and voltage regulator control. It should come as no surprise that upstreaming of driver support for the MT8196 SoC (also known as the MediaTek Kompanio Ultra 910), found in devices such as the Lenovo Chromebook Plus (14" MediaTek), will be a recurring topic in future kernel release blog posts, as this is actively being worked on by Collabora.
He further contributed support for the Analog-to-Digital (ADC) converters on the MediaTek MT6373 and MT6363 Power Management Integrated Circuits (PMICs). Also of note is that he added device trees for several Chromebooks that use MediaTek SoCs, enabling their use with mainline Linux.
In addition to this, AngeloGioacchino was also active in maintaining all things mainline MediaTek, meaning he reviewed and applied patches to MediaTek drivers, device trees, and bindings. This also comes with the privilege of sending the pull request for the accumulated commits to the upstream subsystems.
Louis-Alexis Eyraud, for his part, enabled the Mali Bifrost GPU on the MediaTek MT8370 SoC and squashed various bugs pertaining to display output on MediaTek platforms. He also added support for button inputs exposed through the MT6359 PMIC, which are used on the MediaTek Genio 1200 EVK platform as "Power" and "Home" buttons. On that same platform, he additionally enabled audio support.
Laura Nao contributed a fix relating to the trackpads on Google Spherion (sold as Acer Chromebook 514) devices, so that the kernel can handle distinct hardware variants using different trackpad models properly.
Nicolas F. R. A. Prado reviewed the others' work and suggested improvements to get the patches just right.
Nicolas Frattaroli added support for the thermal sensors on Rockchip RK3576 SoCs, including adjusting the reading based on factory-calibrated settings. He enabled USB on both the ArmSoM Sige5 and Radxa ROCK 4D boards (which make use of the RK3576 SoC) and also enabled PCIe and HDMI audio on the latter. He also added support for the Radxa ROCK 5T board, which uses a Rockchip RK3588 SoC.
Investigating why 6.17 release candidates would freeze RK3576 boards some time after boot, he noticed a likely regression. Once bisected, he identified a core power domains change as the cause. The maintainer of this subsystem, Ulf Hansson, came up with a quick fix in time for the 6.17 release. This will hold us over while we develop a proper refactoring of the Rockchip power domains driver for a future kernel release.
Detlev Casanova un-staged the Rockchip hardware video decoder (rkvdec) driver, marking it as ready for production use. Following this, he sent in a few patches in preparation for RK35xx support. He also discovered that on hardware errors, the Rockchip decoders lose the previously programmed copy of the IOMMU table, which negatively affects the concurrent decoding of H.264 and H.265 streams. Thankfully, he managed to devise a fix that uses the already existing IOMMU APIs: by attaching a different domain and then detaching it to restore a cached copy, the driver can effectively reprogram the IOMMU into a working state. Last but not least, Detlev enabled UFS support on the Radxa ROCK 4D board too.
Nicolas Dufresne ported and upstreamed Detlev's aforementioned fix for older Rockchip hardware video decoders that are supported in mainline Linux. On the RK3588 AV1 decoder side, he fixed the decoder clock frequency, improving performance up to 4K at 60Hz.
Sebastian Reichel tracked down an elusive problem with USB Power Delivery negotiation on the fusb302 chip, which many Rockchip SBCs use. His fix removed the last remaining blocker that kept us from enabling the USB-C nodes for Linux on the ROCK 5B boards. In addition, his efforts also fixed bugs relating to how the device trees modelled the ethernet PHYs in the ROCK 4D and Sige 5 hardware descriptions, making their network connections more reliable. He also made sure that the Linux kernel initializes the watchdog timer on the RK3588 with a timeout value that the hardware actually supports.
Cristian Ciocaltea improved video output support on RK3576, in order to prepare it for soon-to-land support for higher resolutions on both RK3588 and RK3576.
Adrián Larumbe contributed several patches to Panthor and Panfrost, the mainline fully open Linux kernel drivers for Arm Mali GPUs. Thanks to him, Panfrost gained the ability to label its memory buffer objects, making it easier to track GPU memory usage for application developers. Contributing to a cleanup patch to Panthor, he helped remove an unused function.
Boris Brezillon was active in reviewing patches to Panthor and Panfrost, iterating with patch submitters on improvements to the code.
Cristian Ciocaltea helped refactor and improve the Linux kernel's common HDMI connector framework in order to prepare it for future support of higher resolutions and refresh rates. Part of that is improving the pixel format fallback logic, so that resolutions at refresh rates that can't be achieved with RGB can still fall back to YUV420. This is especially desirable for video playback, where most content uses the same chroma subsampling as YUV420, and therefore benefits from falling back to a pixel format that trades chrominance resolution for higher luminance resolution.
Dmitry Osipenko reviewed and applied several patches to the kernel's graphics subsystem, specifically relating to the virtio driver for virtualized GPUs, and general graphics memory management. Among those patches is a fix for a NULL pointer dereference in virtio, which could occur in this driver under some circumstances.
Faith Ekstrand tracked down an elusive bug in the Nouveau kernel driver, the open source mainline Linux graphics driver for NVIDIA GPUs, on top of which the NVK userspace driver operates. Her fix improves the stability of Linux systems that use this driver, solving a long-standing stability issue that has been plaguing users for years.
Vignesh Raman made sure that the kernel's graphics drivers don't just work, but that they keep working going forward. To do this, he contributed several patches to DRM-CI, the kernel's graphics continuous integration (CI) suite.
Julien Massot contributed a fix for a kernel panic that could occur in the TI J721E CSI2RX camera input driver.
Aside from the previously mentioned patches he contributed himself, Nicolas Dufresne also reviewed and applied other contributors' patches to various hardware video decoding drivers. Notably, these involve the rkvdec driver for Rockchip SoCs, as well as the VeriSilicon AV1 decoder that's used on the Rockchip RK3588 SoC.
Robert Mader added additional pixel formats descriptions to the Linux kernel, which enable GPUs and software decoders to share image data with each other directly.
Sebastian Reichel, in his role as a maintainer of the power supply subsystem of Linux, refactored it to make it completely agnostic to the type of platform firmware being used. By moving it towards fwnode, the power supply subsystem will be able to function regardless of whether a device uses device trees or ACPI for its hardware description. The power supply subsystem is quite commonly used for drivers controlling battery charger chips.
Cristian Ciocaltea's worked hard to track down and fix a problem with the audio output of the PlayStation 5 DualSense controller on Linux systems. The controller not only has an internal speaker for miscellaneous sound effects, but also a headset connection that can act as an audio device over both Bluetooth and USB. To get jack hot-plug detection working properly, he needed to add a new mixer quirk to the Linux kernel's sound architecture for this device. To complete this work, he's waiting for maintainers to merge a few outstanding changes on the counterpart HID driver as well. With all those in place, switching audio sources when plugging in a headset to a PS5 controller will work without manual intervention, as long as the userspace audio setup cooperates.
Daniel Almeida contributed several new Rust abstractions to the Linux kernel. These new abstractions allow Rust drivers in the Linux kernel to control voltage regulators and to acquire memory-mapped IO resources. Both of these are fundamental prerequisites for Rust drivers targeting embedded devices. Collabora developed them as part of our recently announced push for a Rust driver for Mali GPUs called Tyr.
Igor Torrente contributed a small fix to the virtual input/output subsystem to fix the host_visible
feature in virtualized GPU setups.
Nicolas Frattaroli worked on the kernel's in-tree documentation, contributing a new section that documents the kernel's widely-used generic linked list implementation with illustrative examples.
Ludovico de Nittis applied two fixes to the kernel's Bluetooth stack in this release. They fix a situation in which BlueZ, the userspace component of Linux's Bluetooth support, could miss disconnect events. This can occur when suspending and then resuming the system. With the fixes now in the kernel, using Bluetooth gamepads on Linux systems will be more reliable.
Muhammad Usama Anjum fixed a bug that caused audio on Valve SteamDecks to stop working in rare circumstances when resuming from sleep. He also reviewed several patches relating to the kernel's vDSO self-test suite.
This release cycle's activity demonstrates Collabora's continued strategic investment in several areas very well. By driving Rust adoption within the kernel, we ensure that the Linux kernel's high code quality standards continue to increase, without compromising programmer productivity or performance. The continued push for hardware enablement, graphics, and multimedia is what empowers not just our customers, but also the community at large, to move on from vendor BSP kernels and use mainline Linux kernels on a variety of hardware, including in demanding production environments that can't afford to leave performance or features on the table.
Did you know that by the time kernel 6.17 is released, the Linux kernel maintainers have already pulled all new features staged for the 6.18 release into their trees? Starting with the release of 6.18-rc1, you'll already get a sneak peek at what's in store for the next kernel blog post, but 8 weeks early. If you dare run release candidate kernels, that is.
Here is a full list of Collabora's contributions to this kernel release:
Adrián Larumbe:
AngeloGioacchino Del Regno:
Boris Brezillon:
Cristian Ciocaltea:
Daniel Almeida:
Detlev Casanova:
Faith Ekstrand:
Igor Torrente:
Julien Massot:
Laura Nao:
Louis-Alexis Eyraud:
Ludovico de Nittis:
Muhammad Usama Anjum:
Nicolas Dufresne:
Nicolas Frattaroli:
Robert Mader:
Sebastian Reichel:
Vignesh Raman:
AngeloGioacchino Del Regno:
Boris Brezillon:
Dmitry Osipenko:
Sebastian Reichel:
Daniel Almeida:
Nicolas Dufresne:
Nicolas Frattaroli:
Adrián Larumbe:
AngeloGioacchino Del Regno:
Benjamin Gaignard:
Boris Brezillon:
Cristian Ciocaltea:
Daniel Almeida:
Daniel Stone:
Detlev Casanova:
Dmitry Osipenko:
Julien Massot:
Michael Riesch:
Muhammad Usama Anjum:
Nicolas Dufresne:
Nícolas F. R. A. Prado:
Pekka Paalanen:
Sebastian Reichel:
Daniel Almeida:
Daniel Stone:
Dmitry Osipenko:
Nicolas Frattaroli:
Pekka Paalanen:
Cristian Ciocaltea:
Daniel Almeida:
Detlev Casanova:
Louis-Alexis Eyraud:
Nicolas Frattaroli:
Nícolas F. R. A. Prado:
Daniel Almeida:
Louis-Alexis Eyraud:
Nicolas Frattaroli:
30/09/2025
The kernel 6.17 release benefits from improvements in the graphics subsystem, hardware enablement, and more! See where Collabora's kernel…
24/09/2025
Next week, Collabora will be taking part in the 2025 edition X.Org Developer's Conference! Taking place in Vienna, our engineers will be…
19/09/2025
Join us next week in Paris for Kernel Recipes! We're delighted to sponsor this kernel-focused event and contribute with a talk on GPU drivers.
Comments (0)
Add a Comment