diff --git a/hal/audio_extn/a2dp.c b/hal/audio_extn/a2dp.c
index d0170db..0352523 100644
--- a/hal/audio_extn/a2dp.c
+++ b/hal/audio_extn/a2dp.c
@@ -256,6 +256,7 @@
 // --- external function dependency ---
 fp_platform_get_pcm_device_id_t fp_platform_get_pcm_device_id;
 fp_check_a2dp_restore_t fp_check_a2dp_restore_l;
+fp_platform_switch_voice_call_device_post_t fp_platform_switch_voice_call_device_post;
 
 /* PCM config for ABR Feedback hostless front end */
 static struct pcm_config pcm_config_abr = {
@@ -3020,6 +3021,8 @@
   fp_platform_get_pcm_device_id =
               init_config.fp_platform_get_pcm_device_id;
   fp_check_a2dp_restore_l = init_config.fp_check_a2dp_restore_l;
+  fp_platform_switch_voice_call_device_post =
+                init_config.fp_platform_switch_voice_call_device_post;
 
   reset_a2dp_enc_config_params();
   reset_a2dp_source_dec_config_params();
@@ -3197,6 +3200,12 @@
     ALOGD("sco_start_configuration start");
 
     if (!a2dp.swb_configured) {
+        /*Before starting sco config, we must ensure to set correct acdb id
+         because sco cofiguration will trigger port open which needs acdb_id*/
+         fp_platform_switch_voice_call_device_post(a2dp.adev->platform,
+                                            SND_DEVICE_OUT_BT_SCO_SWB,
+                                            SND_DEVICE_IN_BT_SCO_MIC_SWB);
+
         a2dp.bt_encoder_format = CODEC_TYPE_APTX_AD_SPEECH;
         /* Configure AFE codec*/
         if (configure_aptx_ad_speech_enc_fmt() &&
diff --git a/hal/audio_extn/audio_extn.c b/hal/audio_extn/audio_extn.c
index c3c80a0..0b8f3ec 100644
--- a/hal/audio_extn/audio_extn.c
+++ b/hal/audio_extn/audio_extn.c
@@ -4751,6 +4751,7 @@
         a2dp_offload_init_config_t a2dp_init_config;
         a2dp_init_config.fp_platform_get_pcm_device_id = platform_get_pcm_device_id;
         a2dp_init_config.fp_check_a2dp_restore_l = check_a2dp_restore_l;
+        a2dp_init_config.fp_platform_switch_voice_call_device_post = platform_switch_voice_call_device_post;
 
         a2dp_init(adev, a2dp_init_config);
     }
diff --git a/hal/audio_extn/audio_extn.h b/hal/audio_extn/audio_extn.h
index 8820d01..54fe727 100644
--- a/hal/audio_extn/audio_extn.h
+++ b/hal/audio_extn/audio_extn.h
@@ -161,6 +161,9 @@
 typedef int (*fp_platform_send_audio_calibration_t)(void *, struct audio_usecase *,
                                                    int);
 typedef int (*fp_platform_get_pcm_device_id_t)(audio_usecase_t, int);
+typedef int (*fp_platform_switch_voice_call_device_post_t)(void *platform,
+                                           snd_device_t out_snd_device,
+                                           snd_device_t in_snd_device);
 typedef const char *(*fp_platform_get_snd_device_name_t)(snd_device_t);
 typedef int (*fp_platform_spkr_prot_is_wsa_analog_mode_t)(void *);
 typedef int (*fp_platform_get_snd_device_t)(snd_device_t);
@@ -338,6 +341,7 @@
 struct a2dp_offload_init_config {
     fp_platform_get_pcm_device_id_t fp_platform_get_pcm_device_id;
     fp_check_a2dp_restore_t fp_check_a2dp_restore_l;
+    fp_platform_switch_voice_call_device_post_t fp_platform_switch_voice_call_device_post;
 };
 typedef struct a2dp_offload_init_config a2dp_offload_init_config_t;
 // END: A2DP_OFFLOAD FEATURE ====================================================
