Messages in this thread | | | Subject | Re: [PATCH] drivers/block/xsysace - replace in(out)_8/in(out)_be16/in(out)_le16 with generic iowrite(read)8/16(be) | From | Benjamin Herrenschmidt <> | Date | Fri, 08 Feb 2013 08:09:17 +1100 |
| |
On Thu, 2013-02-07 at 15:23 +0000, Grant Likely wrote: > > Maybe. In a separate patch. Hmmm... I guess there isn't an > ioread16be_rep variant.
Because it would not make sense. The ioread16_rep isn't "LE" ... it should be usable for any kind if data port since such a fifo should never require byteswap as long as the bus is wired properly (whether the device is LE or BE).
The problem we have here is that we have an LE device that can be wired backward. The fact that this only happens when the CPU is BE is somewhat irrelevant (well, let's say that the confusion is easier to make for the HW guys when using a BE CPU but fundamentally it's not relevant, a similar backard wiring could have been done for a BE device on a LE CPU for example).
So in that case, you need some kind of hand made loop.
> Oh well. Check first with Michal on LE microblaze before making the > change. If it doesn't work for him the more understanding is needed. I > was pretty sure the LE variant already worked. > > > not sure about items for "ace_datain/out_be16" - what about _rep > options > > here? > > ioread16_rep should be fine. The ace_data{in,out}_be16 routines need > to use the LE accessor. The existing code is definitely correct in > this respect.
Ben.
| |