We're hiring!
*

Kernel 5.14: 30 years in the making and still improving

Nícolas F. R. A. Prado avatar

Nícolas F. R. A. Prado
September 07, 2021

Share this post:

With the release of the 5.14 kernel, the Linux community celebrates 30 years since the birth of the biggest collaborative software project in the world. Since then, this open collaboration by thousands of engineers has produced an operating system kernel that is more reliable, efficient, and better suited for countless applications than any single organization could ever achieve.

While the high quality of this huge collaborative effort is definitely apparent by the widespread presence of Linux in the market today, this also means there is an ever-increasing interest in more modern hardware support, as well as a more reliable kernel that is thoroughly tested. This is where Collabora's developers come in to help make this a reality. Here's a look at their contributions to this latest kernel release.

Futex selftests

While futex is a complex subsystem itself, its multiplexed syscall interface increases the complexity even further. Still it is the base of a lot of userspace's synchronization mechanisms like mutex and semaphores, so it's essential to ensure that it works correctly. To help track regressions on futex, André increased the selftest's coverage. This effort is part of a long term development of a new set of futex syscalls, known as futex2.

ChromeOS EC ANX7688 bridge driver

ANX7688 is a Type-C controller which implements all the features of USB Type-C: Power Delivery, Alternate Mode, USB. The chip is found on PinePhone devices and the Chromebook Acer R13 Laptop (a.k.a elm).

The Acer R13 Chromebook has a peculiar design in which the ANX7688 sits behind the ChromeOS Embedded Controller (EC). The configuration of the controller and the communication with it is done by the EC while the CPU has limited access to the chip using an I2C tunnel through the EC. On the Linux kernel side, it uses a simple DRM bridge driver for the HDMI to DP conversion feature. The driver rejects some possible resolutions according to the controller configuration.

In this release, Dafna merged the driver for the ChromeOS EC's ANX7688 bridge used on the elm device as well as its device-tree binding. This required using a different compatible string to describe the device, "google,cros-ec-anx7688", as the usual ANX7688 isn't behind an EC and works as a full Type-C controller in devices like the PinePhone.

G2/HEVC decoder

As previously mentioned, we're working on adding HEVC/H.265 support for NXP's i.MX 8M. With this release, Benjamin kept at it and got HEVC support merged for VeriSilicon's Hantro video decoder. This gets us one step closer to the goal of graduating the HEVC API into a stable uAPI.

On the hardware support side, patches to enable compressed frames (for better decoding performance), 10 bits decoding and scaling lists have been submitted but haven't yet been merged.

SAMA5D4 support

The Microchip SAMA5D4 SoC also features another VeriSilicon's Hantro decoder - the G1. A versatile decoder capable of handling MPEG2, VP8 and H264 streams. With the 5.14 release, Emil adapted the existing Hantro driver to support the hardware, instead of the out-of-tree driver required previously. Thus improving the out-of-the-box experience, as people no longer need to patch their Linux kernel, GStreamer and/or FFmpeg - but instead can just use the official upstream versions.

While the device enablement is complete, this work builds upon the bigger picture in the multimedia stack and allows us to better prioritise our future work, from performance improvements in GStreamer to fixing the last few conformance tests.

MPEG-2 stateless controls destaging

The MPEG-2 stateless controls were finally moved out of the media staging area thanks to the efforts of Ezequiel Garcia and others in tidying it up. This is a step forward for the community as now both drivers and userspace applications can be sure that their code will not break due to sudden changes in the uAPI. The Hantro and Cedrus drivers relied on the staging controls and were updated accordingly. A MR for a GStreamer MPEG-2 decoder has been marked as ready as a direct result of Ezequiel's work and should be merged soon, to the benefit of the Linux media ecosystem.

Other contributions by our engineers in this release include device tree support for yet another imx6 based device by Sebastian and added support for the IOMMU used in the RK3568 SoC by Benjamin.

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

Authored (73):

Alyssa Rosenzweig (2):

Andrzej Pietrasiewicz (2):

André Almeida (4):

Arnaud Ferraris (1):

Benjamin Gaignard (17):

Dafna Hirschfeld (2):

Emil Velikov (9):

Enric Balletbo i Serra (4):

Ezequiel Garcia (19):

Fabien Lahoudere (2):

Ricardo Cañuelo (1):

Sebastian Reichel (10):

Maintainer Committed (41):

Sebastian Reichel (41):

Signed-off-by (21):

Ezequiel Garcia (3):

Sebastian Reichel (18):

On behalf of (21):

Carl Philipp Klemm (2):

David Wu (2):

Finley Xiao (1):

Hermann Lauer (1):

Ian Ray (1):

Jian Xin (1):

Krzysztof Kozlowski (3):

Linus Walleij (7):

Zou Wei (3):

Reviewed-by (51):

Benjamin Gaignard (1):

Boris Brezillon (2):

Dafna Hirschfeld (2):

Emil Velikov (2):

Enric Balletbo i Serra (20):

Ezequiel Garcia (22):

Tomeu Vizoso (2):

Acked-by (13):

Daniel Stone (4):

Enric Balletbo i Serra (2):

Pekka Paalanen (7):

Tested-by (11):

Daniel Almeida (10):

Enric Balletbo i Serra (1):

 

Comments (0)


Add a Comment






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


 

Search the newsroom

Latest News & Events

Generate a minimal GStreamer build, tailored to your needs

16/09/2021

GStreamer can be tricky to ship in a constrained device. Thanks to a partnership with Huawei, you can now use gst-build to generate a minimal…

Kernel 5.14: 30 years in the making and still improving

07/09/2021

With an ever-increasing interest in more modern hardware support, and a more reliable kernel that is thoroughly tested, contributions by…

Linaro Virtual Connect - Fall 2021

01/09/2021

September's busy conference schedule kicks off next week with the Fall edition of Linaro Virtual Connect. Join us as we look at how to master…

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-2021. All rights reserved. Privacy Notice. Sitemap.

Collabora Limited is registered in England and Wales. Company Registration number: 5513718. Registered office: The Platinum Building, St John's Innovation Park, Cambridge, CB4 0DS, United Kingdom. VAT number: 874 1630 19.