Skip to content

Commit e63227c

Browse files
MikeLooijmansbebarino
authored andcommitted
clk: lmk04832: Don't disable vco clock on probe fail
The probe() method never calls clk_prepare_enable(), so it should not call clk_disable_unprepare() for the vco.clk in the error path. Fixes a "lmk-vco already disabled" BUG when probe fails. Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> Link: https://lore.kernel.org/r/20230802064100.15793-2-mike.looijmans@topic.nl Reviewed-by: Liam Beguin <liambeguin@gmail.com> Signed-off-by: Stephen Boyd <sboyd@kernel.org>
1 parent f6d6c11 commit e63227c

File tree

1 file changed

+4
-7
lines changed

1 file changed

+4
-7
lines changed

drivers/clk/clk-lmk04832.c

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1505,21 +1505,21 @@ static int lmk04832_probe(struct spi_device *spi)
15051505
ret = clk_set_rate(lmk->vco.clk, lmk->vco_rate);
15061506
if (ret) {
15071507
dev_err(lmk->dev, "failed to set VCO rate\n");
1508-
goto err_disable_vco;
1508+
goto err_disable_oscin;
15091509
}
15101510
}
15111511

15121512
ret = lmk04832_register_sclk(lmk);
15131513
if (ret) {
15141514
dev_err(lmk->dev, "failed to init SYNC/SYSREF clock path\n");
1515-
goto err_disable_vco;
1515+
goto err_disable_oscin;
15161516
}
15171517

15181518
for (i = 0; i < info->num_channels; i++) {
15191519
ret = lmk04832_register_clkout(lmk, i);
15201520
if (ret) {
15211521
dev_err(lmk->dev, "failed to register clk %d\n", i);
1522-
goto err_disable_vco;
1522+
goto err_disable_oscin;
15231523
}
15241524
}
15251525

@@ -1528,16 +1528,13 @@ static int lmk04832_probe(struct spi_device *spi)
15281528
lmk->clk_data);
15291529
if (ret) {
15301530
dev_err(lmk->dev, "failed to add provider (%d)\n", ret);
1531-
goto err_disable_vco;
1531+
goto err_disable_oscin;
15321532
}
15331533

15341534
spi_set_drvdata(spi, lmk);
15351535

15361536
return 0;
15371537

1538-
err_disable_vco:
1539-
clk_disable_unprepare(lmk->vco.clk);
1540-
15411538
err_disable_oscin:
15421539
clk_disable_unprepare(lmk->oscin);
15431540

0 commit comments

Comments
 (0)