ASoC: Intel: sof_rt5682: support ALC1011 on cml boards
authorBrent Lu <brent.lu@intel.com>
Thu, 11 Apr 2024 22:03:45 +0000 (17:03 -0500)
committerMark Brown <broonie@kernel.org>
Sun, 14 Apr 2024 07:54:30 +0000 (16:54 +0900)
For cml boards, ALC1011 speaker amplifier is supported by machine
driver cml_rt1011_rt5682. Use same driver name for backward
compatibility with existing devices on market.

Reviewed-by: Chao Song <chao.song@linux.intel.com>
Signed-off-by: Brent Lu <brent.lu@intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20240411220347.131267-11-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/sof_rt5682.c

index 326d23dd79de63a36efa3014147f99c36ae6fed6..735e07ea62bdbb1e5a0f760ff7138ed87cb5b933 100644 (file)
@@ -606,6 +606,7 @@ static int sof_audio_probe(struct platform_device *pdev)
 {
        struct snd_soc_acpi_mach *mach = pdev->dev.platform_data;
        struct sof_card_private *ctx;
+       char *card_name;
        bool is_legacy_cpu = false;
        int ret;
 
@@ -631,14 +632,27 @@ static int sof_audio_probe(struct platform_device *pdev)
                return -ENOMEM;
 
        if (ctx->codec_type == CODEC_RT5650) {
-               sof_audio_card_rt5682.name = devm_kstrdup(&pdev->dev, "rt5650",
-                                                         GFP_KERNEL);
+               card_name = devm_kstrdup(&pdev->dev, "rt5650", GFP_KERNEL);
+               if (!card_name)
+                       return -ENOMEM;
+
+               sof_audio_card_rt5682.name = card_name;
 
                /* create speaker dai link also */
                if (ctx->amp_type == CODEC_NONE)
                        ctx->amp_type = CODEC_RT5650;
        }
 
+       if (ctx->amp_type == CODEC_RT1011 && soc_intel_is_cml()) {
+               /* backward-compatible with existing cml devices */
+               card_name = devm_kstrdup(&pdev->dev, "cml_rt1011_rt5682",
+                                        GFP_KERNEL);
+               if (!card_name)
+                       return -ENOMEM;
+
+               sof_audio_card_rt5682.name = card_name;
+       }
+
        if (is_legacy_cpu) {
                ctx->rt5682.is_legacy_cpu = true;
                ctx->dmic_be_num = 0;