mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 04:34:03 +02:00
ASoC: xilinx: xlnx_i2s: Use dev_err_probe() and drop redundant error handling
bui duc phuc <phucduc.bui@gmail.com> says: It replaces dev_err() followed by return with dev_err_probe() where appropriate in probe paths, allowing deferred probe to be handled correctly while simplifying the code. It also removes redundant dev_err() calls after helper functions that already report failures, avoiding duplicate error messages. Link: https://patch.msgid.link/20260710102138.29347-1-phucduc.bui@gmail.com
This commit is contained in:
commit
83800132cd
|
|
@ -185,17 +185,15 @@ static int xlnx_i2s_probe(struct platform_device *pdev)
|
|||
return PTR_ERR(drv_data->base);
|
||||
|
||||
ret = of_property_read_u32(node, "xlnx,num-channels", &drv_data->channels);
|
||||
if (ret < 0) {
|
||||
dev_err(dev, "cannot get supported channels\n");
|
||||
return ret;
|
||||
}
|
||||
if (ret < 0)
|
||||
return dev_err_probe(dev, ret, "cannot get supported channels\n");
|
||||
|
||||
drv_data->channels *= 2;
|
||||
|
||||
ret = of_property_read_u32(node, "xlnx,dwidth", &drv_data->data_width);
|
||||
if (ret < 0) {
|
||||
dev_err(dev, "cannot get data width\n");
|
||||
return ret;
|
||||
}
|
||||
if (ret < 0)
|
||||
return dev_err_probe(dev, ret, "cannot get data width\n");
|
||||
|
||||
switch (drv_data->data_width) {
|
||||
case 16:
|
||||
format = SNDRV_PCM_FMTBIT_S16_LE;
|
||||
|
|
@ -233,10 +231,8 @@ static int xlnx_i2s_probe(struct platform_device *pdev)
|
|||
|
||||
ret = devm_snd_soc_register_component(&pdev->dev, &xlnx_i2s_component,
|
||||
&drv_data->dai_drv, 1);
|
||||
if (ret) {
|
||||
dev_err(&pdev->dev, "i2s component registration failed\n");
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
dev_info(&pdev->dev, "%s DAI registered\n", drv_data->dai_drv.name);
|
||||
|
||||
|
|
|
|||
|
|
@ -249,21 +249,18 @@ static int xlnx_spdif_probe(struct platform_device *pdev)
|
|||
return -ENOMEM;
|
||||
|
||||
ctx->axi_clk = devm_clk_get_enabled(dev, "s_axi_aclk");
|
||||
if (IS_ERR(ctx->axi_clk)) {
|
||||
ret = PTR_ERR(ctx->axi_clk);
|
||||
dev_err(dev, "failed to get s_axi_aclk(%d)\n", ret);
|
||||
return ret;
|
||||
}
|
||||
if (IS_ERR(ctx->axi_clk))
|
||||
return dev_err_probe(dev, PTR_ERR(ctx->axi_clk),
|
||||
"failed to get s_axi_aclk\n");
|
||||
|
||||
ctx->base = devm_platform_ioremap_resource(pdev, 0);
|
||||
if (IS_ERR(ctx->base))
|
||||
return PTR_ERR(ctx->base);
|
||||
|
||||
ret = of_property_read_u32(node, "xlnx,spdif-mode", &ctx->mode);
|
||||
if (ret < 0) {
|
||||
dev_err(dev, "cannot get SPDIF mode\n");
|
||||
return ret;
|
||||
}
|
||||
if (ret < 0)
|
||||
return dev_err_probe(dev, ret, "cannot get SPDIF mode\n");
|
||||
|
||||
if (ctx->mode) {
|
||||
dai_drv = &xlnx_spdif_tx_dai;
|
||||
} else {
|
||||
|
|
@ -274,29 +271,23 @@ static int xlnx_spdif_probe(struct platform_device *pdev)
|
|||
ret = devm_request_irq(dev, ret,
|
||||
xlnx_spdifrx_irq_handler,
|
||||
0, "XLNX_SPDIF_RX", ctx);
|
||||
if (ret) {
|
||||
dev_err(dev, "spdif rx irq request failed\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
init_waitqueue_head(&ctx->chsts_q);
|
||||
dai_drv = &xlnx_spdif_rx_dai;
|
||||
}
|
||||
|
||||
ret = of_property_read_u32(node, "xlnx,aud_clk_i", &ctx->aclk);
|
||||
if (ret < 0) {
|
||||
dev_err(dev, "cannot get aud_clk_i value\n");
|
||||
return ret;
|
||||
}
|
||||
if (ret < 0)
|
||||
return dev_err_probe(dev, ret, "cannot get aud_clk_i value\n");
|
||||
|
||||
dev_set_drvdata(dev, ctx);
|
||||
|
||||
ret = devm_snd_soc_register_component(dev, &xlnx_spdif_component,
|
||||
dai_drv, 1);
|
||||
if (ret) {
|
||||
dev_err(dev, "SPDIF component registration failed\n");
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
writel(XSPDIF_SOFT_RESET_VALUE, ctx->base + XSPDIF_SOFT_RESET_REG);
|
||||
dev_info(dev, "%s DAI registered\n", dai_drv->name);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user