Commit f0900eb2 authored by Subhransu S. Prusty's avatar Subhransu S. Prusty Committed by Mark Brown

ASoC: Intel: Skylake: Fix to use correct macros for the path iteration

In case of playback, for the BE dai source path should be iterated to find
the pipe params. With sink path iterated, this resulted in a loop and kernel
panic with page request failure.
Similar are the cases for Capture and FE dais. Using correct macros to fix
the panic
Signed-off-by: default avatarSubhransu S. Prusty <subhransu.s.prusty@intel.com>
Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent bc03281a
...@@ -844,7 +844,7 @@ skl_tplg_fe_get_cpr_module(struct snd_soc_dai *dai, int stream) ...@@ -844,7 +844,7 @@ skl_tplg_fe_get_cpr_module(struct snd_soc_dai *dai, int stream)
if (stream == SNDRV_PCM_STREAM_PLAYBACK) { if (stream == SNDRV_PCM_STREAM_PLAYBACK) {
w = dai->playback_widget; w = dai->playback_widget;
snd_soc_dapm_widget_for_each_source_path(w, p) { snd_soc_dapm_widget_for_each_sink_path(w, p) {
if (p->connect && p->sink->power && if (p->connect && p->sink->power &&
is_skl_dsp_widget_type(p->sink)) is_skl_dsp_widget_type(p->sink))
continue; continue;
...@@ -857,7 +857,7 @@ skl_tplg_fe_get_cpr_module(struct snd_soc_dai *dai, int stream) ...@@ -857,7 +857,7 @@ skl_tplg_fe_get_cpr_module(struct snd_soc_dai *dai, int stream)
} }
} else { } else {
w = dai->capture_widget; w = dai->capture_widget;
snd_soc_dapm_widget_for_each_sink_path(w, p) { snd_soc_dapm_widget_for_each_source_path(w, p) {
if (p->connect && p->source->power && if (p->connect && p->source->power &&
is_skl_dsp_widget_type(p->source)) is_skl_dsp_widget_type(p->source))
continue; continue;
...@@ -945,7 +945,7 @@ static int skl_tplg_be_set_src_pipe_params(struct snd_soc_dai *dai, ...@@ -945,7 +945,7 @@ static int skl_tplg_be_set_src_pipe_params(struct snd_soc_dai *dai,
{ {
struct snd_soc_dapm_path *p; struct snd_soc_dapm_path *p;
snd_soc_dapm_widget_for_each_sink_path(w, p) { snd_soc_dapm_widget_for_each_source_path(w, p) {
if (p->connect && is_skl_dsp_widget_type(p->source) && if (p->connect && is_skl_dsp_widget_type(p->source) &&
p->source->priv) { p->source->priv) {
...@@ -969,7 +969,7 @@ static int skl_tplg_be_set_sink_pipe_params(struct snd_soc_dai *dai, ...@@ -969,7 +969,7 @@ static int skl_tplg_be_set_sink_pipe_params(struct snd_soc_dai *dai,
{ {
struct snd_soc_dapm_path *p = NULL; struct snd_soc_dapm_path *p = NULL;
snd_soc_dapm_widget_for_each_source_path(w, p) { snd_soc_dapm_widget_for_each_sink_path(w, p) {
if (p->connect && is_skl_dsp_widget_type(p->sink) && if (p->connect && is_skl_dsp_widget_type(p->sink) &&
p->sink->priv) { p->sink->priv) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment