• Radu Rendec's avatar
    i2c: ismt: 16-byte align the DMA buffer address · 5cd5f0bb
    Radu Rendec authored
    Use only a portion of the data buffer for DMA transfers, which is always
    16-byte aligned. This makes the DMA buffer address 16-byte aligned and
    compensates for spurious hardware parity errors that may appear when the
    DMA buffer address is not 16-byte aligned.
    
    The data buffer is enlarged in order to accommodate any possible 16-byte
    alignment offset and changes the DMA code to only use a portion of the
    data buffer, which is 16-byte aligned.
    
    The symptom of the hardware issue is the same as the one addressed in
    v3.12-rc2-5-gbf416910 and manifests by transfers failing with EIO, with
    bit 9 being set in the ERRSTS register.
    Signed-off-by: default avatarRadu Rendec <radu.rendec@gmail.com>
    Acked-by: default avatarNeil Horman <nhorman@tuxdriver.com>
    Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
    5cd5f0bb
i2c-ismt.c 26.9 KB