On Fri, May 06, 2011 at 02:28:32PM +0200, Lars-Peter Clausen wrote:
The snd_soc_cache infrastructure has several helper functions for writing spi on a spi bus. The one used by the ad1836 was specifically added for the ad1836 and is special compared to the other spi helper functions in the regard that it swaps the upper and the lower byte of the to be transferred data. While this works on blackfin which is litte-endian this scheme will obviously fail on big-endian machines. Also this might not work for other codecs which want to reuse the same helper function.
So clearly the cache stuff ought to be using cpu_to_be16 for this stuff. At present we've been lazy about this as on most CPUs the swap boils down to a noop. If we do end up needing both swaps then we just add this as another parameter in the cache infrastructure.