diff options
author | Jeffy Chen <jeffy.chen@rock-chips.com> | 2017-11-21 03:25:17 -0500 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2018-01-24 12:30:55 -0500 |
commit | fde7f9dbc71365230eeb8c8ea97ce9b552c8e5bd (patch) | |
tree | b419060d28ddcb2f1a59a9f2bc7789ef243d2bbe | |
parent | db51707b9c9aeedd310ebce60f15d5bb006567e0 (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.c | 19 |
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 | ||