* [PATCH] i2c: mediatek: move dma reset before i2c reset
@ 2020-10-30 11:58 qii.wang
2020-11-03 21:13 ` Wolfram Sang
0 siblings, 1 reply; 2+ messages in thread
From: qii.wang @ 2020-10-30 11:58 UTC (permalink / raw)
To: wsa
Cc: qii.wang, srv_heupstream, leilk.liu, linux-kernel,
linux-mediatek, linux-i2c, matthias.bgg, linux-arm-kernel
From: Qii Wang <qii.wang@mediatek.com>
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>
---
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 0cbdfbe..33de99b 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)
--
1.9.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] i2c: mediatek: move dma reset before i2c reset
2020-10-30 11:58 [PATCH] i2c: mediatek: move dma reset before i2c reset qii.wang
@ 2020-11-03 21:13 ` Wolfram Sang
0 siblings, 0 replies; 2+ messages in thread
From: Wolfram Sang @ 2020-11-03 21:13 UTC (permalink / raw)
To: qii.wang
Cc: srv_heupstream, leilk.liu, linux-kernel, linux-mediatek,
linux-i2c, matthias.bgg, linux-arm-kernel
[-- Attachment #1.1: Type: text/plain, Size: 463 bytes --]
On Fri, Oct 30, 2020 at 07:58:01PM +0800, qii.wang@mediatek.com wrote:
> From: Qii Wang <qii.wang@mediatek.com>
>
> 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>
Applied to for-current, thanks!
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
[-- Attachment #2: Type: text/plain, Size: 176 bytes --]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-11-03 21:15 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-30 11:58 [PATCH] i2c: mediatek: move dma reset before i2c reset qii.wang
2020-11-03 21:13 ` Wolfram Sang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).