On Tue, Oct 22, 2024 at 11:31:37PM +0200, Danilo Krummrich wrote: > This patch series implements the necessary Rust abstractions to implement > device drivers in Rust. > > This includes some basic generalizations for driver registration, handling of ID > tables, MMIO operations and device resource handling. > > Those generalizations are used to implement device driver support for two > busses, the PCI and platfrom bus (with OF IDs) in order to provide some evidence > that the generalizations work as intended. > > The patch series also includes two patches adding two driver samples, one PCI > driver and one platform driver. > > The PCI bits are motivated by the Nova driver project [1], but are used by at > least one more OOT driver (rnvme [2]). > > The platform bits, besides adding some more evidence to the base abstractions, > are required by a few more OOT drivers aiming at going upstream, i.e. rvkms [3], > cpufreq-dt [4], asahi [5] and the i2c work from Fabien [6]. A rebase of the asahi driver onto this series still probes the platform device and the driver works as expected. Feel free to add Tested-by: Janne Grunau <j@jannau> We plan to import this series for the Asahi Linux downstream kernel starting with v6.12 and replace the old rust-for-linux Device/Driver abstractions with this. Janne