[PATCH V8 2/5] asm-generic/io.h: Add big-endian MMIO accessors
Arnd Bergmann
arnd at arndb.de
Fri Sep 26 04:03:21 PDT 2025
On Fri, Sep 26, 2025, at 12:53, Manikanta Guntupalli wrote:
> Add MMIO accessors to support big-endian memory operations. These helpers
> include {read, write}{w, l, q}_be() and {read, write}s{w, l, q}_be(),
> which allows to access big-endian memory regions while returning
> the results in the CPU’s native endianness.
>
> This provides a consistent interface to interact with hardware using
> big-endian register layouts.
>
> Signed-off-by: Manikanta Guntupalli <manikanta.guntupalli at amd.com>
> Reviewed-by: Frank Li <Frank.Li at nxp.com>
My general feeling to this patch has not changed: I don't think
these should be added in asm-generic/io.h at all, for multiple
reasons
- the {read,write}{w,l,q}be() helpers are redundant
as they do the same as io{read,write}{16,32,64}be() for
all practical purposes
- Adding them caused build failures on some of the
architectures that already have the same interfaces
- You are not actually using any of them in your patch
- The two functions that you do use, {read,write}sl()
do not do what they claim to do and are impossible
to use in portable code because they only work on
byte-swapped FIFO registers when using a little-endian
kernel.
Please just fold whatever code you end up needing into
your own driver as you had it in earlier versions.
Arnd
More information about the linux-i3c
mailing list