OSDN Git Service

ASoC: Fix possible overflow in routing driver
authorSoumya Managoli <smanag@codeaurora.org>
Thu, 26 Sep 2019 12:58:33 +0000 (18:28 +0530)
committerSoumya Managoli <smanag@codeaurora.org>
Thu, 17 Oct 2019 10:56:36 +0000 (16:26 +0530)
The reg in soc_mixer_control is 32-bit. When using
SOC_SINGLE_EXT, the value of FE DAI ID which is passed
as shift(to be operated on the reg) may be more than 31,
which may cause overflow.
Use SOC_DOUBLE_EXT instead of SOC_SINGLE_EXT so that the
reg field can be set to SOC_NO_PM to avoid any DAPM operation,
while passing BE and FE IDs in shift and rshift fields. And
these values can be retrieve in get/put functions and use them.
This is to avoid any possible overflow in DAPM operation.

Change-Id: I17fa4e059889ae725e6f015a779f518e6d0a813f
Signed-off-by: Soumya Managoli <smanag@codeaurora.org>
sound/soc/msm/qdsp6v2/msm-pcm-routing-v2.c

index a923faf..965de5c 100644 (file)
@@ -1962,13 +1962,13 @@ static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
        struct soc_mixer_control *mc =
        (struct soc_mixer_control *)kcontrol->private_value;
 
-       if (test_bit(mc->shift, &msm_bedais[mc->reg].fe_sessions[0]))
+       if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
                ucontrol->value.integer.value[0] = 1;
        else
                ucontrol->value.integer.value[0] = 0;
 
-       pr_debug("%s: reg %x shift %x val %ld\n", __func__, mc->reg, mc->shift,
-       ucontrol->value.integer.value[0]);
+       pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift,
+                       mc->rshift, ucontrol->value.integer.value[0]);
 
        return 0;
 }
@@ -1984,12 +1984,12 @@ static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
        struct snd_soc_dapm_update *update = NULL;
 
        if (ucontrol->value.integer.value[0] &&
-          msm_pcm_routing_route_is_set(mc->reg, mc->shift) == false) {
-               msm_pcm_routing_process_audio(mc->reg, mc->shift, 1);
+          msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
+               msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
                snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1, update);
        } else if (!ucontrol->value.integer.value[0] &&
-                 msm_pcm_routing_route_is_set(mc->reg, mc->shift) == true) {
-               msm_pcm_routing_process_audio(mc->reg, mc->shift, 0);
+                 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
+               msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
                snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0, update);
        }
 
@@ -2002,13 +2002,13 @@ static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
        struct soc_mixer_control *mc =
        (struct soc_mixer_control *)kcontrol->private_value;
 
-       if (test_bit(mc->shift, &msm_bedais[mc->reg].fe_sessions[0]))
+       if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
                ucontrol->value.integer.value[0] = 1;
        else
                ucontrol->value.integer.value[0] = 0;
 
-       pr_debug("%s: reg %x shift %x val %ld\n", __func__, mc->reg, mc->shift,
-               ucontrol->value.integer.value[0]);
+       pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift,
+                       mc->rshift, ucontrol->value.integer.value[0]);
 
        return 0;
 }
@@ -2023,17 +2023,18 @@ static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
                (struct soc_mixer_control *)kcontrol->private_value;
        struct snd_soc_dapm_update *update = NULL;
 
-       pr_debug("%s: reg %x shift %x val %ld\n", __func__, mc->reg, mc->shift,
-               ucontrol->value.integer.value[0]);
+       pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift,
+                        mc->rshift, ucontrol->value.integer.value[0]);
 
        if (ucontrol->value.integer.value[0]) {
-               if (msm_pcm_routing_route_is_set(mc->reg, mc->shift) == false)
-                       msm_pcm_routing_process_audio(mc->reg, mc->shift, 1);
+               if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) ==
+                                                false)
+                       msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
                snd_soc_dapm_mixer_update_power(widget->dapm,
                                                kcontrol, 1, update);
        } else if (!ucontrol->value.integer.value[0]) {
-               if (msm_pcm_routing_route_is_set(mc->reg, mc->shift) == true)
-                       msm_pcm_routing_process_audio(mc->reg, mc->shift, 0);
+               if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
+                       msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
                snd_soc_dapm_mixer_update_power(widget->dapm,
                                                kcontrol, 0, update);
        }
@@ -2118,15 +2119,15 @@ static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
 
        mutex_lock(&routing_lock);
 
-       if (test_bit(mc->shift, &msm_bedais[mc->reg].fe_sessions[0]))
+       if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
                ucontrol->value.integer.value[0] = 1;
        else
                ucontrol->value.integer.value[0] = 0;
 
        mutex_unlock(&routing_lock);
 
-       pr_debug("%s: reg %x shift %x val %ld\n", __func__, mc->reg, mc->shift,
-                       ucontrol->value.integer.value[0]);
+       pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift,
+                mc->rshift, ucontrol->value.integer.value[0]);
 
        return 0;
 }
@@ -2142,10 +2143,10 @@ static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
        struct snd_soc_dapm_update *update = NULL;
 
        if (ucontrol->value.integer.value[0]) {
-               msm_pcm_routing_process_voice(mc->reg, mc->shift, 1);
+               msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
                snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1, update);
        } else {
-               msm_pcm_routing_process_voice(mc->reg, mc->shift, 0);
+               msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
                snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0, update);
        }
 
@@ -2160,15 +2161,15 @@ static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
 
        mutex_lock(&routing_lock);
 
-       if (test_bit(mc->shift, &msm_bedais[mc->reg].fe_sessions[0]))
+       if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
                ucontrol->value.integer.value[0] = 1;
        else
                ucontrol->value.integer.value[0] = 0;
 
        mutex_unlock(&routing_lock);
 
-       pr_debug("%s: reg %x shift %x val %ld\n", __func__, mc->reg, mc->shift,
-               ucontrol->value.integer.value[0]);
+       pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift,
+                        mc->rshift, ucontrol->value.integer.value[0]);
 
        return 0;
 }
@@ -2185,20 +2186,20 @@ static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
 
        if (ucontrol->value.integer.value[0]) {
                mutex_lock(&routing_lock);
-               set_bit(mc->shift, &msm_bedais[mc->reg].fe_sessions[0]);
+               set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
                mutex_unlock(&routing_lock);
 
                snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1, update);
        } else {
                mutex_lock(&routing_lock);
-               clear_bit(mc->shift, &msm_bedais[mc->reg].fe_sessions[0]);
+               clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
                mutex_unlock(&routing_lock);
 
                snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0, update);
        }
 
-       pr_debug("%s: reg %x shift %x val %ld\n", __func__, mc->reg, mc->shift,
-               ucontrol->value.integer.value[0]);
+       pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift,
+                        mc->rshift, ucontrol->value.integer.value[0]);
 
        return 1;
 }
@@ -2850,8 +2851,8 @@ static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
        struct soc_mixer_control *mc =
        (struct soc_mixer_control *)kcontrol->private_value;
 
-       idx = mc->shift/(sizeof(msm_bedais[mc->reg].port_sessions[0]) * 8);
-       shift = mc->shift%(sizeof(msm_bedais[mc->reg].port_sessions[0]) * 8);
+       idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
+       shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
 
        if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
                pr_err("%s: Invalid idx = %d\n", __func__, idx);
@@ -2859,13 +2860,13 @@ static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
        }
 
        if (test_bit(shift,
-               (unsigned long *)&msm_bedais[mc->reg].port_sessions[idx]))
+               (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
                ucontrol->value.integer.value[0] = 1;
        else
                ucontrol->value.integer.value[0] = 0;
 
-       pr_debug("%s: reg %x shift %x val %ld\n", __func__, mc->reg, mc->shift,
-       ucontrol->value.integer.value[0]);
+       pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift,
+                        mc->rshift, ucontrol->value.integer.value[0]);
 
        return 0;
 }
@@ -2877,8 +2878,8 @@ static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
        struct soc_mixer_control *mc =
                (struct soc_mixer_control *)kcontrol->private_value;
 
-       idx = mc->shift/(sizeof(msm_bedais[mc->reg].port_sessions[0]) * 8);
-       shift = mc->shift%(sizeof(msm_bedais[mc->reg].port_sessions[0]) * 8);
+       idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
+       shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
 
        if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
                pr_err("%s: Invalid idx = %d\n", __func__, idx);
