Thread (23 messages) 23 messages, 4 authors, 2026-03-04

Re: [PATCH v2 1/4] rust: io: Add big-endian read and write functions

From: Daniel Almeida <daniel.almeida@collabora.com>
Date: 2026-02-08 17:19:20
Also in: lkml, rust-for-linux

On 5 Feb 2026, at 19:43, Danilo Krummrich [off-list ref] wrote:

On Thu Feb 5, 2026 at 11:31 PM CET, Gary Guo wrote:
quoted
On Thu Feb 5, 2026 at 7:05 PM GMT, Danilo Krummrich wrote:
quoted
 (1) Devices are either little-endian or big-endian. Hence, having to write

io.big_endian().write()

     is excessive, we always want big-endian for a big-endian device.
You don't need to always write this. You just need to do `big_endian()` once
when you obtain the io, and then keep using `BigEndian<Mmio>` instead of just
`Mmio`, and the rest of code is still `.write()`.
<snip>
quoted
quoted
 (2) It is error prone, if you forget to call big_endian() first, it is a bug.
Moot point when `big_endian()` is only done once.
Well, you need to do it at least once per driver entry point. For DRM IOCTLs for
instance you also have to consider that it is always Devres<Mmio>.
Well, this is also the case for relaxed(). I basically made peace with the fact that

let mmio = mmio.relaxed();
< use mmio >

is going to be a reality per driver entrypoint, unless I misunderstood?

— Daniel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help