We're hiring!
*

Kernel 6.0: Start of a new series and dawn of Rust

Shreeya Patel avatar

Shreeya Patel
October 14, 2022

Share this post:

Reading time:

As mentioned in our 5.19 blog post, Linus decided to end the last series at 5.19 and went with 6.0 for the next version. He reminded everyone there is nothing fundamentally different about this release, just wanted to make the number easier to follow.

Rust for Linux support did not land in 6.0, but it has already been merged for the 6.1 kernel version. This adds the initial infrastructure to support Rust as a language in the kernel and has been in development since 2020 headed by Miguel Ojeda with funding from Google and ISRG (Internet Security Research Group). Western digital, for instance, is already working on an NVMe driver written in Rust.

The main changes in the 6.0 kernel version are improvements to support more graphics, network, and sound adapters. All of these devices happen to be essential for supporting gaming on Linux.

Valve's handheld Steam Deck runs many popular games out of the box and SteamOS 3.0 is based on a customized version of Arch Linux. Cristian Ciocaltea from Collabora has submitted a couple of patches for this release to improve sound support in the mainline kernel for Steam Deck.

Collabora Engineers authored 7459 lines of code for the 6.0 kernel release. Some of the exciting work from Collabora for this release is mainlining of the HEVC uAPI (an effort spanning over two years by Collabora Engineers); adding VirtIO documentation; upstreaming MediaTek smartphones; adding support for two new Chromebooks (the Acer Chromebook 514 and Acer Chromebook Spin 513), and adding support for Mali-G57 GPU in the Panfrost kernel driver. There has also been some initial work on Rockchip rk3588, which will continue for the next kernel release.

Below you'll find a short summary of the changes we've made.

Multimedia

In the 6.0 kernel, we have achieved a big milestone with Benjamin Gaignard mainlining the HEVC uAPI. This results from more than two years of development in this area by Collabora. We primarily focused on VeriSilicon's Hantro Codec IP, but not solely. The RKVDEC and Cedrus IPs will also benefit from the stable HEVC uAPI, gaining the ability to decode HEVC in the mainline too.

Creating the HEVC uAPI has been challenging since we need and want to guarantee that it will be future-proof. To gain maximum confidence in the uAPI, we ran HEVC conformance tests using fluster. We fixed the whole decoding stack from the driver to userland to reach a state where all tests are passing (up to the limit of the hardware capabilities, of course). On that road, we have added support for 10-bit bit-streams and the P010 pixel format.

VIRTIO

Over the years, VirtIO has become a key component of many virtualization solutions. The open spec keeps growing and gaining more support from both hypervisors, drivers, and devices. However, the VirtIO documentation status in the kernel is still quite poor, as the main reference is the spec and the core code is still in flux. Ricardo Cañuelo has written an introductory guide for kernel developers new to VirtIO as a first step towards improving the VirtIO kernel documentation.

MediaTek

In this release, AngeloGioacchino Del Regno and Nícolas F. R. A. Prado improved the reliability of all MediaTek platforms with fixes to the DSI driver and solving circular locking dependencies for MediaTek RPMSG. Additionally, they have enhanced various MediaTek-specific drivers in different kernel domains: PMICs, IOMMU, power domains, and more.

The Chromebooks upstreaming work continued with the addition of initial support for two new machines: the Acer Chromebook 514 (CB514-2H), powered by a MediaTek Kompanio 828 (MT8192), and the Acer Chromebook Spin 513 (CP513-2H), powered by the MediaTek Kompanio 1380 (MT8195). The support includes USB, I2C, SPI, eMMC/SD controllers, and other peripherals of those machines, with more to come. Stay tuned for the next cycle!

In addition, AngeloGioacchino Del Regno continued his work on opening the door for upstreaming MediaTek smartphones by adding support for CPUXGPT System Timers, greatly enhancing the possibility of booting a modern kernel on most older-generation SoCs, a restructuration of the device tree for the MediaTek Helio X10 (MT6795), along with supporting new components of this SoC, such as the memory bus (SMI), power domains, and preparing the ground for the MT6331 and MT6332 PMIC combo that is commonly found on boards with the aforementioned SoC.

