On Fri, Mar 1, 2019 at 11:13 AM Maciej W. Rozycki <macro@xxxxxxxxxxxxxx> wrote: > > What do we do WRT straight-through vs byte-swapping properties of these > accessors? I think the whole point of __raw_xyz() is that it's the lowest level model. It gives you relaxed ordering (together with the ioremap model), and it gives you straight-through behavior. And yes, any driver using them needs to be aware of the byte ordering, which may or may not be the same as regular memory, and may or may not be the same as other devices. So __raw_xyz() is very much for low-level drivers that know what they are doing. Caveat user. "If it breaks, you get to keep both pieces" Linus