summaryrefslogtreecommitdiff
path: root/drivers/i2c/busses
diff options
context:
space:
mode:
authorArtem Shimko <a.shimko.dev@gmail.com>2026-01-30 14:10:37 +0300
committerAndi Shyti <andi.shyti@kernel.org>2026-02-05 11:28:22 +0100
commit9eb9f7c304f7a17fd5e3bfa462a36e77dbf2a3e4 (patch)
treef48bac67a43310096d7eb03953e38359e1d42900 /drivers/i2c/busses
parent78821a753fc911a64b5bccc44cb13fd7203aea13 (diff)
downloadlwn-9eb9f7c304f7a17fd5e3bfa462a36e77dbf2a3e4.tar.gz
lwn-9eb9f7c304f7a17fd5e3bfa462a36e77dbf2a3e4.zip
i2c: designware-platdrv: fix cleanup on probe failure
Simplify the error handling in dw_i2c_plat_probe() by consolidating cleanup operations directly in the error path instead of using a goto label. This eliminates the goto statement, makes the error handling more transparent, and reduces code indirection while maintaining identical cleanup behavior on probe failure. Signed-off-by: Artem Shimko <a.shimko.dev@gmail.com> Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Andi Shyti <andi.shyti@kernel.org> Link: https://lore.kernel.org/r/20260130111039.874548-3-a.shimko.dev@gmail.com
Diffstat (limited to 'drivers/i2c/busses')
-rw-r--r--drivers/i2c/busses/i2c-designware-platdrv.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c
index f591da26916f..426ffec06e22 100644
--- a/drivers/i2c/busses/i2c-designware-platdrv.c
+++ b/drivers/i2c/busses/i2c-designware-platdrv.c
@@ -225,14 +225,11 @@ static int dw_i2c_plat_probe(struct platform_device *pdev)
pm_runtime_enable(device);
ret = i2c_dw_probe(dev);
- if (ret)
- goto exit_probe;
-
- return ret;
+ if (ret) {
+ dw_i2c_plat_pm_cleanup(dev);
+ i2c_dw_prepare_clk(dev, false);
+ }
-exit_probe:
- dw_i2c_plat_pm_cleanup(dev);
- i2c_dw_prepare_clk(dev, false);
return ret;
}