On Tue, Nov 15, 2005 at 01:11:47PM +0100, Kars de Jong wrote: > With all m68k 53c700 implementations currently supported there should be > no byteswapping done in io{read,write}32(), but that doesn't hold for > each bus. > > So until we can specify in some way how the io{read,write}{16,32}() > function should behave on a certain memory region, I see no way to > integrate this cleanly. For now I am inclined to do something like this > in 53c700.h: > > #ifdef CONFIG_M68K > iowrite32be(bS_to_io(value), hostdata->base + reg); > #else > iowrite32(bS_to_io(value), hostdata->base + reg); > #endif > > etc. > > IMHO that's cleaner than hardcoding these functions to do no > byteswapping at all in include/asm-m68k/io.h. Plus that breaks when a > multi-config kernel is built (like one with PCMCIA and this SCSI driver, > because the Amiga PCMCIA implementation does need byteswapping). Much > like what you get now when you build a kernel with APNE and ZORRO8390 > drivers for instance. I thought that was what the bS_to_io() and friends were for. In any case, I agree with you. The iomap call should let you specify whether this is a big-endian or little-endian region. Unfortunately, James Bottomley disagreed and we now have the ioread16be family of functions. - : send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html