Re: [PATCH] Revert "regmap-mmio: Use native endianness for read/write"

From: Johannes Berg
Date: Tue Jan 26 2016 - 03:25:53 EST


On Mon, 2016-01-25 at 23:52 +0000, Mark Brown wrote:

> Â- Make the default for MMIO regmaps be explicitly little endian with
> ÂÂÂeither an ifdef for MIPS to keep it working or an explict native
> ÂÂÂendianness tag in the DT instead of the straight revert to LE (the
> ÂÂÂlatter seems better).

This makes sense, and I agree that the latter is better.

> Â- Convert the MMIO regmap to use reg_read() and reg_write() with
> ÂÂÂimplementations using either readX() or ioread_*be() and
> equivalents for write.ÂÂThis means the core does no endianness
> swapping and it's all in the bus.

I don't think there's ioread64be/iowrite64be, and I'm also not entirely
sure how that works since it uses __raw_* internally in lib/iomap.c?

> Unfortunately that all sounds a bit too big for v4.5...ÂÂperhaps a
> combination of a revert of the implementation and the addition of the
> native tag to the DT for v4.5 followed by the reworking of the bus
> for v4.6, I really would rather keep the DT change in v4.5 since
> specifying LE is just bad and we don't want that to propagate any
> more than it has to.

Yes, that makes sense.

> From this I also conclude that we need to improve our testing of big
> endian ARM systems since nobody managed to notice this all the time
> this was cooking in -next.

To my knowledge before I did a couple of days ago nobody ever ran i.MX6
in big endian mode :)

johannes