diff --git a/hal/audio_extn/audio_extn.c b/hal/audio_extn/audio_extn.c
index 0f38b82..ff7560e 100644
--- a/hal/audio_extn/audio_extn.c
+++ b/hal/audio_extn/audio_extn.c
@@ -67,15 +67,7 @@
     bool hifi_audio_enabled;
 };
 
-static struct audio_extn_module aextnmod = {
-    .anc_enabled = 0,
-    .aanc_enabled = 0,
-    .custom_stereo_enabled = 0,
-    .proxy_channel_num = 2,
-    .hpx_enabled = 0,
-    .vbat_enabled = 0,
-    .hifi_audio_enabled = 0,
-};
+static struct audio_extn_module aextnmod;
 
 #define AUDIO_PARAMETER_KEY_ANC        "anc_enabled"
 #define AUDIO_PARAMETER_KEY_WFD        "wfd_channel_cap"
@@ -752,6 +744,17 @@
     return ret;
 }
 
+void audio_extn_init(void)
+{
+    aextnmod.anc_enabled = 0;
+    aextnmod.aanc_enabled = 0;
+    aextnmod.custom_stereo_enabled = 0;
+    aextnmod.proxy_channel_num = 2;
+    aextnmod.hpx_enabled = 0;
+    aextnmod.vbat_enabled = 0;
+    aextnmod.hifi_audio_enabled = 0;
+}
+
 void audio_extn_set_parameters(struct audio_device *adev,
                                struct str_parms *parms)
 {
diff --git a/hal/audio_extn/audio_extn.h b/hal/audio_extn/audio_extn.h
index 337acd1..3efd337 100644
--- a/hal/audio_extn/audio_extn.h
+++ b/hal/audio_extn/audio_extn.h
@@ -44,6 +44,10 @@
 #define AUDIO_DEVICE_OUT_PROXY 0x40000
 #endif
 
+#ifndef AUDIO_DEVICE_IN_PROXY
+#define AUDIO_DEVICE_IN_PROXY (AUDIO_DEVICE_BIT_IN | 0x1000000)
+#endif
+
 #ifndef INCALL_MUSIC_ENABLED
 #define AUDIO_OUTPUT_FLAG_INCALL_MUSIC 0x8000
 #endif
@@ -501,6 +505,7 @@
 void audio_extn_pm_unvote(void);
 #endif
 
+void audio_extn_init(void);
 void audio_extn_utils_update_streams_cfg_lists(void *platform,
                                   struct mixer *mixer,
                                   struct listnode *streams_output_cfg_list,
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index fb668d5..c9e144f 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -4717,6 +4717,14 @@
             ret = -EINVAL;
             goto err_open;
         }
+    if ((in->device == AUDIO_DEVICE_IN_TELEPHONY_RX) &&
+          (adev->mode != AUDIO_MODE_IN_CALL)) {
+        ret = -EINVAL;
+        goto err_open;
+    }
+
+    if ((in->device == AUDIO_DEVICE_IN_TELEPHONY_RX) ||
+             (in->device == AUDIO_DEVICE_IN_PROXY)) {
         if (config->sample_rate == 0)
             config->sample_rate = AFE_PROXY_SAMPLING_RATE;
         if (config->sample_rate != 48000 && config->sample_rate != 16000 &&
@@ -5015,6 +5023,7 @@
                                                         "visualizer_hal_stop_output");
         }
     }
+    audio_extn_init();
     audio_extn_listen_init(adev, adev->snd_card);
     audio_extn_sound_trigger_init(adev);
     audio_extn_gef_init(adev);
