Commit a2c2690f authored by Christophe JAILLET's avatar Christophe JAILLET Committed by Miquel Raynal

mtd: st_spi_fsm: Use the devm_clk_get_enabled() helper function

Use the devm_clk_get_enabled() helper function instead of hand-writing it.
It saves some line of codes.
Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/4025ec3980a956b0e776024e88ec960afc457501.1681636580.git.christophe.jaillet@wanadoo.fr
parent ac9a7868
...@@ -2046,34 +2046,26 @@ static int stfsm_probe(struct platform_device *pdev) ...@@ -2046,34 +2046,26 @@ static int stfsm_probe(struct platform_device *pdev)
return PTR_ERR(fsm->base); return PTR_ERR(fsm->base);
} }
fsm->clk = devm_clk_get(&pdev->dev, NULL); fsm->clk = devm_clk_get_enabled(&pdev->dev, NULL);
if (IS_ERR(fsm->clk)) { if (IS_ERR(fsm->clk)) {
dev_err(fsm->dev, "Couldn't find EMI clock.\n"); dev_err(fsm->dev, "Couldn't find EMI clock.\n");
return PTR_ERR(fsm->clk); return PTR_ERR(fsm->clk);
} }
ret = clk_prepare_enable(fsm->clk);
if (ret) {
dev_err(fsm->dev, "Failed to enable EMI clock.\n");
return ret;
}
mutex_init(&fsm->lock); mutex_init(&fsm->lock);
ret = stfsm_init(fsm); ret = stfsm_init(fsm);
if (ret) { if (ret) {
dev_err(&pdev->dev, "Failed to initialise FSM Controller\n"); dev_err(&pdev->dev, "Failed to initialise FSM Controller\n");
goto err_clk_unprepare; return ret;
} }
stfsm_fetch_platform_configs(pdev); stfsm_fetch_platform_configs(pdev);
/* Detect SPI FLASH device */ /* Detect SPI FLASH device */
info = stfsm_jedec_probe(fsm); info = stfsm_jedec_probe(fsm);
if (!info) { if (!info)
ret = -ENODEV; return -ENODEV;
goto err_clk_unprepare;
}
fsm->info = info; fsm->info = info;
/* Use device size to determine address width */ /* Use device size to determine address width */
...@@ -2089,7 +2081,7 @@ static int stfsm_probe(struct platform_device *pdev) ...@@ -2089,7 +2081,7 @@ static int stfsm_probe(struct platform_device *pdev)
else else
ret = stfsm_prepare_rwe_seqs_default(fsm); ret = stfsm_prepare_rwe_seqs_default(fsm);
if (ret) if (ret)
goto err_clk_unprepare; return ret;
fsm->mtd.name = info->name; fsm->mtd.name = info->name;
fsm->mtd.dev.parent = &pdev->dev; fsm->mtd.dev.parent = &pdev->dev;
...@@ -2112,13 +2104,7 @@ static int stfsm_probe(struct platform_device *pdev) ...@@ -2112,13 +2104,7 @@ static int stfsm_probe(struct platform_device *pdev)
(long long)fsm->mtd.size, (long long)(fsm->mtd.size >> 20), (long long)fsm->mtd.size, (long long)(fsm->mtd.size >> 20),
fsm->mtd.erasesize, (fsm->mtd.erasesize >> 10)); fsm->mtd.erasesize, (fsm->mtd.erasesize >> 10));
ret = mtd_device_register(&fsm->mtd, NULL, 0); return mtd_device_register(&fsm->mtd, NULL, 0);
if (ret) {
err_clk_unprepare:
clk_disable_unprepare(fsm->clk);
}
return ret;
} }
static int stfsm_remove(struct platform_device *pdev) static int stfsm_remove(struct platform_device *pdev)
...@@ -2127,8 +2113,6 @@ static int stfsm_remove(struct platform_device *pdev) ...@@ -2127,8 +2113,6 @@ static int stfsm_remove(struct platform_device *pdev)
WARN_ON(mtd_device_unregister(&fsm->mtd)); WARN_ON(mtd_device_unregister(&fsm->mtd));
clk_disable_unprepare(fsm->clk);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment