linux/drivers/i2c
Steven A. Falco c39e8e4354 i2c: xiic: must always write 16-bit words to TX_FIFO
The TX_FIFO register is 10 bits wide.  The lower 8 bits are the data to be
written, while the upper two bits are flags to indicate stop/start.

The driver apparently attempted to optimize write access, by only writing a
byte in those cases where the stop/start bits are zero.  However, we have
seen cases where the lower byte is duplicated onto the upper byte by the
hardware, which causes inadvertent stop/starts.

This patch changes the write access to the transmit FIFO to always be 16 bits
wide.

Signed off by: Steven A. Falco <sfalco@harris.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Cc: stable@kernel.org
2013-04-23 20:18:34 +02:00
..
algos Linux 3.6-rc7 2012-10-08 12:46:32 +02:00
busses i2c: xiic: must always write 16-bit words to TX_FIFO 2013-04-23 20:18:34 +02:00
muxes i2c: mux: Add i2c-arb-gpio-challenge 'mux' driver 2013-04-17 11:31:03 +02:00
i2c-boardinfo.c i2c: Update the FSF address 2012-03-26 21:47:19 +02:00
i2c-core.c i2c: remove CONFIG_HOTPLUG ifdefs 2013-04-09 11:57:55 +02:00
i2c-core.h i2c: Update the FSF address 2012-03-26 21:47:19 +02:00
i2c-dev.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
i2c-mux.c i2c: Make the return type of i2c_del_mux_adapter() void 2013-04-02 07:07:32 +02:00
i2c-smbus.c i2c-smbus: Convert kzalloc to devm_kzalloc 2012-10-05 22:23:52 +02:00
i2c-stub.c i2c-stub: Move to drivers/i2c 2012-10-28 21:37:00 +01:00
Kconfig drivers/i2c: remove !S390 dependency, add missing GENERIC_HARDIRQS dependencies 2013-03-11 09:59:02 +01:00
Makefile i2c-stub: Move to drivers/i2c 2012-10-28 21:37:00 +01:00