Rockchip

On the Rockchip side, Sebastian Reichel continued his work on the rk3588 bringup. In v6.0, he prepared the kernel by adding support for the eMMC controller and updated the device tree bindings for gpio, serial, and i2c support. The clock and reset controller, as well as power domain support, is still pending and is required before a mainline kernel can be booted on rk3588. This work will continue in the next kernel release.

Panfrost

Alyssa Rosenzweig added support for the Mali-G57 GPU, which is a part of the Valhall generation of GPUs to the Panfrost kernel driver. These first-generation GPUs are already fully supported in current Mesa releases, expanding open-source driver coverage to an ever-increasing number of users.

AMD

On Valve's Steam Deck side, Cristian Ciocaltea continued the efforts to improve the mainline kernel's sound support by enabling the CS35L41 audio codec and fixing a related regression in the AMD Vangogh platform driver. Additionally, we added some cleanups and improvements to the AMD SPI controller driver. We fixed an issue in the regmap-spi driver, which was causing data corruption when loading the firmware for speaker protection. We still have some additional audio-related fixes that couldn't make it into this merge window, but we will hopefully get them in the next kernel cycle.

Below is a full list of contributions made by Collaborans for the 6.0 release, as recorded in the git commit history:

Authored (150):

Alyssa Rosenzweig (9):

André Almeida (1):

AngeloGioacchino Del Regno (55):

Christopher Obbard (1):

Cristian Ciocaltea (7):

David Heidelberg (4):

Dmitry Osipenko (5):

Guillaume Tucker (7):

Muhammad Usama Anjum (1):

Nícolas F. R. A. Prado (32):

Ricardo Cañuelo (1):

Sebastian Fricke (1):

Sebastian Reichel (5):

Sjoerd Simons (2):

Maintainer Committed (29):

Sebastian Reichel (29):

Signed-off-by (10):

Faith Ekstrand (2):

Sebastian Reichel (7):

Sjoerd Simons (1):

Reviewed-by (192):

AngeloGioacchino Del Regno (142):

Faith Ekstrand (1):

Nicolas Dufresne (7):

Nícolas F. R. A. Prado (40):

Sebastian Reichel (2):

Acked-by (24):

AngeloGioacchino Del Regno (2):

Benjamin Gaignard (1):

Cristian Ciocaltea (1):

Muhammad Usama Anjum (1):

Nicolas Dufresne (16):

Sebastian Reichel (3):

Tested-by (76):

AngeloGioacchino Del Regno (14):

Benjamin Gaignard (10):

Dmitry Osipenko (23):

Martyn Welch (1):

Muhammad Usama Anjum (1):

Nicolas Dufresne (1):

Nícolas F. R. A. Prado (26):

Reported-by (1):

Dmitry Osipenko (1):

 

Comments (0)


Add a Comment






Allowed tags: <b><i><br>Add a new comment:


 

Search the newsroom

Latest News & Events

Kernel 6.8: MediaTek community flourishes

11/03/2024

The latest Linux Kernel 6.8 release brings thousands of new lines of code, improving the core kernel, architecture support, networking,…

Release the panthor!

04/03/2024

Late last week, the long-awaited kernel driver supporting 10th-generation Arm Mali GPUs was merged into drm-misc. The existing Gallium driver…

Patch submitted to introduce GitLab-CI pipeline for Linux kernel testing

01/03/2024

This initial version includes static checks (checkpatch and smatch for now) and build tests across various architectures and configurations,…

Open Since 2005 logo

We use cookies on this website to ensure that you get the best experience. By continuing to use this website you are consenting to the use of these cookies. To find out more please follow this link.

Collabora Ltd © 2005-2024. All rights reserved. Privacy Notice. Sitemap.