diff --git a/Makefile b/Makefile
index 0235ce8..bef408f 100644
--- a/Makefile
+++ b/Makefile
@@ -1,21 +1,27 @@
 # SPDX-License-Identifier: GPL-2.0-only
 
 # auto-detect subdirs
-ifeq ($(CONFIG_ARCH_KONA), y)
-include $(srctree)/techpack/video/config/konavid.conf
+ifeq ($(CONFIG_MSM_VIDC_V4L2:M=m), m)
+SUFFIX_MSM_VIDC_V4L2:=-gki
+else
+SUFFIX_MSM_VIDC_V4L2:=
 endif
 
 ifeq ($(CONFIG_ARCH_KONA), y)
-LINUXINCLUDE    += -include $(srctree)/techpack/video/config/konavidconf.h
+include $(srctree)/techpack/video/config/konavid$(SUFFIX_MSM_VIDC_V4L2).conf
+endif
+
+ifeq ($(CONFIG_ARCH_KONA), y)
+LINUXINCLUDE    += -include $(srctree)/techpack/video/config/konavidconf$(SUFFIX_MSM_VIDC_V4L2).h
 endif
 
 # auto-detect subdirs
 ifeq ($(CONFIG_ARCH_LITO), y)
-include $(srctree)/techpack/video/config/litovid.conf
+include $(srctree)/techpack/video/config/litovid$(SUFFIX_MSM_VIDC_V4L2).conf
 endif
 
 ifeq ($(CONFIG_ARCH_LITO), y)
-LINUXINCLUDE    += -include $(srctree)/techpack/video/config/litovidconf.h
+LINUXINCLUDE    += -include $(srctree)/techpack/video/config/litovidconf$(SUFFIX_MSM_VIDC_V4L2).h
 endif
 
 # auto-detect subdirs
diff --git a/config/konavid-gki.conf b/config/konavid-gki.conf
new file mode 100644
index 0000000..10a2274
--- /dev/null
+++ b/config/konavid-gki.conf
@@ -0,0 +1 @@
+export CONFIG_MSM_VIDC_V4L2=m
diff --git a/config/konavidconf-gki.h b/config/konavidconf-gki.h
new file mode 100644
index 0000000..c1e6e4e
--- /dev/null
+++ b/config/konavidconf-gki.h
@@ -0,0 +1,6 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (c) 2019, The Linux Foundation. All rights reserved.
+ */
+
+#define CONFIG_MSM_VIDC_V4L2_MODULE 1
diff --git a/config/konavidconf.h b/config/konavidconf.h
index da305d5..78d6c57 100644
--- a/config/konavidconf.h
+++ b/config/konavidconf.h
@@ -3,4 +3,4 @@
  * Copyright (c) 2019, The Linux Foundation. All rights reserved.
  */
 
-#define CONFIG_MSM_VIDC_V4L2 1 
+#define CONFIG_MSM_VIDC_V4L2 1
diff --git a/config/litovid-gki.conf b/config/litovid-gki.conf
new file mode 100644
index 0000000..efb4eed
--- /dev/null
+++ b/config/litovid-gki.conf
@@ -0,0 +1 @@
+export CONFIG_MSM_VIDC_V4L2=y
diff --git a/config/litovidconf-gki.h b/config/litovidconf-gki.h
new file mode 100644
index 0000000..78d6c57
--- /dev/null
+++ b/config/litovidconf-gki.h
@@ -0,0 +1,6 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (c) 2019, The Linux Foundation. All rights reserved.
+ */
+
+#define CONFIG_MSM_VIDC_V4L2 1
diff --git a/msm/vidc/hfi_common.c b/msm/vidc/hfi_common.c
index ae412f2..3c19b8f 100644
--- a/msm/vidc/hfi_common.c
+++ b/msm/vidc/hfi_common.c
@@ -3081,6 +3081,8 @@
 	struct hfi_sfr_struct *vsfr = NULL;
 	u32 vsfr_size = 0;
 	void *p = NULL;