@@ -2886,19 +2887,19 @@ static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
        }
 
        pr_debug("%s: reg 0x%x shift 0x%x val %ld idx %d reminder shift %d\n",
-                __func__, mc->reg, mc->shift,
+                __func__, mc->shift, mc->rshift,
                 ucontrol->value.integer.value[0], idx, shift);
 
        if (ucontrol->value.integer.value[0]) {
-               afe_loopback(1, msm_bedais[mc->reg].port_id,
-                           msm_bedais[mc->shift].port_id);
+               afe_loopback(1, msm_bedais[mc->shift].port_id,
+                           msm_bedais[mc->rshift].port_id);
                set_bit(shift,
-               (unsigned long *)&msm_bedais[mc->reg].port_sessions[idx]);
+               (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
        } else {
-               afe_loopback(0, msm_bedais[mc->reg].port_id,
-                           msm_bedais[mc->shift].port_id);
+               afe_loopback(0, msm_bedais[mc->shift].port_id,
+                           msm_bedais[mc->rshift].port_id);
                clear_bit(shift,
-               (unsigned long *)&msm_bedais[mc->reg].port_sessions[idx]);
+               (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
        }
 
        return 1;
@@ -4082,8370 +4083,10874 @@ static const struct snd_kcontrol_new voc_ext_ec_mux =
 
 
 static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_PRI_I2S_RX ,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_SEC_I2S_RX ,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new spdif_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_SPDIF_RX ,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SPDIF_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_SPDIF_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SPDIF_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_SPDIF_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SPDIF_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_SPDIF_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SPDIF_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_SPDIF_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SPDIF_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_SPDIF_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SPDIF_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_SPDIF_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SPDIF_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_SPDIF_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SPDIF_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_SPDIF_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SPDIF_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_SPDIF_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SPDIF_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_SPDIF_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SPDIF_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_SPDIF_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SPDIF_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_SPDIF_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SPDIF_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_SPDIF_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SPDIF_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_SPDIF_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SPDIF_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_SPDIF_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SPDIF_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_SPDIF_RX,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SPDIF_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_SPDIF_RX,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SPDIF_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_SPDIF_RX,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SPDIF_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_SPDIF_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SPDIF_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_SPDIF_RX,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SPDIF_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_SPDIF_RX,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SPDIF_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_SLIMBUS_2_RX,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_2_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_SLIMBUS_2_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_2_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_SLIMBUS_2_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_2_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_SLIMBUS_2_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_2_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_SLIMBUS_2_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_2_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_SLIMBUS_2_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_2_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_SLIMBUS_2_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_2_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_SLIMBUS_2_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_2_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_SLIMBUS_2_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_2_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_SLIMBUS_2_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_2_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_SLIMBUS_2_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_2_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_SLIMBUS_2_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_2_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_SLIMBUS_2_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_2_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_SLIMBUS_2_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_2_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_SLIMBUS_2_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_2_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_SLIMBUS_2_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_2_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_SLIMBUS_2_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_2_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_SLIMBUS_5_RX ,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_5_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_SLIMBUS_5_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_5_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_SLIMBUS_5_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_5_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_SLIMBUS_5_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_5_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_SLIMBUS_5_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_5_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_SLIMBUS_5_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_5_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_SLIMBUS_5_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_5_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_SLIMBUS_5_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_5_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_SLIMBUS_5_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_5_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_SLIMBUS_5_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_5_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_SLIMBUS_5_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_5_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_SLIMBUS_5_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_5_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_SLIMBUS_5_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_5_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_SLIMBUS_5_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_5_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_SLIMBUS_5_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_5_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_SLIMBUS_5_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_5_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_SLIMBUS_5_RX,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_5_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_SLIMBUS_5_RX,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_5_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_SLIMBUS_5_RX,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_5_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_SLIMBUS_5_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_5_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_SLIMBUS_5_RX,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_5_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_SLIMBUS_5_RX,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_5_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_SLIMBUS_0_RX ,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia22", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia23", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia24", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia24", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA24, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia25", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia25", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA25, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_MI2S_RX ,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX ,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_QUINARY_MI2S_RX ,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_TERTIARY_MI2S_RX ,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new secondary_mi2s_rx_1_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new secondary_mi2s_rx_2_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new secondary_mi2s_rx_3_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new secondary_mi2s_rx_4_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new tertiary_mi2s_rx_1_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new tertiary_mi2s_rx_2_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new tertiary_mi2s_rx_3_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new tertiary_mi2s_rx_4_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new quaternary_mi2s_rx_1_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new quaternary_mi2s_rx_2_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new quaternary_mi2s_rx_3_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new quaternary_mi2s_rx_4_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_SECONDARY_MI2S_RX ,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_PRI_MI2S_RX ,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia22", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia23", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia24", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia24", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA24, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia25", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia25", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA25, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new display_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_DISPLAY_PORT_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_DISPLAY_PORT_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_DISPLAY_PORT_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_DISPLAY_PORT_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_DISPLAY_PORT_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_DISPLAY_PORT_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_DISPLAY_PORT_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_DISPLAY_PORT_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_DISPLAY_PORT_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_DISPLAY_PORT_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_DISPLAY_PORT_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_DISPLAY_PORT_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_DISPLAY_PORT_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_DISPLAY_PORT_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_DISPLAY_PORT_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_DISPLAY_PORT_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_DISPLAY_PORT_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
        /* incall music delivery mixer */
 static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_SLIMBUS_4_RX,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_4_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_SLIMBUS_4_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_4_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_SLIMBUS_4_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_4_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_SLIMBUS_4_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_4_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia22", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia23", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia24", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("MultiMedia24", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA24, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia25", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("MultiMedia25", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA25, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia22", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia23", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("MultiMedia23", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA23, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia24", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("MultiMedia24", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA24, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia25", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("MultiMedia25", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA25, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_INT_BT_A2DP_RX,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_A2DP_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_INT_BT_A2DP_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_A2DP_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_INT_BT_A2DP_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_A2DP_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_INT_BT_A2DP_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_A2DP_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_INT_BT_A2DP_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_A2DP_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_INT_BT_A2DP_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_A2DP_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_INT_BT_A2DP_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_A2DP_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_INT_BT_A2DP_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_A2DP_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_INT_BT_A2DP_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_A2DP_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_INT_BT_A2DP_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_A2DP_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_INT_BT_A2DP_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_A2DP_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_INT_BT_A2DP_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_A2DP_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_INT_BT_A2DP_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_A2DP_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_INT_BT_A2DP_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_A2DP_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_INT_BT_A2DP_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_A2DP_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_INT_BT_A2DP_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_A2DP_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_INT_BT_A2DP_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_A2DP_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_INT_FM_RX,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_INT_FM_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_INT_FM_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_INT_FM_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_INT_FM_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_INT_FM_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_INT_FM_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_INT_FM_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_INT_FM_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_INT_FM_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_INT_FM_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_INT_FM_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_INT_FM_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_INT_FM_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_INT_FM_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_INT_FM_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_INT_FM_RX,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_INT_FM_RX,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_INT_FM_RX,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_INT_FM_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_INT_FM_RX,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_INT_FM_RX,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia17", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia18", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia19", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia28", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia29", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia22", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia22", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia22", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia22", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia22", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia22", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia22", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia22", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_TERT_TDM_RX_0 ,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia22", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_TERT_TDM_RX_1 ,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia22", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_TERT_TDM_RX_2 ,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia22", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_TERT_TDM_RX_3 ,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia22", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_TERT_TDM_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_TERT_TDM_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_TERT_TDM_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_TERT_TDM_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_TERT_TDM_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_TERT_TDM_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_TERT_TDM_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_TERT_TDM_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_TERT_TDM_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_TERT_TDM_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_TERT_TDM_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_TERT_TDM_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_TERT_TDM_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_TERT_TDM_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_TERT_TDM_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_TERT_TDM_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_TERT_TDM_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia22", MSM_BACKEND_DAI_TERT_TDM_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_TERT_TDM_RX_4,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_RX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_QUAT_TDM_RX_0 ,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia20", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia22", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_QUAT_TDM_RX_1 ,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia20", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia22", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_QUAT_TDM_RX_2 ,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia20", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia22", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
-       SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_QUAT_TDM_RX_3 ,
+       SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia20", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia21", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia22", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MultiMedia26", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_TX", MSM_BACKEND_DAI_PRI_I2S_TX,
+       SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_TX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MI2S_TX", MSM_BACKEND_DAI_MI2S_TX,
+       SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_TX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INT2_MI2S_TX", MSM_BACKEND_DAI_INT2_MI2S_TX,
+       SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT2_MI2S_TX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
+       SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT3_MI2S_TX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_AUXPCM_TX,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_TX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_TX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_AUXPCM_UL_TX", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_TX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_AUXPCM_UL_TX", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_INT_BT_SCO_TX,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_TX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_INT_FM_TX,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_TX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_AFE_PCM_TX,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_TX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("VOC_REC_DL", MSM_BACKEND_DAI_INCALL_RECORD_RX,
+       SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INCALL_RECORD_RX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("VOC_REC_UL", MSM_BACKEND_DAI_INCALL_RECORD_TX,
+       SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INCALL_RECORD_TX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SLIM_4_TX", MSM_BACKEND_DAI_SLIMBUS_4_TX,
+       SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_4_TX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SLIM_6_TX", MSM_BACKEND_DAI_SLIMBUS_6_TX,
+       SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_TX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUIN_MI2S_TX", MSM_BACKEND_DAI_QUINARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_TX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_0", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_1", MSM_BACKEND_DAI_PRI_TDM_TX_1,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_1,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_2", MSM_BACKEND_DAI_PRI_TDM_TX_2,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_2,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_3", MSM_BACKEND_DAI_PRI_TDM_TX_3,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_3,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_0", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_1", MSM_BACKEND_DAI_SEC_TDM_TX_1,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_1,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_2", MSM_BACKEND_DAI_SEC_TDM_TX_2,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_2,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_3", MSM_BACKEND_DAI_SEC_TDM_TX_3,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_3,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_0", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_1", MSM_BACKEND_DAI_TERT_TDM_TX_1,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_1,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_2", MSM_BACKEND_DAI_TERT_TDM_TX_2,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_2,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_3", MSM_BACKEND_DAI_TERT_TDM_TX_3,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_3,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_QUAT_TDM_TX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_1,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_QUAT_TDM_TX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_2,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_QUAT_TDM_TX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_3,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SLIM_7_TX", MSM_BACKEND_DAI_SLIMBUS_7_TX,
+       SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_TX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SLIM_8_TX", MSM_BACKEND_DAI_SLIMBUS_8_TX,
+       SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_TX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("USB_AUDIO_TX", MSM_BACKEND_DAI_USB_TX,
+       SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_TX,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_1", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_1,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_1,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_2", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_2,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_2,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_3", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_3,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_3,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_4", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_4,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_4,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_1", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_1,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_1,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_2", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_2,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_2,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_3", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_3,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_3,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_4", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_4,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_4,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_1", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_1,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_1,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_2", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_2,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_2,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_3", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_3,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_3,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_4", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_4,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_4,
                MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
                msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_INT_FM_TX,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MI2S_TX", MSM_BACKEND_DAI_MI2S_TX,
+       SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INT2_MI2S_TX", MSM_BACKEND_DAI_INT2_MI2S_TX,
+       SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT2_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
+       SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT3_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SLIM_6_TX", MSM_BACKEND_DAI_SLIMBUS_6_TX,
+       SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SLIM_1_TX", MSM_BACKEND_DAI_SLIMBUS_1_TX,
+       SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_1_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUIN_MI2S_TX", MSM_BACKEND_DAI_QUINARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_0", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_1", MSM_BACKEND_DAI_PRI_TDM_TX_1,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_2", MSM_BACKEND_DAI_PRI_TDM_TX_2,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_3", MSM_BACKEND_DAI_PRI_TDM_TX_3,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_0", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_1", MSM_BACKEND_DAI_SEC_TDM_TX_1,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_2", MSM_BACKEND_DAI_SEC_TDM_TX_2,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_3", MSM_BACKEND_DAI_SEC_TDM_TX_3,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_0", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_1", MSM_BACKEND_DAI_TERT_TDM_TX_1,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_2", MSM_BACKEND_DAI_TERT_TDM_TX_2,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_3", MSM_BACKEND_DAI_TERT_TDM_TX_3,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_QUAT_TDM_TX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_QUAT_TDM_TX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_QUAT_TDM_TX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SLIM_8_TX", MSM_BACKEND_DAI_SLIMBUS_8_TX,
+       SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("USB_AUDIO_TX", MSM_BACKEND_DAI_USB_TX,
+       SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_1", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_1,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_2", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_2,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_3", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_3,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_4", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_4,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_1", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_1,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_2", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_2,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_3", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_3,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_4", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_4,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_1", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_1,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_2", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_2,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_3", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_3,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_4", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_4,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_INT_FM_TX,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MI2S_TX", MSM_BACKEND_DAI_MI2S_TX,
+       SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_AFE_PCM_TX,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_INT_BT_SCO_TX,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_TX", MSM_BACKEND_DAI_AUXPCM_TX,
+       SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_TX", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_AUX_PCM_TX", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_AUX_PCM_TX", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INT2_MI2S_TX", MSM_BACKEND_DAI_INT2_MI2S_TX,
+       SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT2_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
+       SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT3_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_0", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_1", MSM_BACKEND_DAI_PRI_TDM_TX_1,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_2", MSM_BACKEND_DAI_PRI_TDM_TX_2,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_3", MSM_BACKEND_DAI_PRI_TDM_TX_3,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_0", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_1", MSM_BACKEND_DAI_SEC_TDM_TX_1,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_2", MSM_BACKEND_DAI_SEC_TDM_TX_2,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_3", MSM_BACKEND_DAI_SEC_TDM_TX_3,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_0", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_1", MSM_BACKEND_DAI_TERT_TDM_TX_1,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_2", MSM_BACKEND_DAI_TERT_TDM_TX_2,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_3", MSM_BACKEND_DAI_TERT_TDM_TX_3,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_QUAT_TDM_TX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_QUAT_TDM_TX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_QUAT_TDM_TX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_1", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_1,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_2", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_2,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_3", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_3,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_4", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_4,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_1", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_1,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_2", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_2,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_3", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_3,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_4", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_4,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_1", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_1,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_2", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_2,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_3", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_3,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_4", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_4,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_INT_FM_TX,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_INT_BT_SCO_TX,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_AFE_PCM_TX,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("VOC_REC_DL", MSM_BACKEND_DAI_INCALL_RECORD_RX,
+       SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INCALL_RECORD_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("VOC_REC_UL", MSM_BACKEND_DAI_INCALL_RECORD_TX,
+       SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INCALL_RECORD_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_0", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_0", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_1", MSM_BACKEND_DAI_PRI_TDM_TX_1,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_2", MSM_BACKEND_DAI_PRI_TDM_TX_2,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_3", MSM_BACKEND_DAI_PRI_TDM_TX_3,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_0", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_1", MSM_BACKEND_DAI_SEC_TDM_TX_1,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_2", MSM_BACKEND_DAI_SEC_TDM_TX_2,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_3", MSM_BACKEND_DAI_SEC_TDM_TX_3,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_1", MSM_BACKEND_DAI_TERT_TDM_TX_1,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_2", MSM_BACKEND_DAI_TERT_TDM_TX_2,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_3", MSM_BACKEND_DAI_TERT_TDM_TX_3,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_QUAT_TDM_TX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_QUAT_TDM_TX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_QUAT_TDM_TX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INT2_MI2S_TX", MSM_BACKEND_DAI_INT2_MI2S_TX,
+       SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT2_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
+       SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT3_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("USB_AUDIO_TX", MSM_BACKEND_DAI_USB_TX,
+       SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_INT_FM_TX,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MI2S_TX", MSM_BACKEND_DAI_MI2S_TX,
+       SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_AFE_PCM_TX,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_INT_BT_SCO_TX,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_AUXPCM_TX,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_TX", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_AUX_PCM_TX", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_AUX_PCM_TX", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INT2_MI2S_TX", MSM_BACKEND_DAI_INT2_MI2S_TX,
+       SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT2_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
+       SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT3_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_0", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_1", MSM_BACKEND_DAI_PRI_TDM_TX_1,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_2", MSM_BACKEND_DAI_PRI_TDM_TX_2,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_3", MSM_BACKEND_DAI_PRI_TDM_TX_3,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_0", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_1", MSM_BACKEND_DAI_SEC_TDM_TX_1,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_2", MSM_BACKEND_DAI_SEC_TDM_TX_2,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_3", MSM_BACKEND_DAI_SEC_TDM_TX_3,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_0", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_1", MSM_BACKEND_DAI_TERT_TDM_TX_1,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_2", MSM_BACKEND_DAI_TERT_TDM_TX_2,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_3", MSM_BACKEND_DAI_TERT_TDM_TX_3,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_QUAT_TDM_TX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_QUAT_TDM_TX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_QUAT_TDM_TX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SLIM_7_TX", MSM_BACKEND_DAI_SLIMBUS_7_TX,
+       SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SLIM_8_TX", MSM_BACKEND_DAI_SLIMBUS_8_TX,
+       SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("USB_AUDIO_TX", MSM_BACKEND_DAI_USB_TX,
+       SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_1", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_1,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_2", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_2,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_3", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_3,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_4", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_4,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_1", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_1,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_2", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_2,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_3", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_3,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_4", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_4,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_1", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_1,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_2", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_2,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_3", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_3,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_4", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_4,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_INT_FM_TX,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INT2_MI2S_TX", MSM_BACKEND_DAI_INT2_MI2S_TX,
+       SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT2_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
+       SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT3_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_AUXPCM_TX,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_AUXPCM_UL_TX", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_AUXPCM_UL_TX", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_0", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_1", MSM_BACKEND_DAI_PRI_TDM_TX_1,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_2", MSM_BACKEND_DAI_PRI_TDM_TX_2,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_3", MSM_BACKEND_DAI_PRI_TDM_TX_3,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_0", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_1", MSM_BACKEND_DAI_SEC_TDM_TX_1,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_2", MSM_BACKEND_DAI_SEC_TDM_TX_2,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_3", MSM_BACKEND_DAI_SEC_TDM_TX_3,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_0", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_1", MSM_BACKEND_DAI_TERT_TDM_TX_1,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_2", MSM_BACKEND_DAI_TERT_TDM_TX_2,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_3", MSM_BACKEND_DAI_TERT_TDM_TX_3,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_QUAT_TDM_TX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_QUAT_TDM_TX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_QUAT_TDM_TX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("USB_AUDIO_TX", MSM_BACKEND_DAI_USB_TX,
+       SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INT2_MI2S_TX", MSM_BACKEND_DAI_INT2_MI2S_TX,
+       SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT2_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
+       SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT3_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_INT_FM_TX,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_INT_BT_SCO_TX,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_AFE_PCM_TX,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("VOC_REC_DL", MSM_BACKEND_DAI_INCALL_RECORD_RX,
+       SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INCALL_RECORD_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("VOC_REC_UL", MSM_BACKEND_DAI_INCALL_RECORD_TX,
+       SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INCALL_RECORD_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SLIM_6_TX", MSM_BACKEND_DAI_SLIMBUS_6_TX,
+       SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_0", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_1", MSM_BACKEND_DAI_PRI_TDM_TX_1,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_2", MSM_BACKEND_DAI_PRI_TDM_TX_2,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_3", MSM_BACKEND_DAI_PRI_TDM_TX_3,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_0", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_1", MSM_BACKEND_DAI_SEC_TDM_TX_1,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_2", MSM_BACKEND_DAI_SEC_TDM_TX_2,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_3", MSM_BACKEND_DAI_SEC_TDM_TX_3,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_0", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_1", MSM_BACKEND_DAI_TERT_TDM_TX_1,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_2", MSM_BACKEND_DAI_TERT_TDM_TX_2,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_3", MSM_BACKEND_DAI_TERT_TDM_TX_3,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_QUAT_TDM_TX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_QUAT_TDM_TX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_QUAT_TDM_TX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SLIM_7_TX", MSM_BACKEND_DAI_SLIMBUS_7_TX,
+       SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("USB_AUDIO_TX", MSM_BACKEND_DAI_USB_TX,
+       SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INT2_MI2S_TX", MSM_BACKEND_DAI_INT2_MI2S_TX,
+       SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT2_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
+       SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT3_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_INT_FM_TX,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_INT_BT_SCO_TX,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_AFE_PCM_TX,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("VOC_REC_DL", MSM_BACKEND_DAI_INCALL_RECORD_RX,
+       SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INCALL_RECORD_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("VOC_REC_UL", MSM_BACKEND_DAI_INCALL_RECORD_TX,
+       SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INCALL_RECORD_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SLIM_6_TX", MSM_BACKEND_DAI_SLIMBUS_6_TX,
+       SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_0", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_1", MSM_BACKEND_DAI_PRI_TDM_TX_1,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_2", MSM_BACKEND_DAI_PRI_TDM_TX_2,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_3", MSM_BACKEND_DAI_PRI_TDM_TX_3,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_0", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_1", MSM_BACKEND_DAI_SEC_TDM_TX_1,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_2", MSM_BACKEND_DAI_SEC_TDM_TX_2,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_3", MSM_BACKEND_DAI_SEC_TDM_TX_3,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_0", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_1", MSM_BACKEND_DAI_TERT_TDM_TX_1,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_2", MSM_BACKEND_DAI_TERT_TDM_TX_2,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_3", MSM_BACKEND_DAI_TERT_TDM_TX_3,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_QUAT_TDM_TX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_QUAT_TDM_TX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_QUAT_TDM_TX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SLIM_7_TX", MSM_BACKEND_DAI_SLIMBUS_7_TX,
+       SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("USB_AUDIO_TX", MSM_BACKEND_DAI_USB_TX,
+       SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("MI2S_TX", MSM_BACKEND_DAI_MI2S_TX,
+       SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_TX", MSM_BACKEND_DAI_AUXPCM_TX,
+       SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_TX", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_AUX_PCM_TX", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_INT_FM_TX,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_INT_BT_SCO_TX,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_AFE_PCM_TX,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("VOC_REC_DL", MSM_BACKEND_DAI_INCALL_RECORD_RX,
+       SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INCALL_RECORD_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("VOC_REC_UL", MSM_BACKEND_DAI_INCALL_RECORD_TX,
+       SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INCALL_RECORD_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SLIM_6_TX", MSM_BACKEND_DAI_SLIMBUS_6_TX,
+       SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_0", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_1", MSM_BACKEND_DAI_TERT_TDM_TX_1,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_2", MSM_BACKEND_DAI_TERT_TDM_TX_2,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_3", MSM_BACKEND_DAI_TERT_TDM_TX_3,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_QUAT_TDM_TX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_QUAT_TDM_TX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_QUAT_TDM_TX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_1", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_1,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_2", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_2,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_3", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_3,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_4", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_4,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_1", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_1,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_2", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_2,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_3", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_3,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_4", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_4,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_1", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_1,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_2", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_2,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_3", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_3,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_4", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_4,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_INT_FM_TX,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_INT_BT_SCO_TX,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_AFE_PCM_TX,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("VOC_REC_DL", MSM_BACKEND_DAI_INCALL_RECORD_RX,
+       SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INCALL_RECORD_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("VOC_REC_UL", MSM_BACKEND_DAI_INCALL_RECORD_TX,
+       SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INCALL_RECORD_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_INT_FM_TX,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_INT_BT_SCO_TX,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_AFE_PCM_TX,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("VOC_REC_DL", MSM_BACKEND_DAI_INCALL_RECORD_RX,
+       SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INCALL_RECORD_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("VOC_REC_UL", MSM_BACKEND_DAI_INCALL_RECORD_TX,
+       SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INCALL_RECORD_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_INT_FM_TX,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_INT_BT_SCO_TX,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_AFE_PCM_TX,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("VOC_REC_DL", MSM_BACKEND_DAI_INCALL_RECORD_RX,
+       SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INCALL_RECORD_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("VOC_REC_UL", MSM_BACKEND_DAI_INCALL_RECORD_TX,
+       SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INCALL_RECORD_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_0", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_1", MSM_BACKEND_DAI_PRI_TDM_TX_1,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_2", MSM_BACKEND_DAI_PRI_TDM_TX_2,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_3", MSM_BACKEND_DAI_PRI_TDM_TX_3,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_0", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_1", MSM_BACKEND_DAI_SEC_TDM_TX_1,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_2", MSM_BACKEND_DAI_SEC_TDM_TX_2,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_3", MSM_BACKEND_DAI_SEC_TDM_TX_3,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_0", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_1", MSM_BACKEND_DAI_TERT_TDM_TX_1,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_2", MSM_BACKEND_DAI_TERT_TDM_TX_2,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_3", MSM_BACKEND_DAI_TERT_TDM_TX_3,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_QUAT_TDM_TX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_QUAT_TDM_TX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_QUAT_TDM_TX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_1", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_1,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_2", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_2,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_3", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_3,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_4", MSM_BACKEND_DAI_SECONDARY_MI2S_TX_4,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_1", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_1,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_2", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_2,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_3", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_3,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_4", MSM_BACKEND_DAI_TERTIARY_MI2S_TX_4,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_1", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_1,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_2", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_2,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_3", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_3,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX_4", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_4,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX_4", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX_4,
        MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_AUXPCM_TX,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_0", MSM_BACKEND_DAI_PRI_TDM_TX_0,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_1", MSM_BACKEND_DAI_PRI_TDM_TX_1,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_2", MSM_BACKEND_DAI_PRI_TDM_TX_2,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_3", MSM_BACKEND_DAI_PRI_TDM_TX_3,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_0", MSM_BACKEND_DAI_SEC_TDM_TX_0,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_1", MSM_BACKEND_DAI_SEC_TDM_TX_1,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_2", MSM_BACKEND_DAI_SEC_TDM_TX_2,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_3", MSM_BACKEND_DAI_SEC_TDM_TX_3,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_0", MSM_BACKEND_DAI_TERT_TDM_TX_0,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_1", MSM_BACKEND_DAI_TERT_TDM_TX_1,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_2", MSM_BACKEND_DAI_TERT_TDM_TX_2,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_3", MSM_BACKEND_DAI_TERT_TDM_TX_3,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_0,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_QUAT_TDM_TX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_1,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_QUAT_TDM_TX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_2,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_QUAT_TDM_TX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_TX_3,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_INT_FM_TX,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_INT_BT_SCO_TX,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_AFE_PCM_TX,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("VOC_REC_DL", MSM_BACKEND_DAI_INCALL_RECORD_RX,
+       SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INCALL_RECORD_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("VOC_REC_UL", MSM_BACKEND_DAI_INCALL_RECORD_TX,
+       SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INCALL_RECORD_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_INT_FM_TX,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_FM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_INT_BT_SCO_TX,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_AFE_PCM_TX,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("VOC_REC_DL", MSM_BACKEND_DAI_INCALL_RECORD_RX,
+       SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INCALL_RECORD_RX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
-       SOC_SINGLE_EXT("VOC_REC_UL", MSM_BACKEND_DAI_INCALL_RECORD_TX,
+       SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INCALL_RECORD_TX,
        MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
        msm_routing_put_audio_mixer),
 };
 
 static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("CSVoice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoWLAN", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_PRI_I2S_RX,
+       SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_RX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("CSVoice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoWLAN", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("CSVoice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoWLAN", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("CSVoice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_SLIMBUS_0_RX ,
+       SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_SLIMBUS_0_RX ,
+       SOC_DOUBLE_EXT("VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoWLAN", MSM_BACKEND_DAI_SLIMBUS_0_RX ,
+       SOC_DOUBLE_EXT("VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_SLIMBUS_0_RX ,
+       SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_SLIMBUS_0_RX ,
+       SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("CSVoice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_SLIMBUS_6_RX ,
+       SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_SLIMBUS_6_RX ,
+       SOC_DOUBLE_EXT("VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoWLAN", MSM_BACKEND_DAI_SLIMBUS_6_RX ,
+       SOC_DOUBLE_EXT("VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_SLIMBUS_6_RX ,
+       SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_SLIMBUS_6_RX ,
+       SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("CSVoice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoWLAN", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("CSVoice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_INT_BT_SCO_RX ,
+       SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_INT_BT_SCO_RX ,
+       SOC_DOUBLE_EXT("VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoWLAN", MSM_BACKEND_DAI_INT_BT_SCO_RX ,
+       SOC_DOUBLE_EXT("VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_INT_BT_SCO_RX ,
+       SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_INT_BT_SCO_RX ,
+       SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("CSVoice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoWLAN", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("CSVoice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoWLAN", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("CSVoice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoWLAN", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("CSVoice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoWLAN", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("CSVoice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoWLAN", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_QUINARY_MI2S_RX,
+       SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUINARY_MI2S_RX,
        MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("CSVoice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoWLAN", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("CSVoice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoWLAN", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("CSVoice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoWLAN", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("CSVoice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoWLAN", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("CSVoice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoWLAN", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("CSVoice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoWLAN", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("CSVoice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoWLAN", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_SLIMBUS_7_RX,
+       SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_RX,
        MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_SLIMBUS_8_RX,
+       SOC_DOUBLE_EXT("CSVoice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_RX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_SLIMBUS_8_RX,
+       SOC_DOUBLE_EXT("Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_RX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_SLIMBUS_8_RX,
+       SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_RX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_SLIMBUS_8_RX,
+       SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_RX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_SLIMBUS_8_RX,
+       SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_RX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_SLIMBUS_8_RX,
+       SOC_DOUBLE_EXT("VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_RX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_SLIMBUS_8_RX,
+       SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_RX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoWLAN", MSM_BACKEND_DAI_SLIMBUS_8_RX,
+       SOC_DOUBLE_EXT("VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_RX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_SLIMBUS_8_RX,
+       SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_RX,
        MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_SLIMBUS_8_RX,
+       SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_RX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_SLIMBUS_8_RX,
+       SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_RX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_SLIMBUS_8_RX,
+       SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_RX,
        MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_2,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_TDM_RX_2,
        MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_EXTPROC_RX,
+       SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_EXTPROC_RX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_EXTPROC_RX,
+       SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_EXTPROC_RX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_EXTPROC_RX,
+       SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_EXTPROC_RX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
 };
 
 static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_SLIMBUS_1_RX,
+       SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_1_RX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_SLIMBUS_1_RX,
+       SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_1_RX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_SLIMBUS_1_RX,
+       SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_1_RX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
 };
 
 static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
-       SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_SLIMBUS_3_RX,
+       SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_3_RX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_SLIMBUS_3_RX,
+       SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_3_RX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_SLIMBUS_3_RX,
+       SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_3_RX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
 };
 
 static const struct snd_kcontrol_new tx_voice_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_TX_Voice", MSM_BACKEND_DAI_PRI_I2S_TX,
+       SOC_DOUBLE_EXT("PRI_TX_Voice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_TX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("MI2S_TX_Voice", MSM_BACKEND_DAI_MI2S_TX,
+       SOC_DOUBLE_EXT("MI2S_TX_Voice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_TX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX_Voice", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX_Voice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX_Voice",
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voice", SND_SOC_NOPM,
        MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_CS_VOICE, 1, 0,
        msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX_Voice", MSM_BACKEND_DAI_AFE_PCM_TX,
+       SOC_DOUBLE_EXT("AFE_PCM_TX_Voice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_TX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_TX_Voice", MSM_BACKEND_DAI_AUXPCM_TX,
+       SOC_DOUBLE_EXT("AUX_PCM_TX_Voice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_TX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_TX_Voice", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_TX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("TERT_AUX_PCM_TX_Voice", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_TX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QUAT_AUX_PCM_TX_Voice", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX_Voice", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX_Voice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX_Voice", MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX_Voice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_Voice", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_Voice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_7_TX_Voice", MSM_BACKEND_DAI_SLIMBUS_7_TX,
+       SOC_DOUBLE_EXT("SLIM_7_TX_Voice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_TX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_8_TX_Voice", MSM_BACKEND_DAI_SLIMBUS_8_TX,
+       SOC_DOUBLE_EXT("SLIM_8_TX_Voice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_TX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("USB_AUDIO_TX_Voice", MSM_BACKEND_DAI_USB_TX,
+       SOC_DOUBLE_EXT("USB_AUDIO_TX_Voice", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_TX,
        MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new tx_voice2_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_TX_Voice2", MSM_BACKEND_DAI_PRI_I2S_TX,
+       SOC_DOUBLE_EXT("PRI_TX_Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_TX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("MI2S_TX_Voice2", MSM_BACKEND_DAI_MI2S_TX,
+       SOC_DOUBLE_EXT("MI2S_TX_Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_TX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX_Voice2", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX_Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX_Voice2",
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voice2", SND_SOC_NOPM,
        MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICE2, 1, 0,
        msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX_Voice2", MSM_BACKEND_DAI_AFE_PCM_TX,
+       SOC_DOUBLE_EXT("AFE_PCM_TX_Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_TX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_TX_Voice2", MSM_BACKEND_DAI_AUXPCM_TX,
+       SOC_DOUBLE_EXT("AUX_PCM_TX_Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_TX_Voice2", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("TERT_AUX_PCM_TX_Voice2", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QUAT_AUX_PCM_TX_Voice2", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX_Voice2", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX_Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_Voice2", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_7_TX_Voice2", MSM_BACKEND_DAI_SLIMBUS_7_TX,
+       SOC_DOUBLE_EXT("SLIM_7_TX_Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_TX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_8_TX_Voice2", MSM_BACKEND_DAI_SLIMBUS_8_TX,
+       SOC_DOUBLE_EXT("SLIM_8_TX_Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_TX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("USB_AUDIO_TX_Voice2", MSM_BACKEND_DAI_USB_TX,
+       SOC_DOUBLE_EXT("USB_AUDIO_TX_Voice2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_TX,
        MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new tx_volte_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_TX_VoLTE", MSM_BACKEND_DAI_PRI_I2S_TX,
+       SOC_DOUBLE_EXT("PRI_TX_VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_TX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX_VoLTE", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX_VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX_VoLTE",
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_VoLTE", SND_SOC_NOPM,
        MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOLTE, 1, 0,
        msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX_VoLTE", MSM_BACKEND_DAI_AFE_PCM_TX,
+       SOC_DOUBLE_EXT("AFE_PCM_TX_VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_TX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_TX_VoLTE", MSM_BACKEND_DAI_AUXPCM_TX,
+       SOC_DOUBLE_EXT("AUX_PCM_TX_VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_TX_VoLTE", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("TERT_AUX_PCM_TX_VoLTE", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QUAT_AUX_PCM_TX_VoLTE", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("MI2S_TX_VoLTE", MSM_BACKEND_DAI_MI2S_TX,
+       SOC_DOUBLE_EXT("MI2S_TX_VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_TX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX_VoLTE", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX_VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_VoLTE", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_7_TX_VoLTE", MSM_BACKEND_DAI_SLIMBUS_7_TX,
+       SOC_DOUBLE_EXT("SLIM_7_TX_VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_TX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_8_TX_VoLTE", MSM_BACKEND_DAI_SLIMBUS_8_TX,
+       SOC_DOUBLE_EXT("SLIM_8_TX_VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_TX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("USB_AUDIO_TX_VoLTE", MSM_BACKEND_DAI_USB_TX,
+       SOC_DOUBLE_EXT("USB_AUDIO_TX_VoLTE", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_TX,
        MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new tx_vowlan_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_TX_VoWLAN", MSM_BACKEND_DAI_PRI_I2S_TX,
+       SOC_DOUBLE_EXT("PRI_TX_VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_TX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX_VoWLAN", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX_VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX_VoWLAN",
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_VoWLAN", SND_SOC_NOPM,
        MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOWLAN, 1, 0,
        msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX_VoWLAN", MSM_BACKEND_DAI_AFE_PCM_TX,
+       SOC_DOUBLE_EXT("AFE_PCM_TX_VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_TX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_TX_VoWLAN", MSM_BACKEND_DAI_AUXPCM_TX,
+       SOC_DOUBLE_EXT("AUX_PCM_TX_VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_TX_VoWLAN", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("TERT_AUX_PCM_TX_VoWLAN", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QUAT_AUX_PCM_TX_VoWLAN", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("MI2S_TX_VoWLAN", MSM_BACKEND_DAI_MI2S_TX,
+       SOC_DOUBLE_EXT("MI2S_TX_VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_TX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX_VoWLAN", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX_VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_VoWLAN", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_7_TX_VoWLAN", MSM_BACKEND_DAI_SLIMBUS_7_TX,
+       SOC_DOUBLE_EXT("SLIM_7_TX_VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_TX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_8_TX_VoWLAN", MSM_BACKEND_DAI_SLIMBUS_8_TX,
+       SOC_DOUBLE_EXT("SLIM_8_TX_VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_TX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("USB_AUDIO_TX_VoWLAN", MSM_BACKEND_DAI_USB_TX,
+       SOC_DOUBLE_EXT("USB_AUDIO_TX_VoWLAN", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_TX,
        MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_TX_MMode1", MSM_BACKEND_DAI_PRI_I2S_TX,
+       SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_TX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("MI2S_TX_MMode1", MSM_BACKEND_DAI_MI2S_TX,
+       SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_TX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX_MMode1",
+       SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
        MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
        0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("INT_BT_SCO_TX_MMode1",
+       SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
        MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
        0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX_MMode1",
+       SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
        MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
        msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_TX_MMode1",
+       SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
        MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
        msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_TX_MMode1",
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
        MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
        0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("TERT_AUX_PCM_TX_MMode1",
+       SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
        MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
        0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QUAT_AUX_PCM_TX_MMode1",
+       SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
        MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
        0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX_MMode1",
+       SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
        MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
        msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_MMode1",
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
        MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
        1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("INT3_MI2S_TX_MMode1",
+       SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
        MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
        1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_7_TX_MMode1",
+       SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
        MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
        0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_8_TX_MMode1",
+       SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
        MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
        0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("USB_AUDIO_TX_MMode1", MSM_BACKEND_DAI_USB_TX,
+       SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_TX,
        MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0_MMode1",
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
        MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
        1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_TX_MMode2", MSM_BACKEND_DAI_PRI_I2S_TX,
+       SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_TX,
        MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("MI2S_TX_MMode2", MSM_BACKEND_DAI_MI2S_TX,
+       SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_TX,
        MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX_MMode2",
+       SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
        MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
        0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("INT_BT_SCO_TX_MMode2",
+       SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
        MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
        0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX_MMode2",
+       SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
        MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
        msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_TX_MMode2",
+       SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
        MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
        msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_TX_MMode2",
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
        MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
        0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("TERT_AUX_PCM_TX_MMode2",
+       SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
        MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
        0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QUAT_AUX_PCM_TX_MMode2",
+       SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
        MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
        0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX_MMode2",
+       SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
        MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
        msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_MMode2",
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
        MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
        1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("INT3_MI2S_TX_MMode2",
+       SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
        MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
        1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_7_TX_MMode2",
+       SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
        MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
        0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_8_TX_MMode2",
+       SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
        MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
        0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("USB_AUDIO_TX_MMode2",
+       SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
        MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
        0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_TX_Voip", MSM_BACKEND_DAI_PRI_I2S_TX,
+       SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_TX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("MI2S_TX_Voip", MSM_BACKEND_DAI_MI2S_TX,
+       SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_TX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX_Voip", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX_Voip", MSM_BACKEND_DAI_INT_BT_SCO_TX,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_TX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX_Voip", MSM_BACKEND_DAI_AFE_PCM_TX,
+       SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_TX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_TX_Voip", MSM_BACKEND_DAI_AUXPCM_TX,
+       SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_TX_Voip", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("TERT_AUX_PCM_TX_Voip", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QUAT_AUX_PCM_TX_Voip", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX_Voip", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_Voip", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("INT3_MI2S_TX_Voip", MSM_BACKEND_DAI_INT3_MI2S_TX,
+       SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT3_MI2S_TX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_7_TX_Voip", MSM_BACKEND_DAI_SLIMBUS_7_TX,
+       SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_TX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_8_TX_Voip", MSM_BACKEND_DAI_SLIMBUS_8_TX,
+       SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_TX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("USB_AUDIO_TX_Voip", MSM_BACKEND_DAI_USB_TX,
+       SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_TX,
        MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
-       SOC_SINGLE_EXT("STUB_TX_HL", MSM_BACKEND_DAI_EXTPROC_TX,
+       SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_EXTPROC_TX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_INT_BT_SCO_TX,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_TX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("SLIM_1_TX", MSM_BACKEND_DAI_SLIMBUS_1_TX,
+       SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_1_TX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("STUB_1_TX_HL", MSM_BACKEND_DAI_EXTPROC_EC_TX,
+       SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_EXTPROC_EC_TX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("MI2S_TX", MSM_BACKEND_DAI_MI2S_TX,
+       SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_TX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
+       SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT3_MI2S_TX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_AUXPCM_TX,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("TERT_AUXPCM_UL_TX", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("QUAT_AUXPCM_UL_TX", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("SLIM_3_TX", MSM_BACKEND_DAI_SLIMBUS_3_TX,
+       SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_3_TX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_AFE_PCM_TX,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_TX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("SLIM_7_TX", MSM_BACKEND_DAI_SLIMBUS_7_TX,
+       SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_TX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("SLIM_8_TX", MSM_BACKEND_DAI_SLIMBUS_8_TX,
+       SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_TX,
        MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
 };
 
 static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
-       SOC_SINGLE_EXT("STUB_TX_HL", MSM_BACKEND_DAI_EXTPROC_TX,
+       SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_EXTPROC_TX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("SLIM_1_TX", MSM_BACKEND_DAI_SLIMBUS_1_TX,
+       SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_1_TX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("STUB_1_TX_HL", MSM_BACKEND_DAI_EXTPROC_EC_TX,
+       SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_EXTPROC_EC_TX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_AUXPCM_TX,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("TERT_AUXPCM_UL_TX", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("QUAT_AUXPCM_UL_TX", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("SLIM_3_TX", MSM_BACKEND_DAI_SLIMBUS_3_TX,
+       SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_3_TX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_AFE_PCM_TX,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_TX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("SLIM_7_TX", MSM_BACKEND_DAI_SLIMBUS_7_TX,
+       SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_TX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("SLIM_8_TX", MSM_BACKEND_DAI_SLIMBUS_8_TX,
+       SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_TX,
        MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
 };
 
 static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
-       SOC_SINGLE_EXT("STUB_TX_HL", MSM_BACKEND_DAI_EXTPROC_TX,
+       SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_EXTPROC_TX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("SLIM_1_TX", MSM_BACKEND_DAI_SLIMBUS_1_TX,
+       SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_1_TX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("STUB_1_TX_HL", MSM_BACKEND_DAI_EXTPROC_EC_TX,
+       SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_EXTPROC_EC_TX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_AUXPCM_TX,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("TERT_AUXPCM_UL_TX", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("QUAT_AUXPCM_UL_TX", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("SLIM_3_TX", MSM_BACKEND_DAI_SLIMBUS_3_TX,
+       SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_3_TX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_AFE_PCM_TX,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_TX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("SLIM_7_TX", MSM_BACKEND_DAI_SLIMBUS_7_TX,
+       SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_TX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
-       SOC_SINGLE_EXT("SLIM_8_TX", MSM_BACKEND_DAI_SLIMBUS_8_TX,
+       SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_TX,
        MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
        msm_routing_put_voice_stub_mixer),
 };
 
 static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_TX_QCHAT", MSM_BACKEND_DAI_PRI_I2S_TX,
+       SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_I2S_TX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX_QCHAT", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_TX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX_QCHAT",
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
        MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_QCHAT, 1, 0,
        msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX_QCHAT", MSM_BACKEND_DAI_AFE_PCM_TX,
+       SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_TX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_TX_QCHAT", MSM_BACKEND_DAI_AUXPCM_TX,
+       SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_TX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_TX_QCHAT", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_TX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("TERT_AUX_PCM_TX_QCHAT", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_TX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("QUAT_AUX_PCM_TX_QCHAT", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
+       SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("MI2S_TX_QCHAT", MSM_BACKEND_DAI_MI2S_TX,
+       SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_TX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX_QCHAT", MSM_BACKEND_DAI_PRI_MI2S_TX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_TX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX_QCHAT", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("INT3_MI2S_TX_QCHAT", MSM_BACKEND_DAI_INT3_MI2S_TX,
+       SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT3_MI2S_TX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_7_TX_QCHAT", MSM_BACKEND_DAI_SLIMBUS_7_TX,
+       SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_7_TX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("SLIM_8_TX_QCHAT", MSM_BACKEND_DAI_SLIMBUS_8_TX,
+       SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_8_TX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
-       SOC_SINGLE_EXT("USB_AUDIO_TX_QCHAT", MSM_BACKEND_DAI_USB_TX,
+       SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_TX,
        MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
        msm_routing_put_voice_mixer),
 };
 
 static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_7_TX", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_8_TX", MSM_BACKEND_DAI_INT0_MI2S_RX,
+       SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT0_MI2S_RX,
        MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_7_TX", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_8_TX", MSM_BACKEND_DAI_INT4_MI2S_RX,
+       SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT4_MI2S_RX,
        MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_1_TX", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_7_TX", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_8_TX", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_AUXPCM_UL_TX", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_AUXPCM_UL_TX", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("MI2S_TX", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_RX", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_RX", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_RX", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_RX", MSM_BACKEND_DAI_SLIMBUS_0_RX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_0_RX,
        MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_1_TX", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_AUXPCM_RX,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AUXPCM_RX,
        MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_SEC_AUXPCM_RX,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_AUXPCM_RX,
        MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("TERT_AUXPCM_UL_TX", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERT_AUXPCM_RX,
        MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("QUAT_AUXPCM_UL_TX", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
        MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_SLIMBUS_1_RX,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_1_RX,
        MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_SLIMBUS_1_RX,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_1_RX,
        MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_SLIMBUS_1_RX,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_1_RX,
        MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SLIMBUS_1_RX,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_1_RX,
        MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_AUXPCM_UL_TX", MSM_BACKEND_DAI_SLIMBUS_1_RX,
+       SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_1_RX,
        MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_AUXPCM_UL_TX", MSM_BACKEND_DAI_SLIMBUS_1_RX,
+       SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_1_RX,
        MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_RX", MSM_BACKEND_DAI_SLIMBUS_3_RX,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_3_RX,
        MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("MI2S_TX", MSM_BACKEND_DAI_SLIMBUS_3_RX,
+       SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_3_RX,
        MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_RX", MSM_BACKEND_DAI_SLIMBUS_3_RX,
+       SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_3_RX,
        MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_RX", MSM_BACKEND_DAI_SLIMBUS_3_RX,
+       SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_3_RX,
        MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_0_RX", MSM_BACKEND_DAI_SLIMBUS_3_RX,
+       SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_3_RX,
        MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_1_TX", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_7_TX", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_8_TX", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("MI2S_TX", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_SLIMBUS_6_RX,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SLIMBUS_6_RX,
        MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("SLIM_1_TX", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_INT_BT_SCO_RX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_INT_BT_SCO_RX,
        MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_1_TX", MSM_BACKEND_DAI_AFE_PCM_RX,
+       SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_AFE_PCM_RX,
        MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
 };
 
 
 static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("MI2S_TX", MSM_BACKEND_DAI_HDMI_RX,
+       SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_HDMI_RX,
        MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("MI2S_TX", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
+       SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_DISPLAY_PORT_RX,
        MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("MI2S_TX", MSM_BACKEND_DAI_SEC_I2S_RX,
+       SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SEC_I2S_RX,
        MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("SLIM_1_TX", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("MI2S_TX", MSM_BACKEND_DAI_MI2S_RX,
+       SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_MI2S_RX,
        MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUIN_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_8_TX", MSM_BACKEND_DAI_PRI_MI2S_RX,
+       SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_PRI_MI2S_RX,
        MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("USB_AUDIO_TX", MSM_BACKEND_DAI_USB_RX,
+       SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_USB_RX,
        MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_8_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
+       SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
        MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_0,
                MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_0,
                MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_0,
                MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_0,
                MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_0,
                MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_0,
                MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_0,
                MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_0,
                MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_0", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_0,
                MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_1", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_0,
                MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_2", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_0,
                MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_3", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_0,
                MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_0,
                MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_0,
                MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_0,
                MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_PRI_TDM_RX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_0,
                MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_1,
                MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_1,
                MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_1,
                MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_1,
                MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_1,
                MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_1,
                MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_1,
                MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_1,
                MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_0", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_1,
                MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_1", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_1,
                MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_2", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_1,
                MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_3", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_1,
                MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_1,
                MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_1,
                MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_1,
                MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_PRI_TDM_RX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_1,
                MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_2,
                MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_2,
                MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_2,
                MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_2,
                MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_2,
                MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_2,
                MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_2,
                MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_2,
                MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_0", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_2,
                MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_1", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_2,
                MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_2", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_2,
                MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_3", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_2,
                MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_2,
                MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_2,
                MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_2,
                MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_PRI_TDM_RX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_2,
                MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_3,
                MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_3,
                MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_3,
                MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_3,
                MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_3,
                MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_3,
                MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_3,
                MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_3,
                MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_0", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_3,
                MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_1", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_3,
                MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_2", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_3,
                MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_3", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_3,
                MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_3,
                MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_3,
                MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_3,
                MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_PRI_TDM_RX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_PRI_TDM_RX_3,
                MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_0,
                MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_0,
                MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_0,
                MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_0,
                MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_0,
                MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_0,
                MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_0,
                MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_0,
                MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_0", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_0,
                MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_1", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_0,
                MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_2", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_0,
                MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_3", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_0,
                MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_0,
                MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_0,
                MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_0,
                MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_SEC_TDM_RX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_0,
                MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_1,
                MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_1,
                MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_1,
                MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_1,
                MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_1,
                MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_1,
                MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_1,
                MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_1,
                MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_0", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_1,
                MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_1", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_1,
                MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_2", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_1,
                MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_3", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_1,
                MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_1,
                MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_1,
                MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_1,
                MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_SEC_TDM_RX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_1,
                MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_2,
                MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_2,
                MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_2,
                MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_2,
                MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_2,
                MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_2,
                MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_2,
                MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_2,
                MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_0", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_2,
                MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_1", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_2,
                MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_2", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_2,
                MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_3", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_2,
                MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_2,
                MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_2,
                MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_2,
                MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_SEC_TDM_RX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_2,
                MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_3,
                MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_3,
                MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_3,
                MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_3,
                MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_3,
                MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_3,
                MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_3,
                MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_3,
                MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_0", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_3,
                MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_1", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_3,
                MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_2", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_3,
                MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_TDM_TX_3", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_3,
                MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_3,
                MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_3,
                MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_3,
                MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_SEC_TDM_RX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SEC_TDM_RX_3,
                MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_0,
                MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_0,
                MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_0,
                MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_0,
                MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_0,
                MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_0,
                MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_0,
                MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_0,
                MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_0", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_0,
                MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_1", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_0,
                MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_2", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_0,
                MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_3", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_0,
                MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_0,
                MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_0,
                MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_0,
                MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_TERT_TDM_RX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_0,
                MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_1,
                MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_1,
                MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_1,
                MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_1,
                MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_1,
                MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_1,
                MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_1,
                MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_1,
                MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_0", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_1,
                MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_1", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_1,
                MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_2", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_1,
                MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_3", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_1,
                MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_1,
                MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_1,
                MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_1,
                MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_TERT_TDM_RX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_1,
                MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_2,
                MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_2,
                MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_2,
                MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_2,
                MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_2,
                MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_2,
                MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_2,
                MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_2,
                MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_0", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_2,
                MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_1", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_2,
                MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_2", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_2,
                MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_3", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_2,
                MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_2,
                MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_2,
                MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_2,
                MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_TERT_TDM_RX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_2,
                MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_3,
                MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_3,
                MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_3,
                MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_3,
                MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_3,
                MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_3,
                MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_3,
                MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_3,
                MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_0", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_3,
                MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_1", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_3,
                MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_2", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_3,
                MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_3", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_3,
                MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_3,
                MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_3,
                MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_3,
                MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_TERT_TDM_RX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERT_TDM_RX_3,
                MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_0,
                MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_0,
                MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_0,
                MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_0,
                MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_0,
                MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_0,
                MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_0,
                MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_0,
                MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_0,
                MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_1", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_0,
                MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_2", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_0,
                MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_3", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_0,
                MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_0,
                MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_1", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_0,
                MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_2", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_0,
                MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_3", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_0,
                MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_0,
                MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_0,
                MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_0,
                MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_QUAT_TDM_RX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_0,
                MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_1,
                MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_1,
                MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_1,
                MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_1,
                MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_1,
                MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_1,
                MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_1,
                MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_1,
                MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_1,
                MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_1", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_1,
                MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_2", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_1,
                MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_3", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_1,
                MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_1,
                MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_1", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_1,
                MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_2", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_1,
                MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_3", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_1,
                MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_1,
                MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_1,
                MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_1,
                MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_QUAT_TDM_RX_1,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_1,
                MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_2,
                MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_2,
                MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_2,
                MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_2,
                MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_2,
                MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_2,
                MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_2,
                MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_2,
                MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_2,
                MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_1", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_2,
                MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_2", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_2,
                MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_3", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_2,
                MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_2,
                MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_1", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_2,
                MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_2", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_2,
                MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_3", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_2,
                MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_2,
                MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_2,
                MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_2,
                MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_QUAT_TDM_RX_2,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_2,
                MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_3,
                MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_3,
                MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_3,
                MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_3,
                MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_3,
                MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_3,
                MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_3,
                MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_3,
                MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_3,
                MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_1", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_3,
                MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_2", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_3,
                MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("PRI_TDM_TX_3", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_3,
                MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_3,
                MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_1", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_3,
                MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_2", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_3,
                MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_TDM_TX_3", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_3,
                MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_3,
                MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_1", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_3,
                MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_2", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_3,
                MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_3", MSM_BACKEND_DAI_QUAT_TDM_RX_3,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_RX_3,
                MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
                msm_routing_get_port_mixer,
                msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_8_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
+       SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
        MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
-       SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SEC_MI2S_TX", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
-       SOC_SINGLE_EXT("SLIM_8_TX", MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
+       SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
+       MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
        MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
        msm_routing_put_port_mixer),
 };
 
 static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
-       SOC_SINGLE_EXT("SLIMBUS_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_0_TX,
                MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_1_TX", MSM_BACKEND_DAI_SLIMBUS_1_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_1_TX,
                MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_3_TX", MSM_BACKEND_DAI_SLIMBUS_3_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_3_TX,
                MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_4_TX", MSM_BACKEND_DAI_SLIMBUS_4_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_4_TX,
                MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_5_TX", MSM_BACKEND_DAI_SLIMBUS_5_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_5_TX,
                MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
                MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
                MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
+       SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_INT3_MI2S_TX,
                MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_TX_0,
                MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
 };
 
 static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
-       SOC_SINGLE_EXT("SLIMBUS_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_0_TX,
                MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_1_TX", MSM_BACKEND_DAI_SLIMBUS_1_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_1_TX,
                MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_3_TX", MSM_BACKEND_DAI_SLIMBUS_3_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_3_TX,
                MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_4_TX", MSM_BACKEND_DAI_SLIMBUS_4_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_4_TX,
                MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_5_TX", MSM_BACKEND_DAI_SLIMBUS_5_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_5_TX,
                MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
                MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
                MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
+       SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_INT3_MI2S_TX,
                MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_TX_0,
                MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
 };
 
 static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
-       SOC_SINGLE_EXT("SLIMBUS_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_0_TX,
                MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_1_TX", MSM_BACKEND_DAI_SLIMBUS_1_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_1_TX,
                MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_3_TX", MSM_BACKEND_DAI_SLIMBUS_3_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_3_TX,
                MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_4_TX", MSM_BACKEND_DAI_SLIMBUS_4_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_4_TX,
                MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_5_TX", MSM_BACKEND_DAI_SLIMBUS_5_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_5_TX,
                MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
                MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
                MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
+       SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_INT3_MI2S_TX,
                MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_TX_0,
                MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
 };
 
 static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
-       SOC_SINGLE_EXT("SLIMBUS_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_0_TX,
                MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_1_TX", MSM_BACKEND_DAI_SLIMBUS_1_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_1_TX,
                MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_3_TX", MSM_BACKEND_DAI_SLIMBUS_3_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_3_TX,
                MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_4_TX", MSM_BACKEND_DAI_SLIMBUS_4_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_4_TX,
                MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_5_TX", MSM_BACKEND_DAI_SLIMBUS_5_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_5_TX,
                MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
                MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
                MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
+       SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_INT3_MI2S_TX,
                MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_TX_0,
                MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
 };
 
 static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
-       SOC_SINGLE_EXT("SLIMBUS_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_0_TX,
                MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_1_TX", MSM_BACKEND_DAI_SLIMBUS_1_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_1_TX,
                MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_3_TX", MSM_BACKEND_DAI_SLIMBUS_3_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_3_TX,
                MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_4_TX", MSM_BACKEND_DAI_SLIMBUS_4_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_4_TX,
                MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_5_TX", MSM_BACKEND_DAI_SLIMBUS_5_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_5_TX,
                MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
                MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
                MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
+       SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_INT3_MI2S_TX,
                MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_TX_0,
                MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
 };
 
 static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
-       SOC_SINGLE_EXT("SLIMBUS_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_0_TX,
                MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_1_TX", MSM_BACKEND_DAI_SLIMBUS_1_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_1_TX,
                MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_3_TX", MSM_BACKEND_DAI_SLIMBUS_3_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_3_TX,
                MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_4_TX", MSM_BACKEND_DAI_SLIMBUS_4_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_4_TX,
                MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_5_TX", MSM_BACKEND_DAI_SLIMBUS_5_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_5_TX,
                MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
                MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
                MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
+       SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_INT3_MI2S_TX,
                MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_TX_0,
                MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
 };
 
 static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
-       SOC_SINGLE_EXT("SLIMBUS_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_0_TX,
                MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_1_TX", MSM_BACKEND_DAI_SLIMBUS_1_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_1_TX,
                MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_3_TX", MSM_BACKEND_DAI_SLIMBUS_3_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_3_TX,
                MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_4_TX", MSM_BACKEND_DAI_SLIMBUS_4_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_4_TX,
                MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_5_TX", MSM_BACKEND_DAI_SLIMBUS_5_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_5_TX,
                MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
                MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
                MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
+       SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_INT3_MI2S_TX,
                MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_TX_0,
                MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
 };
 
 static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
-       SOC_SINGLE_EXT("SLIMBUS_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_0_TX,
                MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_1_TX", MSM_BACKEND_DAI_SLIMBUS_1_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_1_TX,
                MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_3_TX", MSM_BACKEND_DAI_SLIMBUS_3_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_3_TX,
                MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_4_TX", MSM_BACKEND_DAI_SLIMBUS_4_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_4_TX,
                MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("SLIMBUS_5_TX", MSM_BACKEND_DAI_SLIMBUS_5_TX,
+       SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_SLIMBUS_5_TX,
                MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
+       SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
                MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
+       SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
                MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
+       SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_INT3_MI2S_TX,
                MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
-       SOC_SINGLE_EXT("QUAT_TDM_TX_0", MSM_BACKEND_DAI_QUAT_TDM_TX_0,
+       SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
+               MSM_BACKEND_DAI_QUAT_TDM_TX_0,
                MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
                msm_routing_put_listen_mixer),
 };
 
+
 static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
        SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
        0, 1, 0, msm_routing_get_switch_mixer,
@@ -12773,6 +15278,7 @@ static int msm_routing_put_lsm_app_type_cfg_control(
                        __func__);
                return -EINVAL;
        }
+
        for (j = 0; j < num_app_types; j++) {
                lsm_app_type_cfg[j].app_type =
                                ucontrol->value.integer.value[i++];
@@ -13400,28 +15906,28 @@ static const int const int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
 };
 
 static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
-       SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
+       SOC_VALUE_ENUM_DOUBLE(SND_SOC_NOPM, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
        ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
        slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
 
 static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
-       SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
+       SOC_VALUE_ENUM_DOUBLE(SND_SOC_NOPM, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
        ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
        slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
 
 static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
-       SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
+       SOC_VALUE_ENUM_DOUBLE(SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
        ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
        mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
 
 static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
-       SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
+       SOC_VALUE_ENUM_DOUBLE(SND_SOC_NOPM, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
        ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
        int4_mi2s_rx_vi_fb_tx_mono_mux_text,
        int4_mi2s_rx_vi_fb_tx_mono_ch_value);
 
 static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
-       SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
+       SOC_VALUE_ENUM_DOUBLE(SND_SOC_NOPM, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
        ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
        int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
        int4_mi2s_rx_vi_fb_tx_stereo_ch_value);