• Steven A. Falco's avatar
    i2c: xiic: must always write 16-bit words to TX_FIFO · c39e8e43
    Steven A. Falco authored
    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: default avatarWolfram Sang <wsa@the-dreams.de>
    Cc: stable@kernel.org
    c39e8e43
i2c-xiic.c 22.7 KB