+	char *fatal_reason = NULL;
+	char crash_reason[MAX_SSR_REASON_LEN];
 
 	vsfr = (struct hfi_sfr_struct *)device->sfr.align_virtual_addr;
 	if (vsfr) {
@@ -3095,6 +3097,20 @@
 		if (p == NULL)
 			vsfr->rg_data[vsfr_size - 1] = '\0';
 
+		fatal_reason =
+			strnstr(vsfr->rg_data, "Err_Fatal", MAX_SSR_REASON_LEN);
+		if (fatal_reason) {
+			subsystem_set_crash_reason("venus", fatal_reason);
+		} else if (call_venus_op(device, watchdog, device->intr_status)) {
+			snprintf(crash_reason, MAX_SSR_REASON_LEN,
+				 "Watchdog_Timeout - %s", vsfr->rg_data);
+				 subsystem_set_crash_reason("venus", crash_reason);
+		} else {
+			snprintf(crash_reason, MAX_SSR_REASON_LEN,
+				 "Unknown - %s", vsfr->rg_data);
+			subsystem_set_crash_reason("venus", crash_reason);
+		}
+
 		d_vpr_e("SFR Message from FW: %s\n", vsfr->rg_data);
 	}
 }
@@ -4813,7 +4829,7 @@
 
 	hdevice->res = res;
 	hdevice->device_id = device_id;
-	hdevice->callback = (msm_vidc_callback) callback;
+	hdevice->callback = callback;
 
 	__init_venus_ops(hdevice);
 
diff --git a/msm/vidc/hfi_common.h b/msm/vidc/hfi_common.h
index 9d288c1..f027176 100644
--- a/msm/vidc/hfi_common.h
+++ b/msm/vidc/hfi_common.h
@@ -259,7 +259,7 @@
 	struct msm_vidc_bus_data bus_vote;
 	bool power_enabled;
 	struct mutex lock;
-	msm_vidc_callback callback;
+	hfi_cmd_response_callback callback;
 	struct vidc_mem_addr iface_q_table;
 	struct vidc_mem_addr dsp_iface_q_table;
 	struct vidc_mem_addr qdss;
diff --git a/msm/vidc/hfi_iris2.c b/msm/vidc/hfi_iris2.c
index 179fb2a..0f16e9b 100644
--- a/msm/vidc/hfi_iris2.c
+++ b/msm/vidc/hfi_iris2.c
@@ -2,6 +2,7 @@
 /*
  * Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
  */
+#include <linux/kernel.h>
 
 #include "msm_vidc_debug.h"
 #include "hfi_common.h"
@@ -167,9 +168,9 @@
 				(u32)device->qdss.align_device_addr, sid);
 	/* update queues vaddr for debug purpose */
 	__write_register(device, CPU_CS_VCICMDARG0_IRIS2,
-		(u32)device->iface_q_table.align_virtual_addr, sid);
+		(u32)((uintptr_t)device->iface_q_table.align_virtual_addr & UINT_MAX), sid);
 	__write_register(device, CPU_CS_VCICMDARG1_IRIS2,
-		(u32)((u64)device->iface_q_table.align_virtual_addr >> 32),
+		(u32)((uintptr_t)device->iface_q_table.align_virtual_addr >> 32),
 		sid);
 }
 
diff --git a/msm/vidc/msm_v4l2_vidc.c b/msm/vidc/msm_v4l2_vidc.c
index 5f6a82a..250b480 100644
--- a/msm/vidc/msm_v4l2_vidc.c
+++ b/msm/vidc/msm_v4l2_vidc.c
@@ -437,7 +437,7 @@
 		.attrs = msm_vidc_core_attrs,
 };
 
