OSDN Git Service

ASoC: SOF: amd: refactor error checks in probe call
authorVijendar Mukunda <Vijendar.Mukunda@amd.com>
Mon, 3 Apr 2023 07:16:45 +0000 (12:46 +0530)
committerMark Brown <broonie@kernel.org>
Mon, 3 Apr 2023 11:15:35 +0000 (12:15 +0100)
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>
sound/soc/sof/amd/acp.c

index e8fe324..dbf9ee6 100644 (file)
@@ -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);