* create it. Either way, add the widget into the control's widget list
  */
 static int dapm_create_or_share_mixmux_kcontrol(struct snd_soc_dapm_widget *w,
-       int kci, struct snd_soc_dapm_path *path)
+       int kci)
 {
        struct snd_soc_dapm_context *dapm = w->dapm;
        struct snd_card *card = dapm->card->snd_card;
                return ret;
 
        w->kcontrols[kci] = kcontrol;
-       dapm_kcontrol_add_path(kcontrol, path);
 
        return 0;
 }
                                continue;
                        }
 
-                       ret = dapm_create_or_share_mixmux_kcontrol(w, i, path);
+                       ret = dapm_create_or_share_mixmux_kcontrol(w, i);
                        if (ret < 0)
                                return ret;
+
+                       dapm_kcontrol_add_path(w->kcontrols[i], path);
                }
        }
 
                return -EINVAL;
        }
 
-       path = list_first_entry(&w->sources, struct snd_soc_dapm_path,
-                               list_sink);
-
-       ret = dapm_create_or_share_mixmux_kcontrol(w, 0, path);
+       ret = dapm_create_or_share_mixmux_kcontrol(w, 0);
        if (ret < 0)
                return ret;