mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-09-21 12:11:49 +08:00
gpio: xilinx: Use helper function devm_clk_get_optional_enabled()
devm_clk_get_optional() and clk_prepare_enable() can be replaced by helper function devm_clk_get_optional_enabled(). Let's simplify code with use of devm_clk_get_optional_enabled() and avoid calling clk_disable_unprepare(). Signed-off-by: Zhang Zekun <zhangzekun11@huawei.com> Link: https://lore.kernel.org/r/20240904092311.9544-5-zhangzekun11@huawei.com Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
parent
162b169656
commit
4e26ddab82
@ -333,12 +333,9 @@ static int __maybe_unused xgpio_suspend(struct device *dev)
|
||||
*/
|
||||
static void xgpio_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct xgpio_instance *gpio = platform_get_drvdata(pdev);
|
||||
|
||||
pm_runtime_get_sync(&pdev->dev);
|
||||
pm_runtime_put_noidle(&pdev->dev);
|
||||
pm_runtime_disable(&pdev->dev);
|
||||
clk_disable_unprepare(gpio->clk);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -644,15 +641,10 @@ static int xgpio_probe(struct platform_device *pdev)
|
||||
return PTR_ERR(chip->regs);
|
||||
}
|
||||
|
||||
chip->clk = devm_clk_get_optional(&pdev->dev, NULL);
|
||||
chip->clk = devm_clk_get_optional_enabled(&pdev->dev, NULL);
|
||||
if (IS_ERR(chip->clk))
|
||||
return dev_err_probe(&pdev->dev, PTR_ERR(chip->clk), "input clock not found.\n");
|
||||
|
||||
status = clk_prepare_enable(chip->clk);
|
||||
if (status < 0) {
|
||||
dev_err(&pdev->dev, "Failed to prepare clk\n");
|
||||
return status;
|
||||
}
|
||||
pm_runtime_get_noresume(&pdev->dev);
|
||||
pm_runtime_set_active(&pdev->dev);
|
||||
pm_runtime_enable(&pdev->dev);
|
||||
@ -699,7 +691,6 @@ skip_irq:
|
||||
err_pm_put:
|
||||
pm_runtime_disable(&pdev->dev);
|
||||
pm_runtime_put_noidle(&pdev->dev);
|
||||
clk_disable_unprepare(chip->clk);
|
||||
return status;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user