linux/rust/kernel/io
Alexandre Courbot 9a52a8f5ed rust: io: introduce `write_reg` and `LocatedRegister`
Some I/O types, like fixed address registers, carry their location
alongside their values. For these types, the regular `Io::write` method
can lead into repeating the location information twice: once to provide
the location itself, another time to build the value.

We are also considering supporting making all register values carry
their full location information for convenience and safety.

Add a new `Io::write_reg` method that takes a single argument
implementing `LocatedRegister`, a trait that decomposes implementors
into a `(location, value)` tuple. This allows write operations on fixed
offset registers to be done while specifying their name only once.

Suggested-by: Danilo Krummrich <dakr@kernel.org>
Link: https://lore.kernel.org/all/DH0XBLXZD81K.22SWIZ1ZAOW1@kernel.org/
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Link: https://patch.msgid.link/20260314-register-v9-8-86805b2f7e9d@nvidia.com
[ Replace FIFO with VERSION register in the examples. - Danilo ]
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
2026-03-17 20:04:11 +01:00
..
mem.rs rust: io: mem: use non-relaxed I/O ops in examples 2026-03-17 20:02:09 +01:00
poll.rs rust: io: separate generic I/O helpers from MMIO implementation 2026-01-23 21:20:11 +01:00
register.rs rust: io: introduce `write_reg` and `LocatedRegister` 2026-03-17 20:04:11 +01:00
resource.rs rust: io: always inline functions using build_assert with arguments 2026-01-14 20:30:26 +01:00