]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
i2c: designware: Add disabling clocks when probe fails
authorKunihiko Hayashi <hayashi.kunihiko@socionext.com>
Thu, 24 Jul 2025 04:22:11 +0000 (13:22 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 Oct 2025 09:56:29 +0000 (11:56 +0200)
[ Upstream commit c149841b069ccc6e480b00e11f35a57b5d88c7bb ]

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.

Fixes: 7272194ed391f ("i2c-designware: add minimal support for runtime PM")
Co-developed-by: Kohei Ito <ito.kohei@socionext.com>
Signed-off-by: Kohei Ito <ito.kohei@socionext.com>
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Acked-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/i2c/busses/i2c-designware-platdrv.c

index 74182db03a88b36946b6f897e5de1db62c32b222..a29f4ef793cf308742f25c779099be6fd31809e4 100644 (file)
@@ -380,6 +380,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;