aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeffy Chen <jeffy.chen@rock-chips.com>2017-11-21 03:25:17 -0500
committerMark Brown <broonie@kernel.org>2018-01-24 12:30:55 -0500
commitfde7f9dbc71365230eeb8c8ea97ce9b552c8e5bd (patch)
treeb419060d28ddcb2f1a59a9f2bc7789ef243d2bbe
parentdb51707b9c9aeedd310ebce60f15d5bb006567e0 (diff)
ASoC: rockchip: Use dummy_dai for rt5514 dsp dailink
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 <cychiang@google.com> Fixes: (72cfb0f20c75 ASoC: rockchip: Use codec of_node and dai_name for rt5514 dsp) Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com> Tested-by: Brian Norris <briannorris@chromium.org> Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--sound/soc/rockchip/rk3399_gru_sound.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/sound/soc/rockchip/rk3399_gru_sound.c b/sound/soc/rockchip/rk3399_gru_sound.c
index d64fbbd50544..aa8ffd035377 100644
--- a/sound/soc/rockchip/rk3399_gru_sound.c
+++ b/sound/soc/rockchip/rk3399_gru_sound.c
@@ -367,7 +367,8 @@ static const struct snd_soc_dai_link rockchip_dais[] = {
367 [DAILINK_RT5514_DSP] = { 367 [DAILINK_RT5514_DSP] = {
368 .name = "RT5514 DSP", 368 .name = "RT5514 DSP",
369 .stream_name = "Wake on Voice", 369 .stream_name = "Wake on Voice",
370 .codec_dai_name = "rt5514-dsp-cpu-dai", 370 .codec_name = "snd-soc-dummy",
371 .codec_dai_name = "snd-soc-dummy-dai",
371 }, 372 },
372}; 373};
373 374
@@ -528,7 +529,18 @@ static int rockchip_sound_of_parse_dais(struct device *dev,
528 if (index < 0) 529 if (index < 0)
529 continue; 530 continue;
530 531
531 np_cpu = (index == DAILINK_CDNDP) ? np_cpu1 : np_cpu0; 532 switch (index) {
533 case DAILINK_CDNDP:
534 np_cpu = np_cpu1;
535 break;
536 case DAILINK_RT5514_DSP:
537 np_cpu = np_codec;
538 break;
539 default:
540 np_cpu = np_cpu0;
541 break;
542 }
543
532 if (!np_cpu) { 544 if (!np_cpu) {
533 dev_err(dev, "Missing 'rockchip,cpu' for %s\n", 545 dev_err(dev, "Missing 'rockchip,cpu' for %s\n",
534 rockchip_dais[index].name); 546 rockchip_dais[index].name);
@@ -538,7 +550,8 @@ static int rockchip_sound_of_parse_dais(struct device *dev,
538 dai = &card->dai_link[card->num_links++]; 550 dai = &card->dai_link[card->num_links++];
539 *dai = rockchip_dais[index]; 551 *dai = rockchip_dais[index];
540 552
541 dai->codec_of_node = np_codec; 553 if (!dai->codec_name)
554 dai->codec_of_node = np_codec;
542 dai->platform_of_node = np_cpu; 555 dai->platform_of_node = np_cpu;
543 dai->cpu_of_node = np_cpu; 556 dai->cpu_of_node = np_cpu;
544 557