BayLibre contributions to Linux v6.19

Linus released Linux 6.19 on February 8, 2026. BayLibre contributed 49 authored commits to this release across several subsystems.

IIO

ADC: AD7124

David Lechner fixed a possible out-of-bounds array access in the AD7124 driver where using a non-zero value for the adi,gain-milli devicetree property could trigger the issue. He changed the setup register allocation strategy to allocate registers on-demand during buffered reads, allowing more combinations of different setups at runtime.

He added extended attributes to the temperature channel, including scale, sampling_frequency, and sampling_frequency_available, making the temperature channel configurable like other channels. The driver now supports a debugfs attribute to disable single cycle mode for testing purposes.

Additional cleanups include removing the unused nr field from struct ad7124_channel_config, inlining ad7124_enable_channel(), removing __ad7124_set_channel(), using devm_mutex_init(), using AD7124_MAX_CHANNELS consistently, and removing an internal function.

Media: Mobiveil MG4B

David Lechner fixed two issues in the Mobiveil MG4B media driver. He replaced the custom buffer handling with iio_push_to_buffers_with_ts() for proper timestamp handling and used aligned_s64 for scan data to ensure proper alignment.

IIO Buffer Documentation

David documented calling context requirements for IIO buffer functions. He added documentation that iio_push_to_buffers() and the store_to() callback may be called in any context including interrupt handlers. He documented that iio_push_to_buffers_with_ts_unaligned() may sleep and added a might_sleep() check to enforce this. He documented that iio_push_to_buffers_with_timestamp() is deprecated in favor of iio_push_to_buffers_with_ts() and documented the buffer callback cannot be called in an atomic context.

KUnit

Uwe Kleine-König dropped an unused parameter from kunit_device_register_internal(), removing the unused struct kunit_device *kunit_dev parameter from the function signature.

Accelerometer: ADXL380

Francesco Lavra fixed handling of unavailable INT1 interrupt in the ADXL380 driver. This allows the INT1 interrupt pin of the sensor to be used as an alternative to INT0.

IMU: ST LSM6DSx

Francesco Lavra fixed the channel specification for sensors without event detection in the ST LSM6DSx driver: the event_spec struct member was incorrectly populated for all sensors, causing a potential NULL pointer dereference for sensors without event detection capabilities. He decoupled sensor ODR from FIFO batch data rate, allowing independent control of sensor sampling rate and FIFO batching rate. He also fixed the measurement unit for the odr struct member, documenting it as mHz instead of Hz.

PWM

Core and Drivers

Uwe Kleine-König ensured ioctl() returns negative errno on error by changing the PWM character device to return -ENOTTY instead of positive ENOTTY for unsupported ioctl commands.

He fixed the BCM2835 driver to enable the channel in pwm_request() when hardware was enabled at boot, ensuring the channel remains enabled after request. The MediaTek driver was converted to the waveform API and now uses struct_size() macro for allocation.

He dropped the unused pwm_apply_args() function from the PWM core. Format strings were cleaned up to use %u for unsigned integers and simplified for emitting chip->npwm in debugfs.

Rust PWM Support

As PWM maintainer, Uwe Kleine-König committed Rust PWM infrastructure including Kconfig and basic data structures, complete abstraction layer, module_pwm_platform_driver! macro, and the T-HEAD TH1520 PWM driver. He dropped wrapping of PWM polarity and state to use C types directly from Rust. The Rust PWM support required exporting pwmchip_release for external use and adding namespace import support to the Rust module macro. He also committed fixes for Rust formatting, intra-doc links, and clippy warnings.

Further Uwe Kleine-König committed contributions from external developers including PWM driver fixes, devicetree bindings, and the Airoha EN7581 PWM support.

CAN: M_CAN

Markus Schneider-Pargmann replaced the M_CAN maintainer.

He implemented wakeup support for the M_CAN driver. The driver now maps Wake-on-LAN to device_set_wakeup_enable() and supports pinctrl wakeup state, switching to a wakeup pinctrl configuration when the device is configured as a wakeup source. The corresponding devicetree bindings were updated to include wakeup properties.

He changed error handling in allocation to return ERR_PTR on error instead of NULL, improving error propagation.

Firmware: TI SCI

Markus Schneider-Pargmann added support for transfers without response to the TI SCI firmware driver, allowing fire-and-forget message transmission needed for entering Partial-IO. He implemented Partial-IO support, enabling isolation of IO pads during low power modes on TI platforms.

ARM64: TI Devicetree

Markus Schneider-Pargmann defined possible system states in the devicetree for AM62, AM62A, and AM62P SoCs. He configured wakeup-source system states for the AM62-LP-SK, AM62A7-SK, and AM62P5-SK boards, enabling proper power management configuration.

ARM: OMAP

As ARM OMAP maintainer, Kevin Hilman committed contributions from external developers including devicetree fixes for TI OMAP platforms, PRU Ethernet driver enablement, UART compatible string corrections, and clock API migrations.

Kevin Hilman tested and reviewed patches implementing CPU system wakeup QoS limits for cpuidle and suspend-to-idle, allowing specification of wakeup latency requirements.

GPIO

Francesco Lavra modified the PCA953x driver to enable interrupt latching only on edge-triggered inputs. Level-triggered interrupts don’t require latching, and enabling it can cause the driver to miss an active interrupt condition.

SPI

Axel Haslam added an offset parameter to the SPI offload subsystem which is used to specify delays in between multiple triggers.

ASoC

Francesco Lavra removed the Kconfig dependency on TEGRA20_APB_DMA from the Tegra ASoC drivers. The dependency is no longer correct as these drivers now support Tegra SoCs without the Tegra20 APB DMA controller, such as Tegra234.

ARM64: Amlogic Devicetree

Guillaume La Roque fixed the L2 cache reference for S922X CPUs in the Meson G12B devicetree. The S922X has four Cortex-A73 cores with their own L2 cache, but the devicetree incorrectly referenced the A53 L2 cache for these cores.

Summary

Type Count
Authored 49
Acked-by 2
Reviewed-by 26
Tested-by 6
Suggested-by 2