From: leroy christophe
> Many drivers use in_be16(), in_be32(), out_be16(), out_be32(), etc ....
> to access to registrers in IO mapped memory.
> 
> What is the real purpose of those functions, and are they really needed ?
> 
> ioremap() maps the related areas as GUARDED, which means that accesses
> can't be speculative. So what is the benefit of using in_beXX() and
> out_beXX() over simple memory accesses in the area ?

Some architectures might need to use specific instruction to access
io space (eg sparc might need to supply a specific 'address modifier').

Special instructions might be needed to perform a 'big endian' access.

Unfortunately the functions sometimes contain additional (often unneeded)
sequencing instructions - the driver may be able to perform multiple
operations between the sequencing instructions.

        David

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to