ASoC: Intel: Skylake: Fix to use correct macros for the path iteration
authorSubhransu S. Prusty <subhransu.s.prusty@intel.com>
Thu, 22 Oct 2015 17:52:36 +0000 (23:22 +0530)
committerMark Brown <broonie@kernel.org>
Fri, 23 Oct 2015 16:31:34 +0000 (01:31 +0900)
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: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/skylake/skl-topology.c

index 7c920857007e10ce005302fb4d06fd794516ca30..0fba39dcb2ab96baf75282f091c5b68c18a43ed4 100644 (file)
@@ -844,7 +844,7 @@ skl_tplg_fe_get_cpr_module(struct snd_soc_dai *dai, int stream)
 
        if (stream == SNDRV_PCM_STREAM_PLAYBACK) {
                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 &&
                                        is_skl_dsp_widget_type(p->sink))
                                continue;
@@ -857,7 +857,7 @@ skl_tplg_fe_get_cpr_module(struct snd_soc_dai *dai, int stream)
                }
        } else {
                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 &&
                                        is_skl_dsp_widget_type(p->source))
                                continue;
@@ -945,7 +945,7 @@ static int skl_tplg_be_set_src_pipe_params(struct snd_soc_dai *dai,
 {
        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) &&
                                                p->source->priv) {
 
@@ -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;
 
-       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) &&
                                                p->sink->priv) {