Messages in this thread Patch in this message | | | From | Jianqun Xu <> | Subject | [PATCH 15/20] gpio/rockchip: disable and put clocks when gpiolib register failed | Date | Tue, 20 Sep 2022 18:31:03 +0800 |
| |
When gpiolib register failed, the clocks should be disabled and put.
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com> --- drivers/gpio/gpio-rockchip.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/gpio/gpio-rockchip.c b/drivers/gpio/gpio-rockchip.c index 4fcd75d710c1..09ed5c880dde 100644 --- a/drivers/gpio/gpio-rockchip.c +++ b/drivers/gpio/gpio-rockchip.c @@ -746,14 +746,21 @@ static int rockchip_gpio_probe(struct platform_device *pdev) ret = rockchip_gpiolib_register(bank); if (ret) { - clk_disable_unprepare(bank->clk); - return ret; + dev_err(bank->dev, "Failed to register gpio %d\n", ret); + goto err_put_clk; } platform_set_drvdata(pdev, bank); dev_info(dev, "probed %pOF\n", np); return 0; +err_put_clk: + clk_put(bank->clk); + clk_put(bank->db_clk); + clk_disable_unprepare(bank->clk); + clk_disable_unprepare(bank->db_clk); + + return ret; } static int rockchip_gpio_remove(struct platform_device *pdev) -- 2.25.1
| |