Pengutronix Recent Open Source Efforts -
Linux 7.2 Edition

Linux 7.2 is freshly released and comes with plenty of improvements developed by us at Pengutronix. This blog post shows what work we've contributed to it and other Open Source Projects since the last blog post on the occasion of Linux 7.1.

Kernel

To the 7.2 release, the colleagues at Pengutronix have contributed 43 patches. Furthermore, Marc Kleine-Budde performed three merges in his role as CAN subsystem maintainer.

Our largest contribution to this release has been Sven Püschel's 28-part patch series introducing support for the RGA3 graphics unit.

The RGA3 is the 2D graphics accelerator unit of Rockchip's flagship ARM SoC, the RK3588. It speeds up operations such as image resizing, rotation, blitting, blurring and sharpening, 2D drawing operations and more. Support for the RGA3 is introduced to the rockchip/rga driver (VIDEO_ROCKCHIP_RGA). The driver already had support for its predecessors such as the RGA2-Enhanced, which is featured amongst others in the RK3566, the RK3568 and even alongside the RGA3 units in the RK3588. Sven's changes revolve particularly around adapting the driver to the architectural changes in the RGA3 such as the requirement for pixel lines to be 16-byte aligned in memory, different pixel formats, and the need for various RGA3-specific driver code.

Further work in the media framework has been contributed by Michael Tretter in his three-part series to support multiple camera devices in the i.MX camera serial interface (imx-csi).

A single patch was merged from Oleksij Rempel's ongoing efforts to mainline drivers for the NXP MC33978/MC34978 switch status detection ICs. While the drivers themselves will surely be covered in a future iteration of PROSE, the preparatory patch already applied to the pin control infrastructure is relevant to exposing the status of switch contacts monitored by the ICs as GPIOs. While oftentimes, GPIOs are alternate functions of a pin on a SoC that can be muxed among various functions, the input pins of this switch status detection chip conceptually only ever function as GPIO inputs. Oleksij's patch relaxes internal requirements in the pin control infrastructure so that callbacks only relevant to pinmux groups may be omitted in such cases.

Steffen Trumtrar introduced support for the Texas Instruments LP5860 LED driver chip. This chip allows controlling a matrix of up to 196 LED dots via SPI. Dimming and multiple color channels are supported and configured via device tree.

Moving on, we've once again added support for display panels: Stefan Kerkmann for the Startek KD070HDFLD092 LVDS panel and Steffen Trumtrar for the NEC LCD Technologies NL6448BC33-70C Panel.

To 7.2, we've contributed a total of five fixes:

Mesa

Our colleague Lucas Stach has continued improving the etnaviv driver in Mesa, which provides OpenGL (ES) support for Vivante GPUs.

His 16 patches contributed in this iteration revolve around three issues:

As revealed by CI tests, draw commands could under rare circumstances exhibit race conditions when the GPU is used by multiple clients concurrently. The merge request resolves this by carefully reordering operations, anticipating necessary GPU job submits, and some surrounding cleanup.

Further issues were addressed in the flushing of command buffers. Two of the fixes involve the handling of fences, OpenGL's primitive for tracking and synchronizing commands issued towards the GPU, and another one the timing of clearing the table of pending resources.

Finally, Lucas contributed a series of refactoring patches, ensuring that the races fixed in the first MR are caught in debug builds by a CPU side assert before they hit the GPU.

Our colleague Philipp Zabel resolved a build error in Mesa.

candleLight Firmware

In the meantime, Marc contributed 88 changes to the firmware for the candleLight USB-CAN adapter.

Besides plenty of cleanups and improved error handling, there have also been new features: Support for GS_CAN_FEATURE_BERR_REPORTING allows the Linux kernel to switch CAN Bus Error reporting on and off, and support for GS_USB_BREQ_GET_STATE allows the Linux kernel to query the current state of the CAN channel. Purging unprocessed USB OUT transfers on CAN channel shutdown prevents some error messages that could appear after a suspend.

Firmware-based CAN bus off recovery moves the recovery logic from the CAN IP core into the firmware. The firmware can now detect a CAN bus off condition and automatically recover after a short delay. This is also a preparation for m_can support, where automatic bus off recovery is unavailable. A flag was introduced to allow the host to disable automatic CAN bus off recovery, to then trigger it manually via a specific USB control message.

