ASoC: dapm: Fix to return correct path list in is_connected_ep.
authorJeeja KP <jeeja.kp@intel.com>
Wed, 15 Jun 2016 05:46:55 +0000 (11:16 +0530)
committerMark Brown <broonie@kernel.org>
Wed, 15 Jun 2016 09:19:27 +0000 (10:19 +0100)
In is_connected_ep, when custom_stop_condition is true, need to
return the correct paths instead of con which is 0.

Fixes: 6742064aef7f('ASoC: dapm: support user-defined stop condition in dai_get_connected_widgets')
Signed-off-by: Jeeja KP <jeeja.kp@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/soc-dapm.c

index db781f6faaec42a55c132f63619b828fd743cec2..3c3f027d21bda94af16efb0e017de3af9340f1ef 100644 (file)
@@ -1092,8 +1092,10 @@ static __always_inline int is_connected_ep(struct snd_soc_dapm_widget *widget,
        if (list)
                list_add_tail(&widget->work_list, list);
 
-       if (custom_stop_condition && custom_stop_condition(widget, dir))
-               return con;
+       if (custom_stop_condition && custom_stop_condition(widget, dir)) {
+               widget->endpoints[dir] = 1;
+               return widget->endpoints[dir];
+       }
 
        if ((widget->is_ep & SND_SOC_DAPM_DIR_TO_EP(dir)) && widget->connected) {
                widget->endpoints[dir] = snd_soc_dapm_suspend_check(widget);