[PATCH AUTOSEL for 4.14 071/161] ASoC: rockchip: Use dummy_dai for rt5514 dsp dailink

2018-04-08 Thread Sasha Levin
From: Jeffy Chen 

[ Upstream commit fde7f9dbc71365230eeb8c8ea97ce9b552c8e5bd ]

The rt5514 dsp captures pcm data through spi directly, so we should not
use rockchip-i2s as it's cpu dai like other codecs.

Use dummy_dai for rt5514 dsp dailink to make voice wakeup work again.

Reported-by: Jimmy Cheng-Yi Chiang 
Fixes: (72cfb0f20c75 ASoC: rockchip: Use codec of_node and dai_name for rt5514 
dsp)
Signed-off-by: Jeffy Chen 
Tested-by: Brian Norris 
Signed-off-by: Mark Brown 
Signed-off-by: Sasha Levin 
---
 sound/soc/rockchip/rk3399_gru_sound.c | 19 ---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/sound/soc/rockchip/rk3399_gru_sound.c 
b/sound/soc/rockchip/rk3399_gru_sound.c
index 0513fe480353..21ac8d6cce3a 100644
--- a/sound/soc/rockchip/rk3399_gru_sound.c
+++ b/sound/soc/rockchip/rk3399_gru_sound.c
@@ -387,7 +387,8 @@ static const struct snd_soc_dai_link rockchip_dais[] = {
[DAILINK_RT5514_DSP] = {
.name = "RT5514 DSP",
.stream_name = "Wake on Voice",
-   .codec_dai_name = "rt5514-dsp-cpu-dai",
+   .codec_name = "snd-soc-dummy",
+   .codec_dai_name = "snd-soc-dummy-dai",
},
 };
 
@@ -432,7 +433,18 @@ static int rockchip_sound_of_parse_dais(struct device *dev,
if (index < 0)
continue;
 
-   np_cpu = (index == DAILINK_CDNDP) ? np_cpu1 : np_cpu0;
+   switch (index) {
+   case DAILINK_CDNDP:
+   np_cpu = np_cpu1;
+   break;
+   case DAILINK_RT5514_DSP:
+   np_cpu = np_codec;
+   break;
+   default:
+   np_cpu = np_cpu0;
+   break;
+   }
+
if (!np_cpu) {
dev_err(dev, "Missing 'rockchip,cpu' for %s\n",
rockchip_dais[index].name);
@@ -442,7 +454,8 @@ static int rockchip_sound_of_parse_dais(struct device *dev,
dai = >dai_link[card->num_links++];
*dai = rockchip_dais[index];
 
-   dai->codec_of_node = np_codec;
+   if (!dai->codec_name)
+   dai->codec_of_node = np_codec;
dai->platform_of_node = np_cpu;
dai->cpu_of_node = np_cpu;
}
-- 
2.15.1


[PATCH AUTOSEL for 4.14 071/161] ASoC: rockchip: Use dummy_dai for rt5514 dsp dailink

2018-04-08 Thread Sasha Levin
From: Jeffy Chen 

[ Upstream commit fde7f9dbc71365230eeb8c8ea97ce9b552c8e5bd ]

The rt5514 dsp captures pcm data through spi directly, so we should not
use rockchip-i2s as it's cpu dai like other codecs.

Use dummy_dai for rt5514 dsp dailink to make voice wakeup work again.

Reported-by: Jimmy Cheng-Yi Chiang 
Fixes: (72cfb0f20c75 ASoC: rockchip: Use codec of_node and dai_name for rt5514 
dsp)
Signed-off-by: Jeffy Chen 
Tested-by: Brian Norris 
Signed-off-by: Mark Brown 
Signed-off-by: Sasha Levin 
---
 sound/soc/rockchip/rk3399_gru_sound.c | 19 ---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/sound/soc/rockchip/rk3399_gru_sound.c 
b/sound/soc/rockchip/rk3399_gru_sound.c
index 0513fe480353..21ac8d6cce3a 100644
--- a/sound/soc/rockchip/rk3399_gru_sound.c
+++ b/sound/soc/rockchip/rk3399_gru_sound.c
@@ -387,7 +387,8 @@ static const struct snd_soc_dai_link rockchip_dais[] = {
[DAILINK_RT5514_DSP] = {
.name = "RT5514 DSP",
.stream_name = "Wake on Voice",
-   .codec_dai_name = "rt5514-dsp-cpu-dai",
+   .codec_name = "snd-soc-dummy",
+   .codec_dai_name = "snd-soc-dummy-dai",
},
 };
 
@@ -432,7 +433,18 @@ static int rockchip_sound_of_parse_dais(struct device *dev,
if (index < 0)
continue;
 
-   np_cpu = (index == DAILINK_CDNDP) ? np_cpu1 : np_cpu0;
+   switch (index) {
+   case DAILINK_CDNDP:
+   np_cpu = np_cpu1;
+   break;
+   case DAILINK_RT5514_DSP:
+   np_cpu = np_codec;
+   break;
+   default:
+   np_cpu = np_cpu0;
+   break;
+   }
+
if (!np_cpu) {
dev_err(dev, "Missing 'rockchip,cpu' for %s\n",
rockchip_dais[index].name);
@@ -442,7 +454,8 @@ static int rockchip_sound_of_parse_dais(struct device *dev,
dai = >dai_link[card->num_links++];
*dai = rockchip_dais[index];
 
-   dai->codec_of_node = np_codec;
+   if (!dai->codec_name)
+   dai->codec_of_node = np_codec;
dai->platform_of_node = np_cpu;
dai->cpu_of_node = np_cpu;
}
-- 
2.15.1