For high CAN FD data rates of multiple Mbps, propagation delay becomes an issue. Transmitter Delay Compensation (TDC) can accommodate for that and is now supported by the candleLight firmware. On supporting devices, the Linux kernel can control the feature but for old kernels that don't support TDC, the device controls it automatically.

Finally, initial m_can support was merged. This adds support for the m_can CAN controller found in newer STM32 devices and marks a big step towards supporting those controllers.

Wider Ecosystem

In OP-TEE OS, Sascha Hauer resolved a bug where the memory firewall was set up incorrectly, exposing memory reserved for OP-TEE to the normal world.

In systemd, Ulrich Ölmann improved documentation.

libbsd provides useful functions from the BSD world to other operating systems like GNU/Linux. Our colleague Sven Püschel resolved an issue in its build system.

To OpenEmbedded, Leonard Göhrs resolved a rare Quality Assurance false-positive warning when building python3-aiohttp, Michael Tretter enabled GPT-support in fdisk, and Fabian Pfitzner added two new recipes for CAN-related Python packages: canopen and canmatrix.

barebox

barebox has seen 160 new non-merge commits, of which two thirds are community contributions. 2026.06.1 and 2026.07.0 have been released.

PTXdist

ptxdist 2026.07.0 and 2026.08.0 have been released.

In total, our PTXdist maintainer Michael Olbrich has applied 121 patches of which 65 were community contributions.

labgrid

labgrid has seen 50 new non-merge commits, half contributed by the community.

RAUC

RAUC received precisely 100 new non-merge commits, a quarter from the community.


Further Readings

Pengutronix Recent Open Source Contributions - Linux 7.1 Edition

A tour trough Pengutronix' contributions to Linux 7.1, and to other open source projects

Pengutronix Recent Open Source Contributions - Linux 7.0 Edition

Let's take the Linux 7.0 release as an occasion to look at the Open Source code we've contributed to various upstreams in the last two months.

Pengutronix Recent Open Source Contributions

Let's take the Linux 6.19 release as an occasion to look at the Open Source code we've contributed to various upstreams in the last three months.

Managing Complexity with Open Source

A few days ago, something exciting happened: I revisited my very first embedded system - a 34 year old stepper motor controller, driving the telescope mount of the Public Observatory Rothwesten, which was built by me back when I was in class 12 in highschool. Comparing those embedded systems from back in the days with the recent industrial systems, it is impressive to see that the latter ones are not manageable any more without the use of open source software.


Pengutronix at the Linux Plumbers Conference

The Linux Plumbers Conference 2024 will take place in Vienna from 18. to 20.09.2024. Luckily this does not overlap with the ELCE. Pengutronix will attend the LPC with six colleagues - so watch out for our T-shirts and hoodies and and feel free to chat with us.


umpf - Git on a New Level

Modern software development is commonly accompanied by a version control system like Git in order to have changes to the source code being documented in a traceable manner. Furthermore, any version state should be easily reproducible at any time. However, for work on complex projects such as the BSP ("Board Support Package") of an embedded system with its multiple development aspects, the simple stacking of the individual changes on top of each other does not scale.


Pulse Width Modulation (PWM) is easy, isn't it? - Turning it off and on again

Part of Uwe Kleine-König's work at Pengutronix is to review PWM (Pulse Width Modulation) drivers. In addition, he also sometimes refactors existing drivers and the Linux kernel PWM subsystem in general.


Pengutronix at Embedded World 2022

Welcome to our booth at the Embedded World 2022 in Nürnberg!


Pengutronix Kernel Contributions in 2021

2022 has started, and although Corona had a huge impact on our workflow, the Pengutronix team again made quite some contributions to the Linux kernel. The last kernel release in 2020 was 5.10, the last one in 2021 was 5.15, so let's have a look at what happened in between.


Pengutronix at FOSDEM 2021

"FOSDEM is a free event for software developers to meet, share ideas and collaborate. Every year, thousands of developers of free and open source software from all over the world gather at the event in Brussels. In 2021, they will gather online." -- FOSDEM