-static const struct of_device_id msm_vidc_dt_match[] = {
+static const struct of_device_id msm_vidc_v4l2_dt_match[] = {
 	{.compatible = "qcom,msm-vidc"},
 	{.compatible = "qcom,msm-vidc,context-bank"},
 	{.compatible = "qcom,msm-vidc,bus"},
@@ -479,6 +479,7 @@
 	struct msm_vidc_core *core;
 	struct device *dev = NULL;
 	int nr = BASE_DEVICE_NUMBER;
+	u32 sku_index = 0;
 
 	if (!vidc_driver) {
 		d_vpr_e("Invalid vidc driver\n");
@@ -496,6 +497,16 @@
 		goto err_core_init;
 	}
 	dev_set_drvdata(&pdev->dev, core);
+
+	/* If the sku_version != the DT node's sku-index, then return as a successful
+	 * probe to prevent the bus from staying on. */
+	rc = of_property_read_u32(pdev->dev.of_node, "sku-index",
+			&sku_index);
+	if (!rc && sku_index != core->platform_data->sku_version) {
+		rc = 0;
+		goto err_core_init;
+	}
+
 	rc = msm_vidc_initialize_core(pdev, core);
 	if (rc) {
 		d_vpr_e("Failed to init core\n");
@@ -596,7 +607,7 @@
 	 * context-bank details and store it in core->resources.context_banks
 	 * list.
 	 */
-	rc = of_platform_populate(pdev->dev.of_node, msm_vidc_dt_match, NULL,
+	rc = of_platform_populate(pdev->dev.of_node, msm_vidc_v4l2_dt_match, NULL,
 			&pdev->dev);
 	if (rc) {
 		d_vpr_e("Failed to trigger probe for sub-devices\n");
@@ -722,6 +733,7 @@
 {
 	int rc = 0;
 	struct msm_vidc_core *core;
+	u32 sku_index = 0;
 
 	/*
 	 * Bail out if
@@ -733,6 +745,11 @@
 		!of_device_is_compatible(dev->of_node, "qcom,msm-vidc"))
 		return 0;
 
+	rc = of_property_read_u32(dev->of_node, "sku-index",
+			&sku_index);
+	if (!rc && sku_index != vidc_driver->sku_version)
+		return 0;
+
 	core = dev_get_drvdata(dev);
 	if (!core) {
 		d_vpr_e("%s: invalid core\n", __func__);
@@ -759,14 +776,14 @@
 	SET_SYSTEM_SLEEP_PM_OPS(msm_vidc_pm_suspend, msm_vidc_pm_resume)
 };
 
-MODULE_DEVICE_TABLE(of, msm_vidc_dt_match);
+MODULE_DEVICE_TABLE(of, msm_vidc_v4l2_dt_match);
 
 static struct platform_driver msm_vidc_driver = {
 	.probe = msm_vidc_probe,
 	.remove = msm_vidc_remove,
 	.driver = {
 		.name = "msm_vidc_v4l2",
-		.of_match_table = msm_vidc_dt_match,
+		.of_match_table = msm_vidc_v4l2_dt_match,
 		.pm = &msm_vidc_pm_ops,
 	},
 };
diff --git a/msm/vidc/msm_venc.c b/msm/vidc/msm_venc.c
index 02c924a..cab9a56 100644
--- a/msm/vidc/msm_venc.c
+++ b/msm/vidc/msm_venc.c
@@ -4587,7 +4587,8 @@
 	 * However, all-intra is intended for quality bitstream. Hence,
 	 * fallback to VBR RC mode if client needs all-intra encoding.
 	 */
-	if (inst->rc_type == V4L2_MPEG_VIDEO_BITRATE_MODE_CBR)
+	if (inst->rc_type == V4L2_MPEG_VIDEO_BITRATE_MODE_CBR ||
+		inst->rc_type == V4L2_MPEG_VIDEO_BITRATE_MODE_CBR_VFR)
 		inst->rc_type = V4L2_MPEG_VIDEO_BITRATE_MODE_VBR;
 
 	/* check supported bit rate mode and frame rate */
diff --git a/msm/vidc/msm_vidc_clocks.c b/msm/vidc/msm_vidc_clocks.c
index f06ace0..af0fd9a 100644
--- a/msm/vidc/msm_vidc_clocks.c
+++ b/msm/vidc/msm_vidc_clocks.c
@@ -1765,13 +1765,10 @@
 		msm_vidc_power_save_mode_enable(inst, enable);
 	} else if (cur_inst_lp_load + core_load <= max_freq) {
 		msm_vidc_power_save_mode_enable(inst, true);
-	} else if (cur_inst_lp_load + core_lp_load <= max_freq) {
+	} else {
 		s_vpr_h(inst->sid, "Moved all inst's to LP");
 		msm_vidc_move_core_to_power_save_mode(core,
 			VIDC_CORE_ID_1, inst->sid);
-	} else {
-		s_vpr_e(inst->sid, "Core cannot support this load\n");
-		return -EINVAL;
 	}
 
 	inst->clk_data.core_id = VIDC_CORE_ID_1;
diff --git a/msm/vidc/msm_vidc_common.c b/msm/vidc/msm_vidc_common.c
index ee8c1b2..785fa9c 100644
--- a/msm/vidc/msm_vidc_common.c
+++ b/msm/vidc/msm_vidc_common.c
@@ -1342,6 +1342,7 @@
 {
 	int rc = 0;
 	struct hfi_device *hdev;
+	char crash_reason[MAX_SSR_REASON_LEN];
 
 	if (!inst) {
 		d_vpr_e("Invalid(%pK) instance id\n", inst);
@@ -1359,6 +1360,12 @@
 	if (!rc) {
 		s_vpr_e(inst->sid, "Wait interrupted or timed out: %d\n",
 				SESSION_MSG_INDEX(cmd));
+		snprintf(crash_reason, MAX_SSR_REASON_LEN,
+			 "HW_RSP_Timeout - Wait interrupted or timed out: %d",
+			 SESSION_MSG_INDEX(cmd));
+
+		subsystem_set_crash_reason("venus", crash_reason);
+
 		msm_comm_kill_session(inst);
 		rc = -EIO;
 	} else {
@@ -6828,8 +6835,15 @@
 			rc = msm_smem_cache_operations(mbuf->smem[i].dma_buf,
 					cache_op, offset, size, inst->sid);
 			if (rc)
-				print_vidc_buffer(VIDC_ERR,
-					"qbuf cache ops failed", inst, mbuf);
+				dprintk_ratelimit(VIDC_ERR,
+					"qbuf cache ops failed: %s: idx %2d fd %d off %d daddr %x size %d filled %d flags 0x%x ts %lld refcnt %d mflags 0x%x\n",
+					vb->type == INPUT_MPLANE ?
+					"OUTPUT" : "CAPTURE",
+					vb->index, vb->planes[i].m.fd,
+					vb->planes[i].data_offset, mbuf->smem[i].device_addr,
+					vb->planes[i].length, vb->planes[i].bytesused,
+					mbuf->vvb.flags, mbuf->vvb.vb2_buf.timestamp,
+					mbuf->smem[i].refcount, mbuf->flags);
 		}
 	}
 
diff --git a/msm/vidc/msm_vidc_debug.c b/msm/vidc/msm_vidc_debug.c
index 75b6d2e..aea6398 100644
--- a/msm/vidc/msm_vidc_debug.c
+++ b/msm/vidc/msm_vidc_debug.c
@@ -180,7 +180,7 @@
 		goto exit;
 	}
 	core->resources.msm_vidc_hw_rsp_timeout =
-	((msm_vidc_debug & 0xFF) > (VIDC_ERR | VIDC_HIGH)) ? 1500 : 1000;
+	((msm_vidc_debug & 0xFF) > (VIDC_ERR | VIDC_HIGH)) ? 2500 : 1000;
 	rc = count;
 	d_vpr_h("debug timeout updated to - %d\n",
 		core->resources.msm_vidc_hw_rsp_timeout);
@@ -520,7 +520,7 @@
 {
 	struct dentry *dentry = NULL;
 
-	if (!inst || !inst->debugfs_root)
+	if (!inst || IS_ERR_OR_NULL(inst->debugfs_root))
 		return;
 
 	dentry = inst->debugfs_root;
diff --git a/msm/vidc/msm_vidc_platform.c b/msm/vidc/msm_vidc_platform.c
index 90a63ec..b788cce 100644
--- a/msm/vidc/msm_vidc_platform.c
+++ b/msm/vidc/msm_vidc_platform.c
@@ -287,8 +287,8 @@
 	   unknown as well, which creates a problem of allowing client
 	   to set higher level than supported */
 	{CAP_H264_LEVEL, ENC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0,
-	                            V4L2_MPEG_VIDEO_H264_LEVEL_6_0, 1,
-	                            V4L2_MPEG_VIDEO_H264_LEVEL_6_0},
+	                            V4L2_MPEG_VIDEO_H264_LEVEL_5_2, 1,
+	                            V4L2_MPEG_VIDEO_H264_LEVEL_5_2},
 	{CAP_HEVC_LEVEL, ENC, HEVC, V4L2_MPEG_VIDEO_HEVC_LEVEL_1,
 	                            V4L2_MPEG_VIDEO_HEVC_LEVEL_6, 1,
 	                            V4L2_MPEG_VIDEO_HEVC_LEVEL_6},
@@ -389,8 +389,8 @@
 	   unknown as well, which creates a problem of allowing client
 	   to set higher level than supported */
 	{CAP_H264_LEVEL, ENC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0,
-	                            V4L2_MPEG_VIDEO_H264_LEVEL_6_0, 1,
-	                            V4L2_MPEG_VIDEO_H264_LEVEL_6_0},
+	                            V4L2_MPEG_VIDEO_H264_LEVEL_5_2, 1,
+	                            V4L2_MPEG_VIDEO_H264_LEVEL_5_2},
 	{CAP_HEVC_LEVEL, ENC, HEVC, V4L2_MPEG_VIDEO_HEVC_LEVEL_1,
 	                            V4L2_MPEG_VIDEO_HEVC_LEVEL_6, 1,
 	                            V4L2_MPEG_VIDEO_HEVC_LEVEL_6},
@@ -943,10 +943,11 @@
 	},
 	{
 		.key = "qcom,max-hw-load",
-		.value = 1958400,
+		.value = 3916800,
 		/**
-		 * ((3840x2176)/256)@60
+		 * supported is: ((3840x2176)/256)@60
 		 * UHD@30 decode + UHD@30 encode
+                 * mentioned value is as per UHD@120
 		 */
 	},
 	{
@@ -967,7 +968,7 @@
 	},
 	{
 		.key = "qcom,max-b-frame-mbs-per-sec",
-		.value = 244800,/* ((1920x1088)/256) MBs@30fps */
+		.value = 489600,/* ((1920x1088)/256) MBs@60fps */
 	},
 	{
 		.key = "qcom,max-mbpf",
@@ -1030,9 +1031,11 @@
 	},
 	{
 		.key = "qcom,max-hw-load",
-		.value = 1224000,
+		.value = 3916800,
 		/**
+		 * supported is:
 		 * UHD@30 decode + 1080@30 encode
+		 * mentioned is as per UHD@120
 		 */
 	},
 		{
diff --git a/msm/vidc/vidc_hfi_api.h b/msm/vidc/vidc_hfi_api.h
index 212b227..4f16a8f 100644
--- a/msm/vidc/vidc_hfi_api.h
+++ b/msm/vidc/vidc_hfi_api.h
@@ -728,7 +728,6 @@
 
 typedef void (*hfi_cmd_response_callback) (enum hal_command_response cmd,
 			void *data);
-typedef void (*msm_vidc_callback) (u32 response, void *callback);
 
 struct hfi_device *vidc_hfi_initialize(enum msm_vidc_hfi_type hfi_type,
 		u32 device_id, struct msm_vidc_platform_resources *res,
