On Sun, Aug 09, 2009 at 11:10:24AM -0400, Jon Smirl wrote:
We don't need to declare an endianess because it is fixed in the standard. Now the ifdefs in the h file make this work for both BE and LE.
The ifdefs in the header file define only the native endianness. There's no reason why an AC97 controller can't do byte swapping for itself but if we use the non-specific constants only native endianness will be advertised by the CODEC.
This also hides another implicit conversion. The AC97 codecs only take 24b. Again it is the host controller that is converting 8/16/32 to 24b.
This is exactly why we're defining this standard format for AC97 devices. The formats are just placeholders to make the standard matching stuff work without having to teach it about AC97, they have no influence on the behaviour of the CODEC.