On Wed, Mar 12, 2014 at 4:49 PM, Mark Brown <broonie@xxxxxxxxxx> wrote: > On Wed, Mar 12, 2014 at 04:21:03PM +0400, Max Filippov wrote: > >> + case 16: >> + /* Bytes that should go out earlier have lower addresses, >> + * but the hardware operates with 16 bit words and transmits >> + * higher bits first. Thus data in memory is in BE order. >> + */ >> + xspi->data = (xspi->data << 16) | be16_to_cpu(v); >> + xspi->data_sz += 2; >> + break; > > Are you sure you need to do this byte swap? SPI words are big endian so > if you are running on a little endian processor if you are transmitting > 16 bit words you should see the data getting swapped on the bus (this is > why I say you should never have more than 8 bits per word for regmap). Looks like this swap is not needed: I've looked at drivers that set bits_per_word = 16, they submit data in cpu endianness. Will fix in v3. -- Thanks. -- Max -- To unsubscribe from this list: send the line "unsubscribe linux-spi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html