Messages in this thread | | | Date | Thu, 21 Mar 2013 21:01:57 +0400 | From | Alexey Brodkin <> | Subject | Re: [PATCH] drivers/block/xsysace - replace in(out)_8/in(out)_be16/in(out)_le16 with generic iowrite(read)8/16(be) |
| |
On 02/12/2013 09:25 PM, Arnd Bergmann wrote: > On Tuesday 12 February 2013, Michal Simek wrote: >> But on Microblaze LE is necessary to use different datain/out_le16 >> functions as below >> which are also not compatible with Microblaze and PPC BE. >> >> diff --git a/drivers/block/xsysace.c b/drivers/block/xsysace.c >> index bbad046..8dd192c 100644 >> --- a/drivers/block/xsysace.c >> +++ b/drivers/block/xsysace.c >> @@ -314,7 +314,7 @@ static void ace_datain_le16(struct ace_device *ace) >> int i = ACE_FIFO_SIZE / 2; >> u16 *dst = ace->data_ptr; >> while (i--) >> - *dst++ = ioread16be(ace->baseaddr + 0x40); >> + *dst++ = ioread16(ace->baseaddr + 0x40); >> ace->data_ptr = dst; >> } > > Hmm, that actually seems sane then: You can replace the loop around > ioread16be with a single ioread32_rep() call, which will use > the correct native endian accesses on both LE Microblaze > and on all the big-endian platforms. Note that the asm-generic > definition of that function was broken until quite recently > when Will Deacon repaired it in order to support ARM64. > > Arnd >
It seems like this thread was not updated for many weeks now. I'm wondering if I missed something or if I may do something to help you guys move forward with proposed patch?
-Alexey
| |