Skip to content

Commit 7ef5110

Browse files
Li Zetaobroonie
authored andcommitted
spi: meson-spicc: Use helper function devm_clk_get_enabled()
Since commit 7ef9651 ("clk: Provide new devm_clk helpers for prepared and enabled clocks"), devm_clk_get() and clk_prepare_enable() can now be replaced by devm_clk_get_enabled() when driver enables (and possibly prepares) the clocks for the whole lifetime of the device. Moreover, it is no longer necessary to unprepare and disable the clocks explicitly. Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Signed-off-by: Li Zetao <lizetao1@huawei.com> Link: https://lore.kernel.org/r/20230823133938.1359106-16-lizetao1@huawei.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent e2b9622 commit 7ef5110

1 file changed

Lines changed: 6 additions & 27 deletions

File tree

drivers/spi/spi-meson-spicc.c

Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -820,38 +820,26 @@ static int meson_spicc_probe(struct platform_device *pdev)
820820
goto out_master;
821821
}
822822

823-
spicc->core = devm_clk_get(&pdev->dev, "core");
823+
spicc->core = devm_clk_get_enabled(&pdev->dev, "core");
824824
if (IS_ERR(spicc->core)) {
825825
dev_err(&pdev->dev, "core clock request failed\n");
826826
ret = PTR_ERR(spicc->core);
827827
goto out_master;
828828
}
829829

830830
if (spicc->data->has_pclk) {
831-
spicc->pclk = devm_clk_get(&pdev->dev, "pclk");
831+
spicc->pclk = devm_clk_get_enabled(&pdev->dev, "pclk");
832832
if (IS_ERR(spicc->pclk)) {
833833
dev_err(&pdev->dev, "pclk clock request failed\n");
834834
ret = PTR_ERR(spicc->pclk);
835835
goto out_master;
836836
}
837837
}
838838

839-
ret = clk_prepare_enable(spicc->core);
840-
if (ret) {
841-
dev_err(&pdev->dev, "core clock enable failed\n");
842-
goto out_master;
843-
}
844-
845-
ret = clk_prepare_enable(spicc->pclk);
846-
if (ret) {
847-
dev_err(&pdev->dev, "pclk clock enable failed\n");
848-
goto out_core_clk;
849-
}
850-
851839
spicc->pinctrl = devm_pinctrl_get(&pdev->dev);
852840
if (IS_ERR(spicc->pinctrl)) {
853841
ret = PTR_ERR(spicc->pinctrl);
854-
goto out_clk;
842+
goto out_master;
855843
}
856844

857845
device_reset_optional(&pdev->dev);
@@ -878,31 +866,25 @@ static int meson_spicc_probe(struct platform_device *pdev)
878866
ret = meson_spicc_pow2_clk_init(spicc);
879867
if (ret) {
880868
dev_err(&pdev->dev, "pow2 clock registration failed\n");
881-
goto out_clk;
869+
goto out_master;
882870
}
883871

884872
if (spicc->data->has_enhance_clk_div) {
885873
ret = meson_spicc_enh_clk_init(spicc);
886874
if (ret) {
887875
dev_err(&pdev->dev, "clock registration failed\n");
888-
goto out_clk;
876+
goto out_master;
889877
}
890878
}
891879

892880
ret = devm_spi_register_master(&pdev->dev, master);
893881
if (ret) {
894882
dev_err(&pdev->dev, "spi master registration failed\n");
895-
goto out_clk;
883+
goto out_master;
896884
}
897885

898886
return 0;
899887

900-
out_clk:
901-
clk_disable_unprepare(spicc->pclk);
902-
903-
out_core_clk:
904-
clk_disable_unprepare(spicc->core);
905-
906888
out_master:
907889
spi_master_put(master);
908890

@@ -916,9 +898,6 @@ static void meson_spicc_remove(struct platform_device *pdev)
916898
/* Disable SPI */
917899
writel(0, spicc->base + SPICC_CONREG);
918900

919-
clk_disable_unprepare(spicc->core);
920-
clk_disable_unprepare(spicc->pclk);
921-
922901
spi_master_put(spicc->master);
923902
}
924903

0 commit comments

Comments
 (0)