ASoC: samsung: Use 'samsung-i2s' cpu_dai for dai_links
authorJaechul Lee <jcsing.lee@samsung.com>
Wed, 6 Sep 2017 01:04:14 +0000 (10:04 +0900)
committerMark Brown <broonie@kernel.org>
Tue, 19 Sep 2017 14:59:03 +0000 (15:59 +0100)
Add specific cpu_dai_name to dai_link because samsung i2s driver registers
two dais and components. Selecting one of them clearly is needed more
information like cpu_dai_name, of_node. The reason why the dai_links have
to use 'samsung-i2s' for cpu_dai is that 'samsung-i2s-sec' doesn't have a
capture functionality.

Without this code, cpu_dai will be selected the first one of the
component_list. For example, if I describe nothing to cpu_dai_name,
'samsung-i2s-sec' might be selected to HiFi Primay.

Signed-off-by: Jaechul Lee <jcsing.lee@samsung.com>
Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/samsung/tm2_wm5110.c

index 68698f3..710e215 100644 (file)
@@ -383,6 +383,7 @@ static struct snd_soc_dai_link tm2_dai_links[] = {
        {
                .name           = "WM5110 AIF1",
                .stream_name    = "HiFi Primary",
+               .cpu_dai_name   = SAMSUNG_I2S_DAI,
                .codec_dai_name = "wm5110-aif1",
                .ops            = &tm2_aif1_ops,
                .dai_fmt        = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
@@ -390,6 +391,7 @@ static struct snd_soc_dai_link tm2_dai_links[] = {
        }, {
                .name           = "WM5110 Voice",
                .stream_name    = "Voice call",
+               .cpu_dai_name   = SAMSUNG_I2S_DAI,
                .codec_dai_name = "wm5110-aif2",
                .ops            = &tm2_aif2_ops,
                .dai_fmt        = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
@@ -398,6 +400,7 @@ static struct snd_soc_dai_link tm2_dai_links[] = {
        }, {
                .name           = "WM5110 BT",
                .stream_name    = "Bluetooth",
+               .cpu_dai_name   = SAMSUNG_I2S_DAI,
                .codec_dai_name = "wm5110-aif3",
                .dai_fmt        = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
                                  SND_SOC_DAIFMT_CBM_CFM,
@@ -477,7 +480,6 @@ static int tm2_probe(struct platform_device *pdev)
        }
 
        for (i = 0; i < card->num_links; i++) {
-               card->dai_link[i].cpu_dai_name = NULL;
                card->dai_link[i].cpu_name = NULL;
                card->dai_link[i].platform_name = NULL;
                card->dai_link[i].codec_of_node = codec_dai_node;