lkml.org 
[lkml]   [2020]   [Nov]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.9 41/55] i2c: mediatek: move dma reset before i2c reset
    Date
    From: Qii Wang <qii.wang@mediatek.com>

    [ Upstream commit aafced673c06b7c77040c1df42e2e965be5d0376 ]

    The i2c driver default do dma reset after i2c reset, but sometimes
    i2c reset will trigger dma tx2rx, then apdma write data to dram
    which has been i2c_put_dma_safe_msg_buf(kfree). Move dma reset
    before i2c reset in mtk_i2c_init_hw to fix it.

    Signed-off-by: Qii Wang <qii.wang@mediatek.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/i2c/busses/i2c-mt65xx.c | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    diff --git a/drivers/i2c/busses/i2c-mt65xx.c b/drivers/i2c/busses/i2c-mt65xx.c
    index 0cbdfbe605b55..33de99b7bc20c 100644
    --- a/drivers/i2c/busses/i2c-mt65xx.c
    +++ b/drivers/i2c/busses/i2c-mt65xx.c
    @@ -475,6 +475,10 @@ static void mtk_i2c_init_hw(struct mtk_i2c *i2c)
    {
    u16 control_reg;

    + writel(I2C_DMA_HARD_RST, i2c->pdmabase + OFFSET_RST);
    + udelay(50);
    + writel(I2C_DMA_CLR_FLAG, i2c->pdmabase + OFFSET_RST);
    +
    mtk_i2c_writew(i2c, I2C_SOFT_RST, OFFSET_SOFTRESET);

    /* Set ioconfig */
    @@ -529,10 +533,6 @@ static void mtk_i2c_init_hw(struct mtk_i2c *i2c)

    mtk_i2c_writew(i2c, control_reg, OFFSET_CONTROL);
    mtk_i2c_writew(i2c, I2C_DELAY_LEN, OFFSET_DELAY_LEN);
    -
    - writel(I2C_DMA_HARD_RST, i2c->pdmabase + OFFSET_RST);
    - udelay(50);
    - writel(I2C_DMA_CLR_FLAG, i2c->pdmabase + OFFSET_RST);
    }

    static const struct i2c_spec_values *mtk_i2c_get_spec(unsigned int speed)
    --
    2.27.0
    \
     
     \ /
      Last update: 2020-11-10 05:04    [W:3.571 / U:0.224 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site