Messages in this thread | | | From | Arnd Bergmann <> | Subject | Re: [PATCH] drivers/block/xsysace - replace in(out)_8/in(out)_be16/in(out)_le16 with generic iowrite(read)8/16(be) | Date | Tue, 12 Feb 2013 11:26:10 +0000 |
| |
On Tuesday 12 February 2013, Michal Simek wrote: > > In particular, ARM can run both big- and little-endian even though > > big-endian is rarely used, so you need to know the endianess for > > the device you are talking to rather than assume that it knows > > what the CPU does at the time. > > For high performance IPs using accessors functions is still problematic > because there will be performance regression it means that > from my point of view there still should be any option to "setup" > proper endians for the driver and it can't be setup at run-time.
I did not mean you have to use a run-time detection here, although that is often the easiest solution. If you know the endianess of a device for a specific architecture or platform, it is totally fine to pick that endianess at compile-time and use e.g. the readl_relaxed() accessors on ARM to give you the lowest access latency.
Arnd
| |