ASoC: samsung: odroid: Add missing DAPM routes 41/200641/2
authorSylwester Nawrocki <s.nawrocki@samsung.com>
Fri, 15 Feb 2019 12:04:22 +0000 (13:04 +0100)
committerSylwester Nawrocki <s.nawrocki@samsung.com>
Mon, 4 Mar 2019 17:05:33 +0000 (18:05 +0100)
With old DTS there will be missing DAPM routes linking BE with CODECs.
Add those routes in the card driver so sound works properly on Odroid
XU3/4 also without DTS updates enabling the secondary PCM.

Change-Id: I0a2a8e59859cdaf46da0563e30278dc9a8fe2376
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/samsung/odroid.c

index 941e8c3..5b2bcd1 100644 (file)
@@ -149,6 +149,12 @@ static const struct snd_soc_ops odroid_card_be_ops = {
        .trigger = odroid_card_be_trigger,
 };
 
+/* DAPM routes for backward compatibility with old DTS */
+static const struct snd_soc_dapm_route odroid_dapm_routes[] = {
+       { "I2S Playback", NULL, "Mixer DAI TX" },
+       { "HiFi Playback", NULL, "Mixer DAI TX" },
+};
+
 static struct snd_soc_dai_link odroid_card_dais[] = {
        {
                /* Primary FE <-> BE link */
@@ -237,11 +243,15 @@ static int odroid_audio_probe(struct platform_device *pdev)
        /*
         * For backwards compatibility create the secondary CPU DAI link only
         * if there are 2 CPU DAI entries in the cpu sound-dai property in DT.
+        * Also add required DAPM routes not available in old DTS.
         */
        num_pcms = of_count_phandle_with_args(cpu, "sound-dai",
                                              "#sound-dai-cells");
-       if (num_pcms == 1)
+       if (num_pcms == 1) {
+               card->dapm_routes = odroid_dapm_routes;
+               card->num_dapm_routes = ARRAY_SIZE(odroid_dapm_routes);
                card->num_links--;
+       }
 
        for (i = 0; i < num_pcms; i++, link += 2) {
                ret = of_parse_phandle_with_args(cpu, "sound-dai",