Re: [PATCH] i2c: designware: fix master is holding SCL low while ENABLE bit is disabled
From: Liu Kimriver/刘金河
Date: Sat Sep 07 2024 - 22:57:07 EST
Hi Andi
I am sorry for not replying to questions in time, when I left the office early on Friday.
I sincerely apologize to you again.
I will improve my response progress and follow Andy's suggestion. Thanks.
And will resend new patch V7 on Moday:
[PATCH V7] i2c: designware: fix master is holding SCL low while ENABLE bit is disabled
-----邮件原件-----
发件人: Andi Shyti <andi.shyti@xxxxxxxxxx>
发送时间: 2024年9月7日 5:35
收件人: Liu Kimriver/刘金河 <kimriver.liu@xxxxxxxxxxxx>
抄送: jarkko.nikula@xxxxxxxxxxxxxxx; andriy.shevchenko@xxxxxxxxxxxxxxx; mika.westerberg@xxxxxxxxxxxxxxx; jsd@xxxxxxxxxxxx; linux-i2c@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
主题: Re: [PATCH] i2c: designware: fix master is holding SCL low while ENABLE bit is disabled
Hi Kimriver,
...
> diff --git a/drivers/i2c/busses/i2c-designware-common.c
> b/drivers/i2c/busses/i2c-designware-common.c
> index e8a688d04aee..2b3398cd4382 100644
> --- a/drivers/i2c/busses/i2c-designware-common.c
> +++ b/drivers/i2c/busses/i2c-designware-common.c
> @@ -453,6 +453,17 @@ void __i2c_dw_disable(struct dw_i2c_dev *dev)
>
> abort_needed = raw_intr_stats & DW_IC_INTR_MST_ON_HOLD;
> if (abort_needed) {
> + if (!(enable & DW_IC_ENABLE_ENABLE)) {
> + regmap_write(dev->map, DW_IC_ENABLE, DW_IC_ENABLE_ENABLE);
>BTW, your patch doesn't compile. Please make sure that you have everything in place and please resend.
>This time I expect you to follow Andy's suggestion.
Sorry, I forget to merge DW_IC_ENABLE_ENABLE patch to here. I will update V7 patch on Monday,
[PATCH V7] i2c: designware: fix master is holding SCL low while ENABLE bit is disabled
I will update V7 patch on Monday which includes the following issues:
-------
V6->V7:
1. add Subject versioning
2. change fsleep(25) to usleep_range(25, 250)
3. Add macro definition DW_iC_ENABLE_ENABLE for compiling error
------------------
Best Regards
Kimriver Liu