Re: [PATCH v2 2/2] i2c: designware: Add disabling clocks when probe fails

From: Jarkko Nikula
Date: Wed Jul 30 2025 - 09:34:41 EST


Hi

On 7/24/25 7:22 AM, Kunihiko Hayashi wrote:
After an error occurs during probing state, dw_i2c_plat_pm_cleanup() is
called. However, this function doesn't disable clocks and the clock-enable
count keeps increasing. Should disable these clocks explicitly.

Co-developed-by: Kohei Ito <ito.kohei@xxxxxxxxxxxxx>
Signed-off-by: Kohei Ito <ito.kohei@xxxxxxxxxxxxx>
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@xxxxxxxxxxxxx>
---
drivers/i2c/busses/i2c-designware-platdrv.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c
index edaebfb165f9..f6424dcfdff6 100644
--- a/drivers/i2c/busses/i2c-designware-platdrv.c
+++ b/drivers/i2c/busses/i2c-designware-platdrv.c
@@ -308,6 +308,7 @@ static int dw_i2c_plat_probe(struct platform_device *pdev)
exit_probe:
dw_i2c_plat_pm_cleanup(dev);
+ i2c_dw_prepare_clk(dev, false);
exit_reset:
reset_control_assert(dev->rst);
return ret;

Acked-by: Jarkko Nikula <jarkko.nikula@xxxxxxxxxxxxxxx>