• Abhishek Sahu's avatar
    i2c: qup: Fixed the DMA segments length · 5c135e15
    Abhishek Sahu authored
    1. The current QCOM I2C driver code is failing for transfer length
    greater than 255. This is happening due to improper segments length
    as the I2C DMA segments can be maximum of 256 bytes.
    
    2. The transfer length tlen was being initialized with 0 for 256
    bytes, which is being passed for DMA mappings resulting in improper
    DMA mapping length.
    
    This patch fixes the above said problems by initializing the block
    count with the values calculated in qup_i2c_set_blk_data and calculating
    the remaining length for last DMA segment. Also, the block data length
    need to be decremented after each transfer. Additionally, this patch
    corrects the tlen assignment for DMA mapping.
    Signed-off-by: default avatarAbhishek Sahu <absahu@codeaurora.org>
    Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
    5c135e15
i2c-qup.c 36 KB