diff --git a/hal/audio_extn/compress_in.c b/hal/audio_extn/compress_in.c
index c032480..403ee8b 100644
--- a/hal/audio_extn/compress_in.c
+++ b/hal/audio_extn/compress_in.c
@@ -84,7 +84,8 @@
 
 bool audio_extn_cin_applicable_stream(struct stream_in *in)
 {
-    if (in->flags & AUDIO_INPUT_FLAG_TIMESTAMP)
+    if ((in->flags & AUDIO_INPUT_FLAG_TIMESTAMP) ||
+        in->usecase == USECASE_AUDIO_RECORD_COMPRESS2)
         return true;
 
     return false;
@@ -256,7 +257,8 @@
     int ret = 0, buffer_size = 0, meta_size = sizeof(struct snd_codec_metadata);
     cin_private_data_t *cin_data = NULL;
 
-    if (!COMPRESSED_TIMESTAMP_FLAG) {
+    if (!COMPRESSED_TIMESTAMP_FLAG &&
+        (in->flags & AUDIO_INPUT_FLAG_TIMESTAMP)) {
         ALOGE("%s: timestamp mode not supported!", __func__);
         return -EINVAL;
     }
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index d275e3d..e6dfb66 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -4672,7 +4672,6 @@
         }
     }
 
-    /* Update config params with the requested sample rate and channels */
     in->usecase = USECASE_AUDIO_RECORD;
     if (config->sample_rate == LOW_LATENCY_CAPTURE_SAMPLE_RATE &&
             (flags & AUDIO_INPUT_FLAG_FAST) != 0) {
@@ -4683,6 +4682,24 @@
         in->realtime = may_use_noirq_mode(adev, in->usecase, in->flags);
     }
 
+    pthread_mutex_lock(&adev->lock);
+    if (in->usecase == USECASE_AUDIO_RECORD) {
+        if (!(adev->pcm_record_uc_state) &&
+            ((flags & AUDIO_INPUT_FLAG_TIMESTAMP) == 0)) {
+            ALOGV("%s: pcm record usecase", __func__);
+            adev->pcm_record_uc_state = 1;
+        } else {
+            /*
+             * Assign default compress record use case, actual use case
+             * assignment will happen later.
+             */
+             in->usecase = USECASE_AUDIO_RECORD_COMPRESS2;
+             ALOGV("%s: compress record usecase", __func__);
+        }
+    }
+    pthread_mutex_unlock(&adev->lock);
+
+    /* Update config params with the requested sample rate and channels */
     if (in->device == AUDIO_DEVICE_IN_TELEPHONY_RX) {
         if (adev->mode != AUDIO_MODE_IN_CALL) {
             ret = -EINVAL;
@@ -4796,6 +4813,13 @@
     if (audio_extn_compr_cap_enabled() &&
             audio_extn_compr_cap_format_supported(in->config.format))
         audio_extn_compr_cap_deinit();
+
+    if (in->usecase == USECASE_AUDIO_RECORD) {
+        pthread_mutex_lock(&adev->lock);
+        adev->pcm_record_uc_state = 0;
+        pthread_mutex_unlock(&adev->lock);
+    }
+
     if (audio_extn_cin_attached_usecase(in->usecase))
         audio_extn_cin_close_input_stream(in);
 
@@ -4927,6 +4951,7 @@
     list_init(&adev->usecase_list);
     adev->cur_wfd_channels = 2;
     adev->offload_usecases_state = 0;
+    adev->pcm_record_uc_state = 0;
     adev->is_channel_status_set = false;
     adev->perf_lock_opts[0] = 0x101;
     adev->perf_lock_opts[1] = 0x20E;
diff --git a/hal/audio_hw.h b/hal/audio_hw.h
index 38ac547..f837952 100644
--- a/hal/audio_hw.h
+++ b/hal/audio_hw.h
@@ -385,6 +385,7 @@
     bool is_channel_status_set;
     void *platform;
     unsigned int offload_usecases_state;
+    unsigned int pcm_record_uc_state;
     void *visualizer_lib;
     int (*visualizer_start_output)(audio_io_handle_t, int);
     int (*visualizer_stop_output)(audio_io_handle_t, int);
