Linux kernel 5.18 released, our contributions

Photo of fresh corn cob

Linux v5.18 was released on May 22, 2022. As usual, LWN covered the 5.18 merge window (part 1part 2). Kernel Newbies has more details on all of the changes. Here’s a summary of our contributions per each SoC family and kernel subsystem:

Amlogic SoCs

Neil Armstrong reviewed and merged many patches from the developer community as the maintainer of Amlogic SoC support in the Linux kernel. In addition, BayLibre engineers contributed several fixes:

  • Neil fixed a frame clipping and rotation issue in the Amlogic 2D Graphic Acceleration Unit driver
  • Neil fixed system crashes that occured when using audio on Amlogic G12A/G12B and SM1 systems by reverting two commits from previous releases which were found to be the responsible
  • Amjad Ouled-Ameur fixed shared reset control usage in Meson USB2 PHY drivers

MediaTek SoCs

BayLibre also continued to support MediaTek SoCs:

  • Julien Stephan made an improvement to the MediaTek DSI display driver to allow commands to be sent during video mode. Previously, commands could only be sent during panel initialization.
  • Mattijs Korpershoek added support for the MT6358 PMIC in the mtk-pmic-keys driver and enabled the power and home keys on MediaTek boards with a MT6358 PMIC.
  • Mattijs has become the maintainer of the device tree bindings for MT6779 keypad controller
  • Mattijs fixed the IES control pins in the pinctrl table on the MT8365 SoC
  • Alexandre Bailon cleaned up logging in the MediaTek MMC driver

Texas Instruments SoCs

We continue to provide upstream support for the several families TI SoCs such as AM335x, AM437x and AM57xx:

  • Drew Fustini discovered and fixed a timer conflict that caused IPU2 (an image processing unit) to fail to boot on the AM5728 SoC which is used in boards like the BeagleBoard X15.
  • The AM335x and AM437x SoC families use a small Cortex M3 co-processor to help with various low power tasks like deep sleep states that cannot be controlled from the main processor core. The wkup_m3_ipc driver handles communication between the main processor and power management firmware on the CM3. To prepare for upstreaming additional power saving functionality, Drew moved a necessary address translation function to the public remoteproc API header file, so that the wkup_m3_ipc driver can utilize it.

Network Attached Storage SoCs

The Cortina Systems Gemini SoCs which are notably used in Network Attached Storage (NAS) devices:

  • Corentin Labbe added the ability in the the Cortina Gemini Ethernet driver to set the MAC address from a device tree property
  • Corentin converted the device tree bindings for the Faraday Technology FTGPIO010 GPIO controller (which is used in the Gemini SoCs) to YAML which enables the device tree source files using to be validated against the schema. This helps to avoid common mistakes in device tree source files.
  • Corentin also converted the device tree bindings for the Gemini SoC ethernet controller to YAML.
  • Corentin converted the device tree bindings for the Gemini SoC-internal SATA bridge too.
  • Corentin was able to eliminate a Gemini SoC specific device bindings file by adding properties for the Gemini flash memory to the mtd-physmap device tree schema.

Neil Armstrong maintains support for the Oxford Semiconductor OX810SE SoC which is used in NAS devices like the Western Digital My Book World Edition:

  • Neil updated the OX810SE device tree to add the embedded Synopsys DWMAC Ethernet controller

Crypto Engine drivers

Corentin Labbe continued to improve crypto drivers in this release with a special focus on getting crypto self-tests to running smoothly:

  • Corentin Labbe fixed an issue in the the block request crypto engine framework to hit spinlock recursion bug while handling IPsec traffic. The issue is now resolved for the Amlogic GXL crypto accelerator, Allwinner sun8i-ce crypto engine and Allwinner sun8i-ss crypto offloader, and the Cortina SL3516 crypto offloader.
  • Corentin also fixed the Cavium ZIP driver to register its algorithm only if hardware is present. This resolved an issue on the Renesas Salvator-X, where the Cavium driver was failing crypto self-tests, even though there is nothing related to Cavium on the system.
  • Corentin prevented the ZynqMP SHA driver from probing on non-Xilinx hardware. This avoids unnecessary crypto self-test failures in the kernel log.
  • Corentin fixed a warning that occured when the Rockchip SoC crypto driver module was loaded.

DRM drivers

The Direct Rendering Manager (DRM) is vital part of how Linux displays graphics. Neil Armstrong maintains DRM drivers for Amlogic SoCs and DRM bridge chips including the ITE IT66121 HDMI bridge.

  • Neil Armstrong fixed an issue in the Synopsys DesignWare HDMI transmitter driver (dw-hdmi) when it is in the first place of the bridge chain. Previously, the dw-hdmi negotiation code only worked when the dw-hdmi bridge was in last position of the bridge chain or behind another bridge also supporting input and output format negotiation.
  • Neil added necessary callbacks to the Silicon Image sii902x HDMI driver to keep the bridge working.
  • Fabien Parent added a missing Kconfig option select to avoid invalid configuration for the ITE IT6505 HDMI bridge driver.

Media drivers

Coretine Labbe maintains the Zoran driver for video capture cards and continues to improve it:

  • Added debugfs support to display zoran debug and stats information.
  • Fixed count handling to avoid a warning after every capture that there is unused buffer space.
  • Reduced the size of the probe function by adding I2C init and exit functions.
  • Fixed error handling of the DMA size setting.

Miscellaneous Fixes

  • Guillaume Ranquet improved error handling in code used by device tree-based clocksource drivers.
  • Corentin Labbe cleaned code in the High Precision Event Timer (HPET) driver.
  • Corentin also cleaned up code in the MacIO ASIC driver.

Bar graph of Linux 5.18 contributions per each BayLibre engineer
Linux 5.18 contributions per BayLibre engineer