Merged a few days ago for the ongoing Linux 6.19 merge window were all of the “char/misc” updates. A lot of random changes throughout this time from the Industrial I/O “IIO” drivers to an interesting new feature for User-Space I/O “UIO” for PCI/PCIe devices.
Linux’s User-Space I/O functionality via the “uio_pci_generic” kernel module allows for PCI/PCIe devices to be interacted with via a user-space driver rather than relying on a hardware-specific kernel driver. This can fill some interesting use-cases and outlined via the UIO documentation on kernel.org.
With Linux 6.19 there is a new UIO driver: uio_pci_generic_sva. This driver allows supporting Shared Virtual Addressing (SVA) on IOMMU-backed Linux systems. This new driver allows for PCI devices to directly use user-space virtual addresses for DMA operations to eliminate the need for explicit IOVA mapping or bounce buffers, the patch notes.
User-space applications can then perform zero-copy Direct Memory Access (DMA) using native pointers.
This new uio_pci_generic_sva driver providing SVA support for PCI/PCIe devices with UIO was worked on by the Beijing Institute of Open Source Chip “BOSC”.
The char/misc pull for Linux 6.19 also adds interconnect provider driver support for the Qualcomm Snapdragon 8 Elite Gen 5 “Kaanapali” SoC, the Analog Devices max14001 IIO driver, Strix 10 driver updates, and many other device specific driver additions. See this Git pull for all the details.
