Our contributions to Linux kernel 5.19

Linux v5.19 was released on July 31, 2022. As usual, LWN covered the 5.19 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:

MediaTek SoCs

BayLibre also continued to support MediaTek SoCs with contributions from Fabien Parent:

  • Added device tree to support the the MediaTek MT8195 Demo board with MT8195 SoC, the MT6359 and MT6360 PMICs, and the MT7921 connectivity chip.
  • Added device tree bindings to support the MTU3 driver on the MT8195 SoC.
  • Enabled drivers for the MT6359 and MT6360 PMIC in the arm64 defconfig. These drivers are essential for some MediaTek MT8195 based boards to boot properly.
  • Added resources in order to be able to probe and use the keyboard driver for the MT6359 PMIC.
  • Fixed bad thermistor node name in device tree for the MT8183 Pumpkin board.
  • Fixed invalid allowed mode for the MT6315 regulator.

Texas Instruments SoCs

We continue to provide upstream support for TI SoCs such as AM335x, AM437x and AM57xx.

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.

Drew Fustini upstreamed several improvement to the wkup_m3_ipc driver:

  • Converted device tree bindings from text to the preferred json-schema format
  • Added support for I2C PMIC Voltage Scaling. This allows the driver to pass the name of a binary file to load into the CM3 memory. The binary data is the I2C sequences for the CM3 to send out to the PMIC during low power mode entry.
  • Added support for VTT Toggle with a GPIO pin. On some boards like the AM335x EVM-SK and the AM437x GP EVM, a GPIO pin is connected to the enable pin on the DDR VTT regulator. This allows the regulator to be disabled to save power upon suspend and enabled upon resume.
  • Added support for IO Isolation. On AM437x SoCs, certain pins can be forced into an alternate state to save power when the system is in deep sleep.

DRM subsystem

Nicolas Belin added I2S audio support to it66121 HDMI bridge driver. The ITE IT66121 HDMI bridge is a high-performance and low-power single channel HDMI transmitter, fully compliant with HDMI 1.3a, HDCP 1.2 and backward compatible to DVI 1.0 specifications.

Crypto subsystem

Corentin Labbe made several contributions contributions to the sun8i-ce driver for the hardware cryptographic offloader on Allwinner H3/A64/H5/H2+/H6/R40 SoCs:

  • Improved handling of scatter-gather lists for the sun8i-ce crypto engine driver
  • Added function for handling hash padding the sun8i-ce crypto engine driver
  • do not allocate memory when handling requests. Instead of allocate memory on each requests, it is easier to pre-allocate buffer for IV. This made error path easier.

Corentin also made several contributions to the sun8i-ss driver for the hardware cryptographic offloader for Allwinner A80/A83T SoCs:

  • Rework handling of IV (initialization vector) to avoid failure when doing decryption of multiple SGs in-place.
  • If sun8i-ss does not handle hmac(sha1) directly, then provide one which use the already supported acceleration of sha1.
  • Do not zeroize all pad, instead of memset all pad buffer, it is faster to only put 0 where needed.
  • Do not allocate memory when handling hash requests Instead of allocate memory on each requests, it is easier to pre-allocate buffers. This made error path easier.

Corentin also made a fix to Triple-DES support in the driver for Marvell’s Cryptographic Engine and Security Accelerator (CESA).

Miscellaneous Fixes

  • Corentin Labbe fixed invalid sytax in the ASoC device tree bindings.
  • Corentin also fixed a typo in the thermal_of driver that was causing a sparse warning.
  • Corentin fixed styles issues in hwmon driver for acpi_power_meter.
Linux 5.19 contributions per each BayLibre engineer