ASoC: SOF: amd: Add machine driver dsp ops for Renoir platform
authorAjit Kumar Pandey <AjitKumar.Pandey@amd.com>
Wed, 17 Nov 2021 09:37:21 +0000 (11:37 +0200)
committerMark Brown <broonie@kernel.org>
Wed, 17 Nov 2021 17:35:51 +0000 (17:35 +0000)
Add dsp ops callback to select and register machine driver.

Signed-off-by: Ajit Kumar Pandey <AjitKumar.Pandey@amd.com>
Reviewed-by: Bard Liao <bard.liao@intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Link: https://lore.kernel.org/r/20211117093734.17407-9-daniel.baluta@oss.nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/amd/renoir.c

index 0241c5d..3cd269b 100644 (file)
@@ -104,6 +104,23 @@ static struct snd_soc_dai_driver renoir_sof_dai[] = {
        },
 };
 
+static void amd_sof_machine_select(struct snd_sof_dev *sdev)
+{
+       struct snd_sof_pdata *sof_pdata = sdev->pdata;
+       const struct sof_dev_desc *desc = sof_pdata->desc;
+       struct snd_soc_acpi_mach *mach;
+
+       mach = snd_soc_acpi_find_machine(desc->machines);
+       if (!mach) {
+               dev_warn(sdev->dev, "No matching ASoC machine driver found\n");
+               return;
+       }
+
+       sof_pdata->tplg_filename = mach->sof_tplg_filename;
+       sof_pdata->fw_filename = mach->fw_filename;
+       sof_pdata->machine = mach;
+}
+
 /* AMD Renoir DSP ops */
 const struct snd_sof_dsp_ops sof_renoir_ops = {
        /* probe and remove */
@@ -151,6 +168,11 @@ const struct snd_sof_dsp_ops sof_renoir_ops = {
                                  SNDRV_PCM_INFO_INTERLEAVED |
                                  SNDRV_PCM_INFO_PAUSE |
                                  SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
+
+       /* Machine driver callbacks */
+       .machine_select         = amd_sof_machine_select,
+       .machine_register       = sof_machine_register,
+       .machine_unregister     = sof_machine_unregister,
 };
 EXPORT_SYMBOL(sof_renoir_ops);