]> git.alsa-project.org Git - alsa-lib.git/commitdiff
topology: treat all DAPM controls types the same when copying
authorMengdong Lin <mengdong.lin@intel.com>
Fri, 7 Aug 2015 15:39:15 +0000 (16:39 +0100)
committerTakashi Iwai <tiwai@suse.de>
Fri, 7 Aug 2015 15:53:37 +0000 (17:53 +0200)
Copy all DAPM controls types using the same method.

Signed-off-by: Mengdong Lin <mengdong.lin@intel.com>
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
src/topology/dapm.c

index 7e26ea0326ec67425504c922dc8c85da0f51ce62..a0a8b8656c21ec0b0e2fd410e01fc759f315b7ab 100644 (file)
@@ -107,8 +107,6 @@ static int tplg_parse_dapm_enums(snd_config_t *cfg, struct tplg_elem *elem)
 static int copy_dapm_control(struct tplg_elem *elem, struct tplg_elem *ref)
 {
        struct snd_soc_tplg_dapm_widget *widget = elem->widget;
-       struct snd_soc_tplg_mixer_control *mixer_ctrl = ref->mixer_ctrl;
-       struct snd_soc_tplg_enum_control *enum_ctrl = ref->enum_ctrl;
 
        tplg_dbg("Control '%s' used by '%s'\n", ref->id, elem->id);
        tplg_dbg("\tparent size: %d + %d -> %d, priv size -> %d\n",
@@ -121,13 +119,10 @@ static int copy_dapm_control(struct tplg_elem *elem, struct tplg_elem *ref)
 
        elem->widget = widget;
 
-       /* copy new widget at the end */
-       if (ref->type == OBJECT_TYPE_MIXER)
-               memcpy((void*)widget + elem->size, mixer_ctrl, ref->size);
-       else if (ref->type == OBJECT_TYPE_ENUM)
-               memcpy((void*)widget + elem->size, enum_ctrl, ref->size);
-
+       /* append the control to the end of the widget */
+       memcpy((void*)widget + elem->size, ref->obj, ref->size);
        elem->size += ref->size;
+
        widget->num_kcontrols++;
        ref->compound_elem = 1;
        return 0;