History

ASoC: xilinx: xlnx_spdif: Simpify using devm_clk_get_enabled()

Clock handling can be very simlified with using devm_clk_get_enabled() as was done by commit 8d2aaf4382b7 ("gpio: zynq: Simplify using devm_clk_get_enabled()").

Michal Simek committed 1 year ago

Commit fee89dd1 parent e436d431 file · +11 −27Browse files

Unified · Split

sound/soc/xilinx/xlnx_spdif.c+11−27
@@ -248,41 +248,35 @@ static int xlnx_spdif_probe(struct platform_device *pdev) · 247 unmodified lines
248248 if (!ctx)
249249 return -ENOMEM;
250250
251− ctx->axi_clk = devm_clk_get(dev, "s_axi_aclk");
251+ ctx->axi_clk = devm_clk_get_enabled(dev, "s_axi_aclk");
252252 if (IS_ERR(ctx->axi_clk)) {
253253 ret = PTR_ERR(ctx->axi_clk);
254254 dev_err(dev, "failed to get s_axi_aclk(%d)\n", ret);
255255 return ret;
256256 }
257− ret = clk_prepare_enable(ctx->axi_clk);
258− if (ret) {
259− dev_err(dev, "failed to enable s_axi_aclk(%d)\n", ret);
260− return ret;
261− }
262257
263258 ctx->base = devm_platform_ioremap_resource(pdev, 0);
264− if (IS_ERR(ctx->base)) {
265− ret = PTR_ERR(ctx->base);
266− goto clk_err;
267− }
259+ if (IS_ERR(ctx->base))
260+ return PTR_ERR(ctx->base);
261+
268262 ret = of_property_read_u32(node, "xlnx,spdif-mode", &ctx->mode);
269263 if (ret < 0) {
270264 dev_err(dev, "cannot get SPDIF mode\n");
271− goto clk_err;
265+ return ret;
272266 }
273267 if (ctx->mode) {
274268 dai_drv = &xlnx_spdif_tx_dai;
275269 } else {
276270 ret = platform_get_irq(pdev, 0);
277271 if (ret < 0)
278− goto clk_err;
272+ return ret;
273+
279274 ret = devm_request_irq(dev, ret,
280275 xlnx_spdifrx_irq_handler,
281276 0, "XLNX_SPDIF_RX", ctx);
282277 if (ret) {
283278 dev_err(dev, "spdif rx irq request failed\n");
284− ret = -ENODEV;
285− goto clk_err;
279+ return -ENODEV;
286280 }
287281
288282 init_waitqueue_head(&ctx->chsts_q);
@@ -292,7 +286,7 @@ static int xlnx_spdif_probe(struct platform_device *pdev) · 3 unmodified lines
292286 ret = of_property_read_u32(node, "xlnx,aud_clk_i", &ctx->aclk);
293287 if (ret < 0) {
294288 dev_err(dev, "cannot get aud_clk_i value\n");
295− goto clk_err;
289+ return ret;
296290 }
297291
298292 dev_set_drvdata(dev, ctx);
@@ -301,22 +295,13 @@ static int xlnx_spdif_probe(struct platform_device *pdev) · 2 unmodified lines
301295 dai_drv, 1);
302296 if (ret) {
303297 dev_err(dev, "SPDIF component registration failed\n");
304− goto clk_err;
298+ return ret;
305299 }
306300
307301 writel(XSPDIF_SOFT_RESET_VALUE, ctx->base + XSPDIF_SOFT_RESET_REG);
308302 dev_info(dev, "%s DAI registered\n", dai_drv->name);
309303
310−clk_err:
311− clk_disable_unprepare(ctx->axi_clk);
312− return ret;
313−}
314−
315−static void xlnx_spdif_remove(struct platform_device *pdev)
316−{
317− struct spdif_dev_data *ctx = dev_get_drvdata(&pdev->dev);
318−
319− clk_disable_unprepare(ctx->axi_clk);
304+ return 0;
320305 }
321306
322307 static struct platform_driver xlnx_spdif_driver = {
@@ -325,7 +310,6 @@ static struct platform_driver xlnx_spdif_driver = { · 2 unmodified lines
325310 .of_match_table = xlnx_spdif_of_match,
326311 },
327312 .probe = xlnx_spdif_probe,
328− .remove = xlnx_spdif_remove,
329313 };
330314 module_platform_driver(xlnx_spdif_driver);
331315

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t