Subject: Re: [PATCH 20/32] rt2x00: byte ordering correctness

From: Michael Buesch <[email-masked]>
Date: Fri, 28 Apr 2006 15:42:29 +0200

On Friday 28 April 2006 15:31, you wrote:
> On Friday 28 April 2006 15:14, Christoph Hellwig wrote:
> > On Fri, Apr 28, 2006 at 02:59:23PM +0200, Ivo van Doorn wrote:
> > > I am not sure if that would be a wise idea,
> > > there is no byte ordering done in rt2500usb except for the EEPROM
> > > contents which is little endian.
> > > So when the module is used on a normal x86 platform, there won't be
> > > any big endian structures or fields.
> > 
> > Well, then you'll need __le* annotation and the le*_to_cpu/cpu_to_le*
> > instead.  Any new driver should be endian clean.
> 
> Not exactly true for rt2570, to correctly operate with the device, no
> endian conversions should be made at all. Not to big endian and not
> to little endian. The register should be send as a regular value with the
> byteordering equal to the byteordering of the currently used CPU.
> It has been tested to send only little endian or big endian values to
> the device on all CPU's, and in all cases it meant that the device would not function on
> CPU's with the other byte ordering.

I guess you are confusing something here:
MMIO access versus values in structs (for example) that 
are accessed through DMA (for example).

-- 
Greetings Michael.