diff --git a/drivers/media/platform/mtk-vpu/mtk_vcu.c b/drivers/media/platform/mtk-vpu/mtk_vcu.c
index 548aa51..089b78c7 100644
--- a/drivers/media/platform/mtk-vpu/mtk_vcu.c
+++ b/drivers/media/platform/mtk-vpu/mtk_vcu.c
@@ -285,6 +285,7 @@
 	const char *vcuname;
 	const char *path;
 	int vcuid;
+	struct log_test_nofuse *vdec_log_info;
 	wait_queue_head_t vdec_log_get_wq;
 	atomic_t vdec_log_got;
 	struct map_cache_mva map_buffer[MAP_VENC_CACHE_MAX_NUM];
@@ -429,6 +430,33 @@
 	return ret;
 }
 
+static int vcu_log_get(struct mtk_vcu *vcu, unsigned long arg)
+{
+	int ret;
+	unsigned char *user_data_addr = NULL;
+
+	user_data_addr = (unsigned char *)arg;
+
+	ret = wait_event_freezable(vcu->vdec_log_get_wq,
+				    atomic_read(&vcu->vdec_log_got));
+	if (ret != 0) {
+		pr_info("[VCU][%d] wait event return %d @%s\n",
+			vcu->vcuid, ret, __func__);
+		return ret;
+	}
+
+	ret = copy_to_user(user_data_addr, vcu->vdec_log_info,
+		(unsigned long)sizeof(struct log_test_nofuse));
+	if (ret != 0) {
+		pr_info("[VCU] %s(%d) Copy data to user failed!\n",
+			__func__, __LINE__);
+		ret = -EINVAL;
+	}
+	atomic_set(&vcu->vdec_log_got, 0);
+
+	return ret;
+}
+
 unsigned int vcu_get_vdec_hw_capa(struct mtk_vpu_plat *vpu)
 {
 	struct mtk_vcu *vcu = to_vcu(vpu);
@@ -773,6 +801,9 @@
 	case VCUD_GET_OBJECT:
 		ret = vcu_ipi_get(vcu_dev, arg);
 		break;
+	case VCUD_GET_LOG_OBJECT:
+		ret = vcu_log_get(vcu_dev, arg);
+		break;
 	case VCUD_MVA_ALLOCATION:
 		user_data_addr = (unsigned char *)arg;
 		ret = (long)copy_from_user(&mem_buff_data, user_data_addr,
@@ -881,6 +912,7 @@
 	switch (cmd) {
 	case COMPAT_VCUD_SET_OBJECT:
 	case VCUD_GET_OBJECT:
+	case VCUD_GET_LOG_OBJECT:
 	case VCUD_SET_MMAP_TYPE:
 		share_data32 = compat_ptr((uint32_t)arg);
 		ret = file->f_op->unlocked_ioctl(file,
@@ -972,6 +1004,10 @@
 		return ret;
 	}
 	vcu_mtkdev[vcuid] = vcu;
+	vcu_mtkdev[vcuid]->vdec_log_info = devm_kzalloc(dev,
+		sizeof(struct log_test_nofuse), GFP_KERNEL);
+	if (!vcu_mtkdev[vcuid]->vdec_log_info)
+		return -ENOMEM;
 
 #ifdef CONFIG_MTK_IOMMU
 	vcu_mtkdev[vcuid]->io_domain = iommu_get_domain_for_dev(dev);
