diff options
author | Vijendar Mukunda <Vijendar.Mukunda@amd.com> | 2023-04-03 09:16:45 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2023-04-03 13:15:35 +0200 |
commit | c7a3662f14d7e0add7b50dc2f971e77bebb333cc (patch) | |
tree | da7936d4b4bb36c30619cecfa047a12c95b40b00 /sound/soc/sof/amd | |
parent | ASoC: SOF: amd: refactor get_chip_info callback (diff) | |
download | linux-c7a3662f14d7e0add7b50dc2f971e77bebb333cc.tar.xz linux-c7a3662f14d7e0add7b50dc2f971e77bebb333cc.zip |
ASoC: SOF: amd: refactor error checks in probe call
Refactor error checks code in probe() callback.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Link: https://lore.kernel.org/r/20230403071651.919027-5-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/sof/amd')
-rw-r--r-- | sound/soc/sof/amd/acp.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/sound/soc/sof/amd/acp.c b/sound/soc/sof/amd/acp.c index e8fe324c23d0..dbf9ee6d79ed 100644 --- a/sound/soc/sof/amd/acp.c +++ b/sound/soc/sof/amd/acp.c @@ -503,16 +503,12 @@ int amd_sof_acp_probe(struct snd_sof_dev *sdev) if (ret < 0) { dev_err(sdev->dev, "failed to register IRQ %d\n", sdev->ipc_irq); - pci_dev_put(adata->smn_dev); - return ret; + goto free_smn_dev; } ret = acp_init(sdev); - if (ret < 0) { - free_irq(sdev->ipc_irq, sdev); - pci_dev_put(adata->smn_dev); - return ret; - } + if (ret < 0) + goto free_ipc_irq; sdev->dsp_box.offset = 0; sdev->dsp_box.size = BOX_SIZE_512; @@ -528,6 +524,12 @@ int amd_sof_acp_probe(struct snd_sof_dev *sdev) acp_dsp_stream_init(sdev); return 0; + +free_ipc_irq: + free_irq(sdev->ipc_irq, sdev); +free_smn_dev: + pci_dev_put(adata->smn_dev); + return ret; } EXPORT_SYMBOL_NS(amd_sof_acp_probe, SND_SOC_SOF_AMD_COMMON); |