linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] media: venus: add debugfs support
@ 2018-12-28  9:23 Malathi Gottam
  2018-12-28 11:32 ` kbuild test robot
  2018-12-29 17:22 ` kbuild test robot
  0 siblings, 2 replies; 5+ messages in thread
From: Malathi Gottam @ 2018-12-28  9:23 UTC (permalink / raw)
  To: stanimir.varbanov, hverkuil, mchehab
  Cc: linux-media, linux-kernel, linux-arm-msm, acourbot, vgarodia, mgottam

Enable logs in venus through debugfs to print
debug information.

Change-Id: I9b2a423829df9ee171f95f18bcb85646319086d0
Signed-off-by: Malathi Gottam <mgottam@codeaurora.org>
---
 drivers/media/platform/qcom/venus/core.c       |  62 ++++++++-
 drivers/media/platform/qcom/venus/core.h       |  32 +++++
 drivers/media/platform/qcom/venus/firmware.c   |   6 +-
 drivers/media/platform/qcom/venus/helpers.c    |  51 +++++--
 drivers/media/platform/qcom/venus/hfi.c        |  93 ++++++++++---
 drivers/media/platform/qcom/venus/hfi_cmds.c   |  33 +++--
 drivers/media/platform/qcom/venus/hfi_msgs.c   |   5 +
 drivers/media/platform/qcom/venus/vdec.c       | 185 +++++++++++++++++++------
 drivers/media/platform/qcom/venus/vdec_ctrls.c |   7 +-
 drivers/media/platform/qcom/venus/venc.c       | 139 +++++++++++++++----
 drivers/media/platform/qcom/venus/venc_ctrls.c |   9 +-
 11 files changed, 512 insertions(+), 110 deletions(-)

diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c
index cb411eb..abfc6c9 100644
--- a/drivers/media/platform/qcom/venus/core.c
+++ b/drivers/media/platform/qcom/venus/core.c
@@ -13,6 +13,7 @@
  *
  */
 #include <linux/clk.h>
+#include <linux/debugfs.h>
 #include <linux/init.h>
 #include <linux/ioctl.h>
 #include <linux/list.h>
@@ -31,6 +32,50 @@
 #include "venc.h"
 #include "firmware.h"
 
+struct dentry *debugfs_root;
+int venus_debug = ERR;
+EXPORT_SYMBOL_GPL(venus_debug);
+
+static struct dentry *venus_debugfs_init_drv(void)
+{
+	bool ok = false;
+	struct dentry *dir = NULL;
+
+	dir = debugfs_create_dir("venus", NULL);
+	if (IS_ERR_OR_NULL(dir)) {
+		dir = NULL;
+		pr_err("failed to create debug dir");
+		goto failed_create_dir;
+	}
+
+#define __debugfs_create(__type, __fname, __value) ({                          \
+	struct dentry *f = debugfs_create_##__type(__fname, 0644,	\
+		dir, __value);                                                \
+	if (IS_ERR_OR_NULL(f)) {                                              \
+		dprintk(ERR, "Failed creating debugfs file '%pd/%s'\n",  \
+			dir, __fname);                                         \
+		f = NULL;                                                     \
+	}                                                                     \
+	f;                                                                    \
+})
+
+	ok =
+	__debugfs_create(x32, "debug_level", &venus_debug);
+
+#undef __debugfs_create
+
+	if (!ok)
+		goto failed_create_dir;
+
+	return dir;
+
+failed_create_dir:
+	if (dir)
+		debugfs_remove_recursive(debugfs_root);
+
+	return NULL;
+}
+
 static void venus_event_notify(struct venus_core *core, u32 event)
 {
 	struct venus_inst *inst;
@@ -137,6 +182,7 @@ static int venus_clks_enable(struct venus_core *core)
 
 	return 0;
 err:
+	dprintk(ERR, "Failed to enable clk:%d\n", i);
 	while (i--)
 		clk_disable_unprepare(core->clks[i]);
 
@@ -236,6 +282,8 @@ static int venus_probe(struct platform_device *pdev)
 	struct resource *r;
 	int ret;
 
+	debugfs_root = venus_debugfs_init_drv();
+
 	core = devm_kzalloc(dev, sizeof(*core), GFP_KERNEL);
 	if (!core)
 		return -ENOMEM;
@@ -245,8 +293,10 @@ static int venus_probe(struct platform_device *pdev)
 
 	r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	core->base = devm_ioremap_resource(dev, r);
-	if (IS_ERR(core->base))
+	if (IS_ERR(core->base)) {
+		dprintk(ERR, "Failed to ioremap platform resources");
 		return PTR_ERR(core->base);
+		}
 
 	core->irq = platform_get_irq(pdev, 0);
 	if (core->irq < 0)
@@ -297,8 +347,10 @@ static int venus_probe(struct platform_device *pdev)
 		goto err_runtime_disable;
 
 	ret = venus_firmware_init(core);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to init video firmware\n");
 		goto err_runtime_disable;
+		}
 
 	ret = venus_boot(core);
 	if (ret)
@@ -321,8 +373,10 @@ static int venus_probe(struct platform_device *pdev)
 		goto err_venus_shutdown;
 
 	ret = v4l2_device_register(dev, &core->v4l2_dev);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to register v4l2 device\n");
 		goto err_core_deinit;
+		}
 
 	ret = pm_runtime_put_sync(dev);
 	if (ret)
@@ -366,6 +420,8 @@ static int venus_remove(struct platform_device *pdev)
 
 	v4l2_device_unregister(&core->v4l2_dev);
 
+	debugfs_remove_recursive(debugfs_root);
+
 	return ret;
 }
 
diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platform/qcom/venus/core.h
index 6382cea..c31d9e0 100644
--- a/drivers/media/platform/qcom/venus/core.h
+++ b/drivers/media/platform/qcom/venus/core.h
@@ -25,6 +25,38 @@
 
 #define VIDC_CLKS_NUM_MAX	4
 
+extern int venus_debug;
+enum venus_msg_prio {
+	ERR  = 0x0001,
+	WARN = 0x0002,
+	INFO = 0x0004,
+	DBG  = 0x0008,
+};
+
+static inline char *get_debug_level_str(int level)
+{
+	switch (level) {
+	case ERR:
+		return "err";
+	case WARN:
+		return "warn";
+	case INFO:
+		return "info";
+	case DBG:
+		return "dbg";
+	default:
+		return "???";
+	}
+}
+
+#define dprintk(dbg_lvl, fmt, arg...)				\
+	do {							\
+		if (venus_debug & dbg_lvl)				\
+			pr_info("venus:" fmt, \
+					get_debug_level_str(dbg_lvl),	\
+					## arg);	\
+	} while (0)
+
 struct freq_tbl {
 	unsigned int load;
 	unsigned long freq;
diff --git a/drivers/media/platform/qcom/venus/firmware.c b/drivers/media/platform/qcom/venus/firmware.c
index c29acfd..eaf5951 100644
--- a/drivers/media/platform/qcom/venus/firmware.c
+++ b/drivers/media/platform/qcom/venus/firmware.c
@@ -142,7 +142,8 @@ static int venus_boot_no_tz(struct venus_core *core, phys_addr_t mem_phys,
 		dev_err(dev, "could not map video firmware region\n");
 		return ret;
 	}
-
+	dprintk(DBG, "%s: Successfully mapped and performed test translation\n",
+		dev_name(dev));
 	venus_reset_cpu(core);
 
 	return 0;
@@ -258,7 +259,8 @@ int venus_firmware_init(struct venus_core *core)
 		dev_err(core->fw.dev, "could not attach device\n");
 		goto err_iommu_free;
 	}
-
+	dprintk(DBG, "Attached and created mapping for %s\n",
+		dev_name(core->fw.dev));
 	core->fw.iommu_domain = iommu_dom;
 
 	of_node_put(np);
diff --git a/drivers/media/platform/qcom/venus/helpers.c b/drivers/media/platform/qcom/venus/helpers.c
index e436385..9065b44 100644
--- a/drivers/media/platform/qcom/venus/helpers.c
+++ b/drivers/media/platform/qcom/venus/helpers.c
@@ -75,6 +75,7 @@ bool venus_helper_check_codec(struct venus_inst *inst, u32 v4l2_pixfmt)
 		codec = HFI_VIDEO_CODEC_HEVC;
 		break;
 	default:
+		dprintk(WARN, "Unknown format:%x\n", pixfmt);
 		return false;
 	}
 
@@ -102,8 +103,11 @@ static int venus_helper_queue_dpb_bufs(struct venus_inst *inst)
 		fdata.buffer_type = buf->type;
 
 		ret = hfi_session_process_buf(inst, &fdata);
-		if (ret)
+		if (ret) {
+			dprintk(ERR, "%s: Failed to queue dpb buf to hfi: %d\n",
+				__func__, ret);
 			goto fail;
+		}
 	}
 
 fail:
@@ -157,6 +161,7 @@ int venus_helper_alloc_dpb_bufs(struct venus_inst *inst)
 		return ret;
 
 	count = HFI_BUFREQ_COUNT_MIN(&bufreq, ver);
+	dprintk(DBG, "buf count min %d", count);
 
 	for (i = 0; i < count; i++) {
 		buf = kzalloc(sizeof(*buf), GFP_KERNEL);
@@ -174,6 +179,7 @@ int venus_helper_alloc_dpb_bufs(struct venus_inst *inst)
 		if (!buf->va) {
 			kfree(buf);
 			ret = -ENOMEM;
+			dprintk(ERR, "Failed to alloc dma attrs for dpbbufs\n");
 			goto fail;
 		}
 
@@ -208,6 +214,7 @@ static int intbufs_set_buffer(struct venus_inst *inst, u32 type)
 	for (i = 0; i < bufreq.count_actual; i++) {
 		buf = kzalloc(sizeof(*buf), GFP_KERNEL);
 		if (!buf) {
+			dprintk(ERR, "Out of memory\n");
 			ret = -ENOMEM;
 			goto fail;
 		}
@@ -220,6 +227,7 @@ static int intbufs_set_buffer(struct venus_inst *inst, u32 type)
 					  buf->attrs);
 		if (!buf->va) {
 			ret = -ENOMEM;
+			dprintk(ERR, "Failed to alloc dma attrs for intbufs\n");
 			goto fail;
 		}
 
@@ -228,6 +236,8 @@ static int intbufs_set_buffer(struct venus_inst *inst, u32 type)
 		bd.buffer_type = buf->type;
 		bd.num_buffers = 1;
 		bd.device_addr = buf->da;
+		dprintk(DBG, "Buffer address: %#x\n bufsize: %d, buf_type: %d",
+			bd.device_addr, bd.buffer_size, bd.buffer_type);
 
 		ret = hfi_session_set_buffers(inst, &bd);
 		if (ret) {
@@ -380,8 +390,11 @@ static int load_scale_clocks(struct venus_core *core)
 set_freq:
 
 	ret = clk_set_rate(clk, freq);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to set clock rate %lu clk: %d\n",
+			freq, ret);
 		goto err;
+	}
 
 	ret = clk_set_rate(core->core0_clk, freq);
 	if (ret)
@@ -459,8 +472,10 @@ static void return_buf_error(struct venus_inst *inst,
 	}
 
 	ret = hfi_session_process_buf(inst, &fdata);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "%s: Failed qbuf to hfi: %d\n", __func__, ret);
 		return ret;
+		}
 
 	return 0;
 }
@@ -544,11 +559,15 @@ int venus_helper_get_bufreq(struct venus_inst *inst, u32 type,
 		memset(req, 0, sizeof(*req));
 
 	ret = hfi_session_get_property(inst, ptype, &hprop);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed getting buffer requirements: %d", ret);
 		return ret;
+		}
 
 	ret = -EINVAL;
-
+	dprintk(DBG, "Buffer requirements from HW:\n");
+	dprintk(DBG, "%15s %8s %8s %8s\n",
+		"buffer type", "count", "mincount_fw", "size");
 	for (i = 0; i < HFI_BUFFER_TYPE_MAX; i++) {
 		if (hprop.bufreq[i].type != type)
 			continue;
@@ -556,6 +575,9 @@ int venus_helper_get_bufreq(struct venus_inst *inst, u32 type,
 		if (req)
 			memcpy(req, &hprop.bufreq[i], sizeof(*req));
 		ret = 0;
+		dprintk(DBG, "%8d %8d %8d %8d\n",
+			req->type, req->count_actual,
+			req->count_min, req->size);
 		break;
 	}
 
@@ -730,16 +752,24 @@ int venus_helper_set_num_bufs(struct venus_inst *inst, unsigned int input_bufs,
 	buf_count.count_actual = input_bufs;
 
 	ret = hfi_session_set_property(inst, ptype, &buf_count);
-	if (ret)
+	if (ret) {
+		dprintk(ERR,
+			"Failed to set actual buffer count %d for buffer type %d\n",
+			buf_count.count_actual, buf_count.type);
 		return ret;
 
 	buf_count.type = HFI_BUFFER_OUTPUT;
 	buf_count.count_actual = output_bufs;
 
 	ret = hfi_session_set_property(inst, ptype, &buf_count);
-	if (ret)
+	if (ret) {
+		dprintk(ERR,
+			"Failed to set actual buffer count %d for buffer type %d\n",
+			buf_count.count_actual, buf_count.type);
 		return ret;
-
+	}
+	dprintk(DBG, "output buf: num = %d, input buf = %d\n",
+		output_bufs, input_bufs);
 	if (output2_bufs) {
 		buf_count.type = HFI_BUFFER_OUTPUT2;
 		buf_count.count_actual = output2_bufs;
@@ -776,8 +806,11 @@ int venus_helper_set_color_format(struct venus_inst *inst, u32 pixfmt)
 		return -EINVAL;
 
 	hfi_format = to_hfi_raw_fmt(pixfmt);
-	if (!hfi_format)
+	if (!hfi_format) {
+		dprintk(ERR, "Using unsupported colorformat %#x\n",
+			pixfmt);
 		return -EINVAL;
+	}
 
 	return venus_helper_set_raw_format(inst, hfi_format, buftype);
 }
diff --git a/drivers/media/platform/qcom/venus/hfi.c b/drivers/media/platform/qcom/venus/hfi.c
index 2420782..80bfb47 100644
--- a/drivers/media/platform/qcom/venus/hfi.c
+++ b/drivers/media/platform/qcom/venus/hfi.c
@@ -52,6 +52,7 @@ static u32 to_codec_type(u32 pixfmt)
 	case V4L2_PIX_FMT_HEVC:
 		return HFI_VIDEO_CODEC_HEVC;
 	default:
+		dprintk(WARN, "Wrong codec: fmt %x\n", pixfmt);
 		return 0;
 	}
 }
@@ -62,8 +63,11 @@ int hfi_core_init(struct venus_core *core)
 
 	mutex_lock(&core->lock);
 
-	if (core->state >= CORE_INIT)
+	if (core->state >= CORE_INIT) {
+		dprintk(INFO, "Video core is already in state: %d\n",
+			core->state);
 		goto unlock;
+	}
 
 	reinit_completion(&core->done);
 
@@ -71,8 +75,11 @@ int hfi_core_init(struct venus_core *core)
 	if (ret)
 		goto unlock;
 
+	dprintk(DBG, "Waiting for HFI_MSG_SYS_INIT\n");
 	ret = wait_for_completion_timeout(&core->done, TIMEOUT);
 	if (!ret) {
+		dprintk(ERR, "%s: Wait interrupted or timed out\n",
+			__func__);
 		ret = -ETIMEDOUT;
 		goto unlock;
 	}
@@ -85,6 +92,7 @@ int hfi_core_init(struct venus_core *core)
 	}
 
 	core->state = CORE_INIT;
+	dprintk(DBG, "SYS_INIT_DONE!!!\n");
 unlock:
 	mutex_unlock(&core->lock);
 	return ret;
@@ -207,13 +215,21 @@ int hfi_session_init(struct venus_inst *inst, u32 pixfmt)
 	const struct hfi_ops *ops = core->ops;
 	int ret;
 
+	if (inst->state >= INST_INIT && inst->state < INST_STOP) {
+		dprintk(INFO, "inst: %pK is already in state: %d\n",
+			inst, inst->state);
+		return 0;
+		}
 	inst->hfi_codec = to_codec_type(pixfmt);
 	reinit_completion(&inst->done);
 
+	dprintk(DBG, "%s: inst %pK\n", __func__, inst);
 	ret = ops->session_init(inst, inst->session_type, inst->hfi_codec);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to init session, type = %d\n",
+			inst->session_type);
 		return ret;
-
+	}
 	ret = wait_session_msg(inst);
 	if (ret)
 		return ret;
@@ -241,17 +257,27 @@ int hfi_session_deinit(struct venus_inst *inst)
 	const struct hfi_ops *ops = inst->core->ops;
 	int ret;
 
-	if (inst->state == INST_UNINIT)
+	if (inst->state == INST_UNINIT) {
+		dprintk(INFO,
+			"inst: %pK is already in state: %d\n",
+		inst, inst->state);
 		return 0;
+	}
 
-	if (inst->state < INST_INIT)
+	if (inst->state < INST_INIT) {
+		dprintk(ERR, "%s: inst %pK is in invalid state\n",
+			__func__, inst);
 		return -EINVAL;
+	}
 
 	reinit_completion(&inst->done);
 
+	dprintk(DBG, "%s: inst %pK\n", __func__, inst);
 	ret = ops->session_end(inst);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to send close\n");
 		return ret;
+		}
 
 	ret = wait_session_msg(inst);
 	if (ret)
@@ -268,14 +294,20 @@ int hfi_session_start(struct venus_inst *inst)
 	const struct hfi_ops *ops = inst->core->ops;
 	int ret;
 
-	if (inst->state != INST_LOAD_RESOURCES)
+	if (inst->state != INST_LOAD_RESOURCES) {
+		dprintk(ERR,
+			"%s: inst %pK is in invalid state\n",
+			__func__, inst);
 		return -EINVAL;
+	}
 
 	reinit_completion(&inst->done);
 
 	ret = ops->session_start(inst);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to send start\n");
 		return ret;
+		}
 
 	ret = wait_session_msg(inst);
 	if (ret)
@@ -291,11 +323,16 @@ int hfi_session_stop(struct venus_inst *inst)
 	const struct hfi_ops *ops = inst->core->ops;
 	int ret;
 
-	if (inst->state != INST_START)
+	if (inst->state != INST_START) {
+		dprintk(ERR,
+			"%s: inst %pK is in invalid state\n",
+			__func__, inst);
 		return -EINVAL;
+	}
 
 	reinit_completion(&inst->done);
 
+	dprintk(DBG, "%s: inst %pK\n", __func__, inst);
 	ret = ops->session_stop(inst);
 	if (ret)
 		return ret;
@@ -328,12 +365,17 @@ int hfi_session_abort(struct venus_inst *inst)
 	reinit_completion(&inst->done);
 
 	ret = ops->session_abort(inst);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "session_abort failed ret: %d\n", ret);
 		return ret;
+	}
 
 	ret = wait_session_msg(inst);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "%s: inst %pK session %x abort timed out\n",
+			__func__, inst, inst->session_type);
 		return ret;
+	}
 
 	return 0;
 }
@@ -343,15 +385,21 @@ int hfi_session_load_res(struct venus_inst *inst)
 	const struct hfi_ops *ops = inst->core->ops;
 	int ret;
 
-	if (inst->state != INST_INIT)
+	if (inst->state != INST_INIT) {
+		dprintk(ERR,
+			"%s: inst %pK is in invalid state\n",
+			__func__, inst);
 		return -EINVAL;
+	}
 
 	reinit_completion(&inst->done);
 
+	dprintk(DBG, "%s: inst %pK\n", __func__, inst);
 	ret = ops->session_load_res(inst);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to send load resources\n");
 		return ret;
-
+	}
 	ret = wait_session_msg(inst);
 	if (ret)
 		return ret;
@@ -366,14 +414,21 @@ int hfi_session_unload_res(struct venus_inst *inst)
 	const struct hfi_ops *ops = inst->core->ops;
 	int ret;
 
-	if (inst->state != INST_STOP)
+	if (inst->state != INST_STOP) {
+		dprintk(ERR,
+			"%s: inst %pK is in invalid state\n",
+			__func__, inst);
 		return -EINVAL;
+		}
 
 	reinit_completion(&inst->done);
 
+	dprintk(DBG, "%s: inst %pK\n", __func__, inst);
 	ret = ops->session_release_res(inst);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to send release resources\n");
 		return ret;
+		}
 
 	ret = wait_session_msg(inst);
 	if (ret)
@@ -461,8 +516,10 @@ int hfi_session_set_property(struct venus_inst *inst, u32 ptype, void *pdata)
 {
 	const struct hfi_ops *ops = inst->core->ops;
 
-	if (inst->state < INST_INIT || inst->state >= INST_STOP)
+	if (inst->state < INST_INIT || inst->state >= INST_STOP) {
+		dprintk(ERR, "Not in proper state to set property\n");
 		return -EINVAL;
+		}
 
 	return ops->session_set_property(inst, ptype, pdata);
 }
@@ -478,6 +535,8 @@ int hfi_session_process_buf(struct venus_inst *inst, struct hfi_frame_data *fd)
 		 fd->buffer_type == HFI_BUFFER_OUTPUT2)
 		return ops->session_ftb(inst, fd);
 
+	dprintk(ERR, "%s: invalid qbuf type %d:\n", __func__,
+		fd->buffer_type);
 	return -EINVAL;
 }
 EXPORT_SYMBOL_GPL(hfi_session_process_buf);
diff --git a/drivers/media/platform/qcom/venus/hfi_cmds.c b/drivers/media/platform/qcom/venus/hfi_cmds.c
index 87a4414..3c451a7 100644
--- a/drivers/media/platform/qcom/venus/hfi_cmds.c
+++ b/drivers/media/platform/qcom/venus/hfi_cmds.c
@@ -16,6 +16,7 @@
 #include <linux/hash.h>
 
 #include "hfi_cmds.h"
+#include "core.h"
 
 static enum hfi_version hfi_ver;
 
@@ -161,8 +162,10 @@ void pkt_sys_image_version(struct hfi_sys_get_property_pkt *pkt)
 int pkt_session_init(struct hfi_session_init_pkt *pkt, void *cookie,
 		     u32 session_type, u32 codec)
 {
-	if (!pkt || !cookie || !codec)
+	if (!pkt || !cookie || !codec) {
+		dprintk(ERR, "%s invalid parameters\n", __func__);
 		return -EINVAL;
+		}
 
 	pkt->shdr.hdr.size = sizeof(*pkt);
 	pkt->shdr.hdr.pkt_type = HFI_CMD_SYS_SESSION_INIT;
@@ -185,8 +188,10 @@ int pkt_session_set_buffers(struct hfi_session_set_buffers_pkt *pkt,
 {
 	unsigned int i;
 
-	if (!cookie || !pkt || !bd)
+	if (!cookie || !pkt || !bd) {
+		dprintk(ERR, "%s - invalid params\n", __func__);
 		return -EINVAL;
+		}
 
 	pkt->shdr.hdr.pkt_type = HFI_CMD_SESSION_SET_BUFFERS;
 	pkt->shdr.session_id = hash32_ptr(cookie);
@@ -215,7 +220,8 @@ int pkt_session_set_buffers(struct hfi_session_set_buffers_pkt *pkt,
 	}
 
 	pkt->buffer_type = bd->buffer_type;
-
+	dprintk(DBG, "buftype:%d buffer addr: %x\n",
+		pkt->buffer_type, bd->device_addr);
 	return 0;
 }
 
@@ -263,9 +269,11 @@ int pkt_session_unset_buffers(struct hfi_session_release_buffer_pkt *pkt,
 int pkt_session_etb_decoder(struct hfi_session_empty_buffer_compressed_pkt *pkt,
 			    void *cookie, struct hfi_frame_data *in_frame)
 {
-	if (!cookie || !in_frame->device_addr)
+	if (!cookie || !in_frame->device_addr) {
+		dprintk(ERR, "%s: invalid params addr: %#x\n",
+			__func__, in_frame->device_addr);
 		return -EINVAL;
-
+	}
 	pkt->shdr.hdr.size = sizeof(*pkt);
 	pkt->shdr.hdr.pkt_type = HFI_CMD_SESSION_EMPTY_BUFFER;
 	pkt->shdr.session_id = hash32_ptr(cookie);
@@ -287,8 +295,11 @@ int pkt_session_etb_encoder(
 		struct hfi_session_empty_buffer_uncompressed_plane0_pkt *pkt,
 		void *cookie, struct hfi_frame_data *in_frame)
 {
-	if (!cookie || !in_frame->device_addr)
+	if (!cookie || !in_frame->device_addr) {
+		dprintk(ERR, "%s: invalid params addr: %#x\n",
+			__func__, in_frame->device_addr);
 		return -EINVAL;
+	}
 
 	pkt->shdr.hdr.size = sizeof(*pkt);
 	pkt->shdr.hdr.pkt_type = HFI_CMD_SESSION_EMPTY_BUFFER;
@@ -312,8 +323,11 @@ int pkt_session_etb_encoder(
 int pkt_session_ftb(struct hfi_session_fill_buffer_pkt *pkt, void *cookie,
 		    struct hfi_frame_data *out_frame)
 {
-	if (!cookie || !out_frame || !out_frame->device_addr)
+	if (!cookie || !out_frame || !out_frame->device_addr) {
+		dprintk(ERR, "%s: invalid params addr: %#x\n",
+			__func__, out_frame->device_addr);
 		return -EINVAL;
+	}
 
 	pkt->shdr.hdr.size = sizeof(*pkt);
 	pkt->shdr.hdr.pkt_type = HFI_CMD_SESSION_FILL_BUFFER;
@@ -339,8 +353,11 @@ int pkt_session_parse_seq_header(
 		struct hfi_session_parse_sequence_header_pkt *pkt,
 		void *cookie, u32 seq_hdr, u32 seq_hdr_len)
 {
-	if (!cookie || !seq_hdr || !seq_hdr_len)
+	if (!cookie || !seq_hdr || !seq_hdr_len) {
+		dprintk(ERR, "%s: invalid params hdr: %d, hdr_len:%d\n",
+			__func__, seq_hdr, seq_hdr_len);
 		return -EINVAL;
+	}
 
 	pkt->shdr.hdr.size = sizeof(*pkt);
 	pkt->shdr.hdr.pkt_type = HFI_CMD_SESSION_PARSE_SEQUENCE_HEADER;
diff --git a/drivers/media/platform/qcom/venus/hfi_msgs.c b/drivers/media/platform/qcom/venus/hfi_msgs.c
index 0ecdaa1..b6ea2f9 100644
--- a/drivers/media/platform/qcom/venus/hfi_msgs.c
+++ b/drivers/media/platform/qcom/venus/hfi_msgs.c
@@ -238,9 +238,14 @@ static void hfi_sys_init_done(struct venus_core *core, struct venus_inst *inst,
 	}
 
 	error = hfi_parser(core, inst, pkt->data, rem_bytes);
+	dprintk(DBG,
+		"supported_codecs[%d]: enc = %#x, dec = %#x\n",
+		core->codecs_count, core->enc_codecs,
+		core->dec_codecs);
 
 done:
 	core->error = error;
+	dprintk(INFO, "sys init ret: %d", core->error);
 	complete(&core->done);
 }
 
diff --git a/drivers/media/platform/qcom/venus/vdec.c b/drivers/media/platform/qcom/venus/vdec.c
index 282de21..7f65e10 100644
--- a/drivers/media/platform/qcom/venus/vdec.c
+++ b/drivers/media/platform/qcom/venus/vdec.c
@@ -97,9 +97,10 @@
 			break;
 	}
 
-	if (i == size || fmt[i].type != type)
+	if (i == size || fmt[i].type != type) {
+		dprintk(INFO, "Format not found\n");
 		return NULL;
-
+	}
 	if (type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE &&
 	    !venus_helper_check_codec(inst, fmt[i].pixfmt))
 		return NULL;
@@ -130,8 +131,10 @@
 			k++;
 	}
 
-	if (i == size)
+	if (i == size) {
+		dprintk(INFO, "Format not found by index\n");
 		return NULL;
+		}
 
 	return &fmt[i];
 }
@@ -236,6 +239,13 @@ static int vdec_g_fmt(struct file *file, void *fh, struct v4l2_format *f)
 
 	vdec_try_fmt_common(inst, f);
 
+	dprintk(DBG,
+		"g_fmt: %x : type %d wxh %dx%d pixelfmt %#x num_planes %d size[0] %d in_reconfig %d\n",
+		inst->session_type, f->type,
+		f->fmt.pix_mp.width, f->fmt.pix_mp.height,
+		f->fmt.pix_mp.pixelformat, f->fmt.pix_mp.num_planes,
+		f->fmt.pix_mp.plane_fmt[0].sizeimage, inst->reconfig);
+
 	return 0;
 }
 
@@ -292,7 +302,8 @@ static int vdec_s_fmt(struct file *file, void *fh, struct v4l2_format *f)
 		inst->fmt_out = fmt;
 	else if (f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)
 		inst->fmt_cap = fmt;
-
+	dprintk(INFO, "s_fmt: inst width: %d height: %d\n",
+		inst->width, inst->height);
 	return 0;
 }
 
@@ -372,8 +383,10 @@ static int vdec_s_parm(struct file *file, void *fh, struct v4l2_streamparm *a)
 	u64 us_per_frame, fps;
 
 	if (a->type != V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE &&
-	    a->type != V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
+	    a->type != V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
+		dprintk(ERR, "Unknown buffer type %d\n", a->type);
 		return -EINVAL;
+		}
 
 	memset(cap->reserved, 0, sizeof(cap->reserved));
 	if (!timeperframe->denominator)
@@ -386,8 +399,11 @@ static int vdec_s_parm(struct file *file, void *fh, struct v4l2_streamparm *a)
 	us_per_frame = timeperframe->numerator * (u64)USEC_PER_SEC;
 	do_div(us_per_frame, timeperframe->denominator);
 
-	if (!us_per_frame)
+	if (!us_per_frame) {
+		dprintk(ERR,
+			"Failed to scale clocks : time between frames is 0\n");
 		return -EINVAL;
+	}
 
 	fps = (u64)USEC_PER_SEC;
 	do_div(fps, us_per_frame);
@@ -395,6 +411,7 @@ static int vdec_s_parm(struct file *file, void *fh, struct v4l2_streamparm *a)
 	inst->fps = fps;
 	inst->timeperframe = *timeperframe;
 
+	dprintk(INFO, "dec: reported fps for %pK: %d\n", inst, inst->fps);
 	return 0;
 }
 
@@ -439,6 +456,7 @@ static int vdec_subscribe_event(struct v4l2_fh *fh,
 	case V4L2_EVENT_CTRL:
 		return v4l2_ctrl_subscribe_event(fh, sub);
 	default:
+		dprintk(ERR, "Failed to subscribe event\n");
 		return -EINVAL;
 	}
 }
@@ -452,6 +470,7 @@ static int vdec_subscribe_event(struct v4l2_fh *fh,
 			return -EINVAL;
 		break;
 	default:
+		dprintk(ERR, "Invalid decoder cmd\n");
 		return -EINVAL;
 	}
 
@@ -527,8 +546,10 @@ static int vdec_set_properties(struct venus_inst *inst)
 	if (ctr->post_loop_deb_mode) {
 		ptype = HFI_PROPERTY_CONFIG_VDEC_POST_LOOP_DEBLOCKER;
 		ret = hfi_session_set_property(inst, ptype, &en);
-		if (ret)
+		if (ret) {
+			dprintk(ERR, "Failed to set dec prop: 0x%x", ptype);
 			return ret;
+			}
 	}
 
 	return 0;
@@ -548,18 +569,24 @@ static int vdec_output_conf(struct venus_inst *inst)
 	int ret;
 
 	ret = venus_helper_set_work_mode(inst, VIDC_WORK_MODE_2);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to set workmode 2\n");
 		return ret;
+	}
 
 	ret = venus_helper_set_core_usage(inst, VIDC_CORE_ID_1);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to set core usage\n");
 		return ret;
+		}
 
 	if (core->res->hfi_version == HFI_VERSION_1XX) {
 		ptype = HFI_PROPERTY_PARAM_VDEC_CONTINUE_DATA_TRANSFER;
 		ret = hfi_session_set_property(inst, ptype, &en);
-		if (ret)
+		if (ret) {
+			dprintk(ERR, "Failed to set dec prop: 0x%x", ptype);
 			return ret;
+			}
 	}
 
 	/* Force searching UBWC formats for bigger then HD resolutions */
@@ -572,8 +599,10 @@ static int vdec_output_conf(struct venus_inst *inst)
 
 	ret = venus_helper_get_out_fmts(inst, inst->fmt_cap->pixfmt, &out_fmt,
 					&out2_fmt, ubwc);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to get outfmt:%x", inst->fmt_cap->pixfmt);
 		return ret;
+		}
 
 	inst->output_buf_size =
 			venus_helper_get_framesz_raw(out_fmt, width, height);
@@ -599,23 +628,34 @@ static int vdec_output_conf(struct venus_inst *inst)
 
 	ret = venus_helper_set_raw_format(inst, inst->opb_fmt,
 					  inst->opb_buftype);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to set raw fmt opb fmt:0x%x",
+			inst->opb_fmt);
 		return ret;
+	}
 
 	if (inst->dpb_fmt) {
 		ret = venus_helper_set_multistream(inst, false, true);
-		if (ret)
+		if (ret) {
+			dprintk(ERR, "Failed to set multistream");
 			return ret;
+		}
 
 		ret = venus_helper_set_raw_format(inst, inst->dpb_fmt,
 						  inst->dpb_buftype);
-		if (ret)
+		if (ret) {
+			dprintk(ERR, "Failed to set raw fmt dpb fmt:0x%x",
+				inst->dpb_fmt);
 			return ret;
-
+			}
 		ret = venus_helper_set_output_resolution(inst, width, height,
 							 HFI_BUFFER_OUTPUT2);
-		if (ret)
+		if (ret) {
+			dprintk(ERR,
+				"Failed to set o/p resolution width:%d, height:%d",
+				width, height);
 			return ret;
+		}
 	}
 
 	if (IS_V3(core) || IS_V4(core)) {
@@ -623,23 +663,32 @@ static int vdec_output_conf(struct venus_inst *inst)
 			ret = venus_helper_set_bufsize(inst,
 						       inst->output2_buf_size,
 						       HFI_BUFFER_OUTPUT2);
-			if (ret)
+			if (ret) {
+				dprintk(ERR,
+					"Failed to set bufsize: %d for o/p2",
+					inst->output2_buf_size);
 				return ret;
+			}
 		}
 
 		if (inst->output_buf_size) {
 			ret = venus_helper_set_bufsize(inst,
 						       inst->output_buf_size,
 						       HFI_BUFFER_OUTPUT);
-			if (ret)
+			if (ret) {
+				dprintk(ERR,
+					"Failed to set bufsize: %d for o/p",
+						inst->output_buf_size);
 				return ret;
+			}
 		}
 	}
 
 	ret = venus_helper_set_dyn_bufmode(inst);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to set dynamic buffer mode\n");
 		return ret;
-
+		}
 	return 0;
 }
 
@@ -648,17 +697,26 @@ static int vdec_init_session(struct venus_inst *inst)
 	int ret;
 
 	ret = hfi_session_init(inst, inst->fmt_out->pixfmt);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to init firmware session\n");
 		return ret;
+	}
 
 	ret = venus_helper_set_input_resolution(inst, inst->out_width,
 						inst->out_height);
-	if (ret)
+	if (ret) {
+		dprintk(ERR,
+			"Failed to set i/p resolution width:%d, height:%d",
+			inst->out_width, inst->out_height);
 		goto deinit;
+	}
 
 	ret = venus_helper_set_color_format(inst, inst->fmt_cap->pixfmt);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to set color format fmt:0x%x",
+			inst->fmt_cap->pixfmt);
 		goto deinit;
+		}
 
 	return 0;
 deinit:
@@ -676,18 +734,24 @@ static int vdec_num_buffers(struct venus_inst *inst, unsigned int *in_num,
 	*in_num = *out_num = 0;
 
 	ret = vdec_init_session(inst);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to init decoder session");
 		return ret;
+		}
 
 	ret = venus_helper_get_bufreq(inst, HFI_BUFFER_INPUT, &bufreq);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to get bufreq on i/p");
 		goto deinit;
+		}
 
 	*in_num = HFI_BUFREQ_COUNT_MIN(&bufreq, ver);
 
 	ret = venus_helper_get_bufreq(inst, HFI_BUFFER_OUTPUT, &bufreq);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to get bufreq on i/p");
 		goto deinit;
+	}
 
 	*out_num = HFI_BUFREQ_COUNT_MIN(&bufreq, ver);
 
@@ -728,8 +792,10 @@ static int vdec_queue_setup(struct vb2_queue *q,
 	}
 
 	ret = vdec_num_buffers(inst, &in_num, &out_num);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed : No buffer requirements\n");
 		return ret;
+		}
 
 	switch (q->type) {
 	case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE:
@@ -752,10 +818,14 @@ static int vdec_queue_setup(struct vb2_queue *q,
 		inst->num_output_bufs = *num_buffers;
 		break;
 	default:
+		dprintk(ERR, "Invalid q type = %d\n", q->type);
 		ret = -EINVAL;
 		break;
 	}
-
+	dprintk(DBG,
+		"%s: %d : type %d num_buffers %d num_planes %d sizes[0] %d\n",
+		__func__, inst->session_type, q->type, *num_buffers,
+		*num_planes, sizes[0]);
 	return ret;
 }
 
@@ -765,24 +835,45 @@ static int vdec_verify_conf(struct venus_inst *inst)
 	struct hfi_buffer_requirements bufreq;
 	int ret;
 
-	if (!inst->num_input_bufs || !inst->num_output_bufs)
+	if (!inst->num_input_bufs || !inst->num_output_bufs) {
+		dprintk(ERR, "Failed: insuffice bufs i/p_buf: %d o/p_buf: %d",
+			inst->num_input_bufs, inst->num_output_bufs);
 		return -EINVAL;
+		}
 
 	ret = venus_helper_get_bufreq(inst, HFI_BUFFER_OUTPUT, &bufreq);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to get bufreq o/p\n");
 		return ret;
-
+		}
+	dprintk(DBG, "Verifying Buffer: %d\n", bufreq.type);
 	if (inst->num_output_bufs < bufreq.count_actual ||
-	    inst->num_output_bufs < HFI_BUFREQ_COUNT_MIN(&bufreq, ver))
+	    inst->num_output_bufs < HFI_BUFREQ_COUNT_MIN(&bufreq, ver)) {
+		dprintk(ERR,
+			"Invalid data : Counts mismatch\n");
+		dprintk(ERR, "num of output bufs = %d ",
+			inst->num_output_bufs);
+		dprintk(ERR, "actual buf count = %d ",
+			bufreq.count_actual);
+		dprintk(ERR, "Min Actual Count = %d\n",
+			HFI_BUFREQ_COUNT_MIN(&bufreq, ver));
 		return -EINVAL;
-
+	}
+	dprintk(DBG, "Verifying Buffer: %d\n", bufreq.type);
 	ret = venus_helper_get_bufreq(inst, HFI_BUFFER_INPUT, &bufreq);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to get bufreq i/p\n");
 		return ret;
-
-	if (inst->num_input_bufs < HFI_BUFREQ_COUNT_MIN(&bufreq, ver))
+		}
+	if (inst->num_input_bufs < HFI_BUFREQ_COUNT_MIN(&bufreq, ver)) {
+		dprintk(ERR,
+			"Invalid data : Counts mismatch\n");
+		dprintk(ERR, "num of input bufs = %d ",
+			inst->num_input_bufs);
+		dprintk(ERR, "Min Actual Count = %d\n",
+			HFI_BUFREQ_COUNT_MIN(&bufreq, ver));
 		return -EINVAL;
-
+	}
 	return 0;
 }
 
@@ -791,6 +882,9 @@ static int vdec_start_streaming(struct vb2_queue *q, unsigned int count)
 	struct venus_inst *inst = vb2_get_drv_priv(q);
 	int ret;
 
+	dprintk(DBG, "Streamon called on: %d capability for inst: %pK\n",
+		q->type, inst);
+
 	mutex_lock(&inst->lock);
 
 	if (q->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
@@ -894,8 +988,12 @@ static void vdec_buf_done(struct venus_inst *inst, unsigned int buf_type,
 		if (vbuf->flags & V4L2_BUF_FLAG_LAST) {
 			const struct v4l2_event ev = { .type = V4L2_EVENT_EOS };
 
+			dprintk(DBG, "Received EOS buffer");
 			v4l2_event_queue_fh(&inst->fh, &ev);
 		}
+		dprintk(INFO,
+			"buf done: data_offset = %d; bytesused = %d; length = %d\n",
+			vb->planes[0].data_offset, vb->planes[0].length);
 	} else {
 		vbuf->sequence = inst->sequence_out++;
 	}
@@ -1021,8 +1119,10 @@ static int vdec_open(struct file *file)
 	int ret;
 
 	inst = kzalloc(sizeof(*inst), GFP_KERNEL);
-	if (!inst)
+	if (!inst) {
+		dprintk(ERR, "dec: Failed to create video instance");
 		return -ENOMEM;
+		}
 
 	INIT_LIST_HEAD(&inst->dpbbufs);
 	INIT_LIST_HEAD(&inst->registeredbufs);
@@ -1041,12 +1141,16 @@ static int vdec_open(struct file *file)
 		goto err_free_inst;
 
 	ret = vdec_ctrl_init(inst);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed control initialization\n");
 		goto err_put_sync;
+	}
 
 	ret = hfi_session_create(inst, &vdec_hfi_ops);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to create session\n");
 		goto err_ctrl_deinit;
+	}
 
 	vdec_inst_init(inst);
 
@@ -1232,6 +1336,7 @@ static __maybe_unused int vdec_runtime_resume(struct device *dev)
 err_unprepare_core0:
 	clk_disable_unprepare(core->core0_clk);
 err_power_disable:
+	dprintk(ERR, "Failed to enable core0 clk\n");
 	venus_helper_power_enable(core, VIDC_SESSION_TYPE_DEC, false);
 	return ret;
 }
diff --git a/drivers/media/platform/qcom/venus/vdec_ctrls.c b/drivers/media/platform/qcom/venus/vdec_ctrls.c
index f4604b0..bfc6904 100644
--- a/drivers/media/platform/qcom/venus/vdec_ctrls.c
+++ b/drivers/media/platform/qcom/venus/vdec_ctrls.c
@@ -91,8 +91,11 @@ int vdec_ctrl_init(struct venus_inst *inst)
 	int ret;
 
 	ret = v4l2_ctrl_handler_init(&inst->ctrl_handler, 7);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "CTRL ERR: Control handler init failed, %d\n",
+			inst->ctrl_handler.error);
 		return ret;
+	}
 
 	ctrl = v4l2_ctrl_new_std_menu(&inst->ctrl_handler, &vdec_ctrl_ops,
 		V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE,
@@ -147,6 +150,8 @@ int vdec_ctrl_init(struct venus_inst *inst)
 
 	ret = inst->ctrl_handler.error;
 	if (ret) {
+		dprintk(ERR, "Error adding ctrl to ctrl handle, %d\n",
+			inst->ctrl_handler.error);
 		v4l2_ctrl_handler_free(&inst->ctrl_handler);
 		return ret;
 	}
diff --git a/drivers/media/platform/qcom/venus/venc.c b/drivers/media/platform/qcom/venus/venc.c
index 32cff29..0151b01 100644
--- a/drivers/media/platform/qcom/venus/venc.c
+++ b/drivers/media/platform/qcom/venus/venc.c
@@ -79,9 +79,10 @@
 			break;
 	}
 
-	if (i == size || fmt[i].type != type)
+	if (i == size || fmt[i].type != type) {
+		dprintk(INFO, "Format not found\n");
 		return NULL;
-
+	}
 	if (type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE &&
 	    !venus_helper_check_codec(inst, fmt[i].pixfmt))
 		return NULL;
@@ -112,9 +113,10 @@
 			k++;
 	}
 
-	if (i == size)
+	if (i == size) {
+		dprintk(INFO, "Format not found by index\n");
 		return NULL;
-
+	}
 	return &fmt[i];
 }
 
@@ -289,8 +291,10 @@ static int venc_enum_fmt(struct file *file, void *fh, struct v4l2_fmtdesc *f)
 
 	memset(f->reserved, 0, sizeof(f->reserved));
 
-	if (!fmt)
+	if (!fmt) {
+		dprintk(DBG, "No more formats found\n");
 		return -EINVAL;
+	}
 
 	f->pixelformat = fmt->pixfmt;
 
@@ -367,8 +371,11 @@ static int venc_s_fmt(struct file *file, void *fh, struct v4l2_format *f)
 	orig_pixmp = *pixmp;
 
 	fmt = venc_try_fmt_common(inst, f);
-	if (!fmt)
+	if (!fmt) {
+		dprintk(ERR, "Format: %d not supported\n",
+			f->fmt.pix_mp.pixelformat);
 		return -EINVAL;
+	}
 
 	if (f->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
 		pixfmt_out = pixmp->pixelformat;
@@ -410,7 +417,8 @@ static int venc_s_fmt(struct file *file, void *fh, struct v4l2_format *f)
 		inst->fmt_out = fmt;
 	else if (f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)
 		inst->fmt_cap = fmt;
-
+	dprintk(INFO, "s_fmt: inst width: %d height: %d\n",
+		inst->width, inst->height);
 	return 0;
 }
 
@@ -443,6 +451,13 @@ static int venc_g_fmt(struct file *file, void *fh, struct v4l2_format *f)
 
 	venc_try_fmt_common(inst, f);
 
+	dprintk(DBG,
+		"g_fmt: %x : type %d wxh %dx%d pixelfmt %#x num_planes %d size[0] %d in_reconfig %d\n",
+		inst->session_type, f->type,
+		f->fmt.pix_mp.width, f->fmt.pix_mp.height,
+		f->fmt.pix_mp.pixelformat, f->fmt.pix_mp.num_planes,
+		f->fmt.pix_mp.plane_fmt[0].sizeimage, inst->reconfig);
+
 	return 0;
 }
 
@@ -504,8 +519,10 @@ static int venc_s_parm(struct file *file, void *fh, struct v4l2_streamparm *a)
 	u64 us_per_frame, fps;
 
 	if (a->type != V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE &&
-	    a->type != V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
+	    a->type != V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
+		dprintk(ERR, "Unknown buffer type %d\n", a->type);
 		return -EINVAL;
+	}
 
 	memset(out->reserved, 0, sizeof(out->reserved));
 
@@ -519,8 +536,11 @@ static int venc_s_parm(struct file *file, void *fh, struct v4l2_streamparm *a)
 	us_per_frame = timeperframe->numerator * (u64)USEC_PER_SEC;
 	do_div(us_per_frame, timeperframe->denominator);
 
-	if (!us_per_frame)
+	if (!us_per_frame) {
+		dprintk(ERR,
+			"Failed to scale clocks : time between frames is 0\n");
 		return -EINVAL;
+		}
 
 	fps = (u64)USEC_PER_SEC;
 	do_div(fps, us_per_frame);
@@ -528,6 +548,7 @@ static int venc_s_parm(struct file *file, void *fh, struct v4l2_streamparm *a)
 	inst->timeperframe = *timeperframe;
 	inst->fps = fps;
 
+	dprintk(INFO, "enc: reported fps for %pK: %d\n", inst, inst->fps);
 	return 0;
 }
 
@@ -657,20 +678,26 @@ static int venc_set_properties(struct venus_inst *inst)
 	int ret;
 
 	ret = venus_helper_set_work_mode(inst, VIDC_WORK_MODE_2);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to set workmode 2\n");
 		return ret;
+	}
 
 	ret = venus_helper_set_core_usage(inst, VIDC_CORE_ID_2);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to set core usage\n");
 		return ret;
+		}
 
 	ptype = HFI_PROPERTY_CONFIG_FRAME_RATE;
 	frate.buffer_type = HFI_BUFFER_OUTPUT;
 	frate.framerate = inst->fps * (1 << 16);
 
 	ret = hfi_session_set_property(inst, ptype, &frate);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to set core usage\n");
 		return ret;
+		}
 
 	if (inst->fmt_cap->pixfmt == V4L2_PIX_FMT_H264) {
 		struct hfi_h264_vui_timing_info info;
@@ -829,28 +856,41 @@ static int venc_init_session(struct venus_inst *inst)
 	int ret;
 
 	ret = hfi_session_init(inst, inst->fmt_cap->pixfmt);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to init firmware session\n");
 		return ret;
+	}
 
 	ret = venus_helper_set_input_resolution(inst, inst->width,
 						inst->height);
-	if (ret)
+	if (ret) {
+		dprintk(ERR,
+			"Failed to set i/p resolution width: %d, height: %d",
+			inst->width, inst->height);
 		goto deinit;
+	}
 
 	ret = venus_helper_set_output_resolution(inst, inst->width,
 						 inst->height,
 						 HFI_BUFFER_OUTPUT);
-	if (ret)
+	if (ret) {
+		dprintk(ERR,
+			"Failed to set o/p resolution width: %d, height: %d",
+			inst->width, inst->height);
 		goto deinit;
+	}
 
 	ret = venus_helper_set_color_format(inst, inst->fmt_out->pixfmt);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to set color format");
 		goto deinit;
+		}
 
 	ret = venc_set_properties(inst);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to set enc properties");
 		goto deinit;
-
+	}
 	return 0;
 deinit:
 	hfi_session_deinit(inst);
@@ -863,8 +903,10 @@ static int venc_out_num_buffers(struct venus_inst *inst, unsigned int *num)
 	int ret;
 
 	ret = venc_init_session(inst);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to init encoder session");
 		return ret;
+		}
 
 	ret = venus_helper_get_bufreq(inst, HFI_BUFFER_INPUT, &bufreq);
 
@@ -908,9 +950,12 @@ static int venc_queue_setup(struct vb2_queue *q,
 		*num_planes = inst->fmt_out->num_planes;
 
 		ret = venc_out_num_buffers(inst, &num);
-		if (ret)
+		if (ret) {
+			dprintk(ERR,
+				"Failed : No buffer requirements : %x\n",
+				HFI_BUFFER_INPUT);
 			break;
-
+		}
 		num = max(num, min);
 		*num_buffers = max(*num_buffers, num);
 		inst->num_input_bufs = *num_buffers;
@@ -930,10 +975,15 @@ static int venc_queue_setup(struct vb2_queue *q,
 		inst->output_buf_size = sizes[0];
 		break;
 	default:
+		dprintk(ERR, "Invalid q type = %d\n", q->type);
 		ret = -EINVAL;
 		break;
 	}
 
+	dprintk(DBG,
+		"queue_setup: %d : type %d num_buffers %d num_planes %d sizes[0] %d\n",
+		inst->session_type, q->type, *num_buffers,
+		*num_planes, sizes[0]);
 	return ret;
 }
 
@@ -943,25 +993,52 @@ static int venc_verify_conf(struct venus_inst *inst)
 	struct hfi_buffer_requirements bufreq;
 	int ret;
 
-	if (!inst->num_input_bufs || !inst->num_output_bufs)
+	if (!inst->num_input_bufs || !inst->num_output_bufs) {
+		dprintk(ERR,
+			"Failed with insufficient bufs i/p_buf: %d o/p_buf: %d",
+			inst->num_input_bufs, inst->num_output_bufs);
 		return -EINVAL;
+	}
 
 	ret = venus_helper_get_bufreq(inst, HFI_BUFFER_OUTPUT, &bufreq);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to get bufreq o/p\n");
 		return ret;
+		}
+	dprintk(DBG, "Verifying Buffer: %d\n", bufreq.type);
 
 	if (inst->num_output_bufs < bufreq.count_actual ||
-	    inst->num_output_bufs < HFI_BUFREQ_COUNT_MIN(&bufreq, ver))
+	    inst->num_output_bufs < HFI_BUFREQ_COUNT_MIN(&bufreq, ver)) {
+		dprintk(ERR,
+			"Invalid data : Counts mismatch\n");
+		dprintk(ERR, "num of output bufs = %d ",
+			inst->num_output_bufs);
+		dprintk(ERR, "actual buf count = %d ",
+			bufreq.count_actual);
+		dprintk(ERR, "Min Actual Count = %d\n",
+			HFI_BUFREQ_COUNT_MIN(&bufreq, ver));
 		return -EINVAL;
+		}
 
+	dprintk(DBG, "Verifying Buffer: %d\n", bufreq.type);
 	ret = venus_helper_get_bufreq(inst, HFI_BUFFER_INPUT, &bufreq);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to get bufreq i/p\n");
 		return ret;
+		}
 
 	if (inst->num_input_bufs < bufreq.count_actual ||
-	    inst->num_input_bufs < HFI_BUFREQ_COUNT_MIN(&bufreq, ver))
+	    inst->num_input_bufs < HFI_BUFREQ_COUNT_MIN(&bufreq, ver)) {
+		dprintk(ERR,
+			"Invalid data : Counts mismatch\n");
+		dprintk(ERR, "num of input bufs = %d ",
+			inst->num_output_bufs);
+		dprintk(ERR, "actual buf count = %d ",
+			bufreq.count_actual);
+		dprintk(ERR, "Min Actual Count = %d\n",
+			HFI_BUFREQ_COUNT_MIN(&bufreq, ver));
 		return -EINVAL;
-
+		}
 	return 0;
 }
 
@@ -972,6 +1049,9 @@ static int venc_start_streaming(struct vb2_queue *q, unsigned int count)
 
 	mutex_lock(&inst->lock);
 
+	dprintk(DBG, "Streamon called on: %d capability for inst: %pK\n",
+		q->type, inst);
+
 	if (q->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
 		inst->streamon_out = 1;
 	else
@@ -1148,8 +1228,10 @@ static int venc_open(struct file *file)
 	int ret;
 
 	inst = kzalloc(sizeof(*inst), GFP_KERNEL);
-	if (!inst)
+	if (!inst) {
+		dprintk(ERR, "enc: Failed to create video instance");
 		return -ENOMEM;
+	}
 
 	INIT_LIST_HEAD(&inst->dpbbufs);
 	INIT_LIST_HEAD(&inst->registeredbufs);
@@ -1358,6 +1440,7 @@ static __maybe_unused int venc_runtime_resume(struct device *dev)
 err_unprepare_core1:
 	clk_disable_unprepare(core->core1_clk);
 err_power_disable:
+	dprintk(ERR, "Failed to enable core1 clk");
 	venus_helper_power_enable(core, VIDC_SESSION_TYPE_ENC, false);
 	return ret;
 }
diff --git a/drivers/media/platform/qcom/venus/venc_ctrls.c b/drivers/media/platform/qcom/venus/venc_ctrls.c
index ac1e1d2..dbbec61 100644
--- a/drivers/media/platform/qcom/venus/venc_ctrls.c
+++ b/drivers/media/platform/qcom/venus/venc_ctrls.c
@@ -203,6 +203,7 @@ static int venc_op_s_ctrl(struct v4l2_ctrl *ctrl)
 		mutex_unlock(&inst->lock);
 		break;
 	default:
+		dprintk(ERR, "Unsupported ctrl: %x\n", ctrl->id);
 		return -EINVAL;
 	}
 
@@ -218,9 +219,11 @@ int venc_ctrl_init(struct venus_inst *inst)
 	int ret;
 
 	ret = v4l2_ctrl_handler_init(&inst->ctrl_handler, 28);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "CTRL ERR: Control handler init failed, %d\n",
+			inst->ctrl_handler.error);
 		return ret;
-
+	}
 	v4l2_ctrl_new_std_menu(&inst->ctrl_handler, &venc_ctrl_ops,
 		V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
 		V4L2_MPEG_VIDEO_BITRATE_MODE_CBR,
@@ -351,6 +354,8 @@ int venc_ctrl_init(struct venus_inst *inst)
 
 	return 0;
 err:
+	dprintk(ERR, "Error adding ctrl to ctrl handle, %d\n",
+		inst->ctrl_handler.error);
 	v4l2_ctrl_handler_free(&inst->ctrl_handler);
 	return ret;
 }
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] media: venus: add debugfs support
  2018-12-28  9:23 [PATCH v2] media: venus: add debugfs support Malathi Gottam
@ 2018-12-28 11:32 ` kbuild test robot
  2018-12-29 17:22 ` kbuild test robot
  1 sibling, 0 replies; 5+ messages in thread
From: kbuild test robot @ 2018-12-28 11:32 UTC (permalink / raw)
  To: Malathi Gottam
  Cc: kbuild-all, stanimir.varbanov, hverkuil, mchehab, linux-media,
	linux-kernel, linux-arm-msm, acourbot, vgarodia, mgottam

[-- Attachment #1: Type: text/plain, Size: 7221 bytes --]

Hi Malathi,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linuxtv-media/master]
[also build test WARNING on next-20181224]
[cannot apply to v4.20]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Malathi-Gottam/media-venus-add-debugfs-support/20181228-172634
base:   git://linuxtv.org/media_tree.git master
config: i386-allmodconfig (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All warnings (new ones prefixed by >>):

   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:14,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/core.c:15:
   drivers/media/platform/qcom/venus/core.c: In function 'venus_debugfs_init_drv':
>> include/linux/kern_levels.h:5:18: warning: format '%s' expects argument of type 'char *', but argument 3 has type 'struct dentry *' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH'
    #define KERN_INFO KERN_SOH "6" /* informational */
                      ^~~~~~~~
   include/linux/printk.h:315:9: note: in expansion of macro 'KERN_INFO'
     printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~
   drivers/media/platform/qcom/venus/core.h:55:4: note: in expansion of macro 'pr_info'
       pr_info("venus:" fmt, \
       ^~~~~~~
   drivers/media/platform/qcom/venus/core.c:55:3: note: in expansion of macro 'dprintk'
      dprintk(ERR, "Failed creating debugfs file '%pd/%s'\n",  \
      ^~~~~~~
   drivers/media/platform/qcom/venus/core.c:63:2: note: in expansion of macro '__debugfs_create'
     __debugfs_create(x32, "debug_level", &venus_debug);
     ^~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/core.c:55:52: note: format string is defined here
      dprintk(ERR, "Failed creating debugfs file '%pd/%s'\n",  \
                                                      ~^
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:14,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/core.c:15:
   include/linux/kern_levels.h:5:18: warning: too many arguments for format [-Wformat-extra-args]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH'
    #define KERN_INFO KERN_SOH "6" /* informational */
                      ^~~~~~~~
   include/linux/printk.h:315:9: note: in expansion of macro 'KERN_INFO'
     printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~
   drivers/media/platform/qcom/venus/core.h:55:4: note: in expansion of macro 'pr_info'
       pr_info("venus:" fmt, \
       ^~~~~~~
   drivers/media/platform/qcom/venus/core.c:55:3: note: in expansion of macro 'dprintk'
      dprintk(ERR, "Failed creating debugfs file '%pd/%s'\n",  \
      ^~~~~~~
   drivers/media/platform/qcom/venus/core.c:63:2: note: in expansion of macro '__debugfs_create'
     __debugfs_create(x32, "debug_level", &venus_debug);
     ^~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/core.c: In function 'venus_clks_enable':
   include/linux/kern_levels.h:5:18: warning: format '%d' expects argument of type 'int', but argument 2 has type 'char *' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH'
    #define KERN_INFO KERN_SOH "6" /* informational */
                      ^~~~~~~~
   include/linux/printk.h:315:9: note: in expansion of macro 'KERN_INFO'
     printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~
   drivers/media/platform/qcom/venus/core.h:55:4: note: in expansion of macro 'pr_info'
       pr_info("venus:" fmt, \
       ^~~~~~~
   drivers/media/platform/qcom/venus/core.c:185:2: note: in expansion of macro 'dprintk'
     dprintk(ERR, "Failed to enable clk:%d\n", i);
     ^~~~~~~
   drivers/media/platform/qcom/venus/core.c:185:38: note: format string is defined here
     dprintk(ERR, "Failed to enable clk:%d\n", i);
                                        ~^
                                        %s
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:14,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/core.c:15:
   include/linux/kern_levels.h:5:18: warning: too many arguments for format [-Wformat-extra-args]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH'
    #define KERN_INFO KERN_SOH "6" /* informational */
                      ^~~~~~~~
   include/linux/printk.h:315:9: note: in expansion of macro 'KERN_INFO'
     printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~
   drivers/media/platform/qcom/venus/core.h:55:4: note: in expansion of macro 'pr_info'
       pr_info("venus:" fmt, \
       ^~~~~~~
   drivers/media/platform/qcom/venus/core.c:185:2: note: in expansion of macro 'dprintk'
     dprintk(ERR, "Failed to enable clk:%d\n", i);
     ^~~~~~~
   drivers/media/platform/qcom/venus/core.c: In function 'venus_probe':
   include/linux/kern_levels.h:5:18: warning: too many arguments for format [-Wformat-extra-args]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH'
    #define KERN_INFO KERN_SOH "6" /* informational */
                      ^~~~~~~~
   include/linux/printk.h:315:9: note: in expansion of macro 'KERN_INFO'
     printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~
   drivers/media/platform/qcom/venus/core.h:55:4: note: in expansion of macro 'pr_info'
       pr_info("venus:" fmt, \
       ^~~~~~~
   drivers/media/platform/qcom/venus/core.c:297:3: note: in expansion of macro 'dprintk'
      dprintk(ERR, "Failed to ioremap platform resources");
      ^~~~~~~
   include/linux/kern_levels.h:5:18: warning: too many arguments for format [-Wformat-extra-args]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^

vim +5 include/linux/kern_levels.h

314ba352 Joe Perches 2012-07-30  4  
04d2c8c8 Joe Perches 2012-07-30 @5  #define KERN_SOH	"\001"		/* ASCII Start Of Header */
04d2c8c8 Joe Perches 2012-07-30  6  #define KERN_SOH_ASCII	'\001'
04d2c8c8 Joe Perches 2012-07-30  7  

:::::: The code at line 5 was first introduced by commit
:::::: 04d2c8c83d0e3ac5f78aeede51babb3236200112 printk: convert the format for KERN_<LEVEL> to a 2 byte pattern

:::::: TO: Joe Perches <joe@perches.com>
:::::: CC: Linus Torvalds <torvalds@linux-foundation.org>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 66007 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] media: venus: add debugfs support
  2018-12-28  9:23 [PATCH v2] media: venus: add debugfs support Malathi Gottam
  2018-12-28 11:32 ` kbuild test robot
@ 2018-12-29 17:22 ` kbuild test robot
  1 sibling, 0 replies; 5+ messages in thread
From: kbuild test robot @ 2018-12-29 17:22 UTC (permalink / raw)
  To: Malathi Gottam
  Cc: kbuild-all, stanimir.varbanov, hverkuil, mchehab, linux-media,
	linux-kernel, linux-arm-msm, acourbot, vgarodia, mgottam

[-- Attachment #1: Type: text/plain, Size: 39774 bytes --]

Hi Malathi,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linuxtv-media/master]
[also build test ERROR on next-20181224]
[cannot apply to v4.20]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Malathi-Gottam/media-venus-add-debugfs-support/20181228-172634
base:   git://linuxtv.org/media_tree.git master
config: microblaze-allyesconfig (attached as .config)
compiler: microblaze-linux-gcc (GCC) 8.1.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=8.1.0 make.cross ARCH=microblaze 

All errors (new ones prefixed by >>):

   In file included from include/linux/kernel.h:14,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
   drivers/media/platform/qcom/venus/helpers.c: In function 'venus_helper_check_codec':
>> drivers/media/platform/qcom/venus/helpers.c:78:40: error: 'pixfmt' undeclared (first use in this function); did you mean 'pr_fmt'?
      dprintk(WARN, "Unknown format:%x\n", pixfmt);
                                           ^~~~~~
   include/linux/printk.h:315:34: note: in definition of macro 'pr_info'
     printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
                                     ^~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:78:3: note: in expansion of macro 'dprintk'
      dprintk(WARN, "Unknown format:%x\n", pixfmt);
      ^~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:78:40: note: each undeclared identifier is reported only once for each function it appears in
      dprintk(WARN, "Unknown format:%x\n", pixfmt);
                                           ^~~~~~
   include/linux/printk.h:315:34: note: in definition of macro 'pr_info'
     printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
                                     ^~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:78:3: note: in expansion of macro 'dprintk'
      dprintk(WARN, "Unknown format:%x\n", pixfmt);
      ^~~~~~~
   In file included from include/linux/printk.h:7,
                    from include/linux/kernel.h:14,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
   drivers/media/platform/qcom/venus/helpers.c: In function 'venus_helper_queue_dpb_bufs':
   include/linux/kern_levels.h:5:18: warning: format '%d' expects argument of type 'int', but argument 3 has type 'const char *' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^~~~~~
   include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH'
    #define KERN_INFO KERN_SOH "6" /* informational */
                      ^~~~~~~~
   include/linux/printk.h:315:9: note: in expansion of macro 'KERN_INFO'
     printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~
   drivers/media/platform/qcom/venus/core.h:55:4: note: in expansion of macro 'pr_info'
       pr_info("venus:" fmt, \
       ^~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:107:4: note: in expansion of macro 'dprintk'
       dprintk(ERR, "%s: Failed to queue dpb buf to hfi: %d\n",
       ^~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:107:55: note: format string is defined here
       dprintk(ERR, "%s: Failed to queue dpb buf to hfi: %d\n",
                                                         ~^
                                                         %s
   In file included from include/linux/printk.h:7,
                    from include/linux/kernel.h:14,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
   include/linux/kern_levels.h:5:18: warning: too many arguments for format [-Wformat-extra-args]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^~~~~~
   include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH'
    #define KERN_INFO KERN_SOH "6" /* informational */
                      ^~~~~~~~
   include/linux/printk.h:315:9: note: in expansion of macro 'KERN_INFO'
     printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~
   drivers/media/platform/qcom/venus/core.h:55:4: note: in expansion of macro 'pr_info'
       pr_info("venus:" fmt, \
       ^~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:107:4: note: in expansion of macro 'dprintk'
       dprintk(ERR, "%s: Failed to queue dpb buf to hfi: %d\n",
       ^~~~~~~
   drivers/media/platform/qcom/venus/helpers.c: In function 'venus_helper_alloc_dpb_bufs':
   include/linux/kern_levels.h:5:18: warning: format '%d' expects argument of type 'int', but argument 2 has type 'char *' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^~~~~~
   include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH'
    #define KERN_INFO KERN_SOH "6" /* informational */
                      ^~~~~~~~
   include/linux/printk.h:315:9: note: in expansion of macro 'KERN_INFO'
     printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~
   drivers/media/platform/qcom/venus/core.h:55:4: note: in expansion of macro 'pr_info'
       pr_info("venus:" fmt, \
       ^~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:164:2: note: in expansion of macro 'dprintk'
     dprintk(DBG, "buf count min %d", count);
     ^~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:164:31: note: format string is defined here
     dprintk(DBG, "buf count min %d", count);
                                 ~^
                                 %s
   In file included from include/linux/printk.h:7,
                    from include/linux/kernel.h:14,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
   include/linux/kern_levels.h:5:18: warning: too many arguments for format [-Wformat-extra-args]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^~~~~~
   include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH'
    #define KERN_INFO KERN_SOH "6" /* informational */
                      ^~~~~~~~
   include/linux/printk.h:315:9: note: in expansion of macro 'KERN_INFO'
     printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~
   drivers/media/platform/qcom/venus/core.h:55:4: note: in expansion of macro 'pr_info'
       pr_info("venus:" fmt, \
       ^~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:164:2: note: in expansion of macro 'dprintk'
     dprintk(DBG, "buf count min %d", count);
     ^~~~~~~
   include/linux/kern_levels.h:5:18: warning: too many arguments for format [-Wformat-extra-args]
--
     printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~
   drivers/media/platform/qcom/venus/core.h:55:4: note: in expansion of macro 'pr_info'
       pr_info("venus:" fmt, \
       ^~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:756:3: note: in expansion of macro 'dprintk'
      dprintk(ERR,
      ^~~~~~~
   include/linux/kern_levels.h:5:18: warning: format '%d' expects argument of type 'int', but argument 2 has type 'char *' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^~~~~~
   include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH'
    #define KERN_INFO KERN_SOH "6" /* informational */
                      ^~~~~~~~
   include/linux/printk.h:315:9: note: in expansion of macro 'KERN_INFO'
     printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~
   drivers/media/platform/qcom/venus/core.h:55:4: note: in expansion of macro 'pr_info'
       pr_info("venus:" fmt, \
       ^~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:766:3: note: in expansion of macro 'dprintk'
      dprintk(ERR,
      ^~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:767:40: note: format string is defined here
       "Failed to set actual buffer count %d for buffer type %d\n",
                                          ~^
                                          %s
   In file included from include/linux/printk.h:7,
                    from include/linux/kernel.h:14,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
   include/linux/kern_levels.h:5:18: warning: too many arguments for format [-Wformat-extra-args]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^~~~~~
   include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH'
    #define KERN_INFO KERN_SOH "6" /* informational */
                      ^~~~~~~~
   include/linux/printk.h:315:9: note: in expansion of macro 'KERN_INFO'
     printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~
   drivers/media/platform/qcom/venus/core.h:55:4: note: in expansion of macro 'pr_info'
       pr_info("venus:" fmt, \
       ^~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:766:3: note: in expansion of macro 'dprintk'
      dprintk(ERR,
      ^~~~~~~
   include/linux/kern_levels.h:5:18: warning: format '%d' expects argument of type 'int', but argument 2 has type 'char *' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^~~~~~
   include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH'
    #define KERN_INFO KERN_SOH "6" /* informational */
                      ^~~~~~~~
   include/linux/printk.h:315:9: note: in expansion of macro 'KERN_INFO'
     printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~
   drivers/media/platform/qcom/venus/core.h:55:4: note: in expansion of macro 'pr_info'
       pr_info("venus:" fmt, \
       ^~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:771:2: note: in expansion of macro 'dprintk'
     dprintk(DBG, "output buf: num = %d, input buf = %d\n",
     ^~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:771:35: note: format string is defined here
     dprintk(DBG, "output buf: num = %d, input buf = %d\n",
                                     ~^
                                     %s
   In file included from include/linux/printk.h:7,
                    from include/linux/kernel.h:14,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
   include/linux/kern_levels.h:5:18: warning: too many arguments for format [-Wformat-extra-args]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^~~~~~
   include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH'
    #define KERN_INFO KERN_SOH "6" /* informational */
                      ^~~~~~~~
   include/linux/printk.h:315:9: note: in expansion of macro 'KERN_INFO'
     printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~
   drivers/media/platform/qcom/venus/core.h:55:4: note: in expansion of macro 'pr_info'
       pr_info("venus:" fmt, \
       ^~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:771:2: note: in expansion of macro 'dprintk'
     dprintk(DBG, "output buf: num = %d, input buf = %d\n",
     ^~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/kernel.h:7,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
   include/linux/export.h:79:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     extern typeof(sym) sym;      \
     ^~~~~~
   include/linux/export.h:120:25: note: in expansion of macro '___EXPORT_SYMBOL'
    #define __EXPORT_SYMBOL ___EXPORT_SYMBOL
                            ^~~~~~~~~~~~~~~~
   include/linux/export.h:127:2: note: in expansion of macro '__EXPORT_SYMBOL'
     __EXPORT_SYMBOL(sym, "_gpl")
     ^~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:782:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(venus_helper_set_num_bufs);
    ^~~~~~~~~~~~~~~~~
>> drivers/media/platform/qcom/venus/helpers.c:795:19: error: non-static declaration of 'venus_helper_set_raw_format' follows static declaration
    EXPORT_SYMBOL_GPL(venus_helper_set_raw_format);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   drivers/media/platform/qcom/venus/helpers.c:795:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(venus_helper_set_raw_format);
    ^~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:784:5: note: previous definition of 'venus_helper_set_raw_format' was here
    int venus_helper_set_raw_format(struct venus_inst *inst, u32 hfi_format,
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/printk.h:7,
                    from include/linux/kernel.h:14,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
   drivers/media/platform/qcom/venus/helpers.c: In function 'venus_helper_set_color_format':
   include/linux/kern_levels.h:5:18: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'char *' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^~~~~~
   include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH'
    #define KERN_INFO KERN_SOH "6" /* informational */
                      ^~~~~~~~
   include/linux/printk.h:315:9: note: in expansion of macro 'KERN_INFO'
     printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~
   drivers/media/platform/qcom/venus/core.h:55:4: note: in expansion of macro 'pr_info'
       pr_info("venus:" fmt, \
       ^~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:810:3: note: in expansion of macro 'dprintk'
      dprintk(ERR, "Using unsupported colorformat %#x\n",
      ^~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:810:49: note: format string is defined here
      dprintk(ERR, "Using unsupported colorformat %#x\n",
                                                  ~~^
                                                  %#s
   In file included from include/linux/printk.h:7,
                    from include/linux/kernel.h:14,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
   include/linux/kern_levels.h:5:18: warning: too many arguments for format [-Wformat-extra-args]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^~~~~~
   include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH'
    #define KERN_INFO KERN_SOH "6" /* informational */
                      ^~~~~~~~
   include/linux/printk.h:315:9: note: in expansion of macro 'KERN_INFO'
     printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~
   drivers/media/platform/qcom/venus/core.h:55:4: note: in expansion of macro 'pr_info'
       pr_info("venus:" fmt, \
       ^~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:810:3: note: in expansion of macro 'dprintk'
      dprintk(ERR, "Using unsupported colorformat %#x\n",
      ^~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/kernel.h:7,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
   drivers/media/platform/qcom/venus/helpers.c: In function 'venus_helper_set_num_bufs':
>> drivers/media/platform/qcom/venus/helpers.c:817:19: error: non-static declaration of 'venus_helper_set_color_format' follows static declaration
    EXPORT_SYMBOL_GPL(venus_helper_set_color_format);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   drivers/media/platform/qcom/venus/helpers.c:817:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(venus_helper_set_color_format);
    ^~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:797:5: note: previous definition of 'venus_helper_set_color_format' was here
    int venus_helper_set_color_format(struct venus_inst *inst, u32 pixfmt)
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/kernel.h:7,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
   drivers/media/platform/qcom/venus/helpers.c:838:19: error: non-static declaration of 'venus_helper_set_multistream' follows static declaration
    EXPORT_SYMBOL_GPL(venus_helper_set_multistream);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   drivers/media/platform/qcom/venus/helpers.c:838:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(venus_helper_set_multistream);
    ^~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:819:5: note: previous definition of 'venus_helper_set_multistream' was here
    int venus_helper_set_multistream(struct venus_inst *inst, bool out_en,
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/kernel.h:7,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
   drivers/media/platform/qcom/venus/helpers.c:860:19: error: non-static declaration of 'venus_helper_set_dyn_bufmode' follows static declaration
    EXPORT_SYMBOL_GPL(venus_helper_set_dyn_bufmode);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   drivers/media/platform/qcom/venus/helpers.c:860:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(venus_helper_set_dyn_bufmode);
    ^~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:840:5: note: previous definition of 'venus_helper_set_dyn_bufmode' was here
    int venus_helper_set_dyn_bufmode(struct venus_inst *inst)
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/kernel.h:7,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
>> drivers/media/platform/qcom/venus/helpers.c:872:19: error: non-static declaration of 'venus_helper_set_bufsize' follows static declaration
    EXPORT_SYMBOL_GPL(venus_helper_set_bufsize);
                      ^~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   drivers/media/platform/qcom/venus/helpers.c:872:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(venus_helper_set_bufsize);
    ^~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:862:5: note: previous definition of 'venus_helper_set_bufsize' was here
    int venus_helper_set_bufsize(struct venus_inst *inst, u32 bufsize, u32 buftype)
        ^~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/kernel.h:7,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
>> drivers/media/platform/qcom/venus/helpers.c:887:19: error: non-static declaration of 'venus_helper_get_opb_size' follows static declaration
    EXPORT_SYMBOL_GPL(venus_helper_get_opb_size);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   drivers/media/platform/qcom/venus/helpers.c:887:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(venus_helper_get_opb_size);
    ^~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:874:14: note: previous definition of 'venus_helper_get_opb_size' was here
    unsigned int venus_helper_get_opb_size(struct venus_inst *inst)
                 ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:889:13: error: invalid storage class for function 'delayed_process_buf_func'
    static void delayed_process_buf_func(struct work_struct *work)
                ^~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/kernel.h:7,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
   drivers/media/platform/qcom/venus/helpers.c:928:19: error: non-static declaration of 'venus_helper_release_buf_ref' follows static declaration
    EXPORT_SYMBOL_GPL(venus_helper_release_buf_ref);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   drivers/media/platform/qcom/venus/helpers.c:928:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(venus_helper_release_buf_ref);
    ^~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:916:6: note: previous definition of 'venus_helper_release_buf_ref' was here
    void venus_helper_release_buf_ref(struct venus_inst *inst, unsigned int idx)
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/kernel.h:7,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
   drivers/media/platform/qcom/venus/helpers.c:936:19: error: non-static declaration of 'venus_helper_acquire_buf_ref' follows static declaration
    EXPORT_SYMBOL_GPL(venus_helper_acquire_buf_ref);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   drivers/media/platform/qcom/venus/helpers.c:936:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(venus_helper_acquire_buf_ref);
    ^~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:930:6: note: previous definition of 'venus_helper_acquire_buf_ref' was here
    void venus_helper_acquire_buf_ref(struct vb2_v4l2_buffer *vbuf)
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:938:12: error: invalid storage class for function 'is_buf_refed'
    static int is_buf_refed(struct venus_inst *inst, struct vb2_v4l2_buffer *vbuf)
               ^~~~~~~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/kernel.h:7,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
>> drivers/media/platform/qcom/venus/helpers.c:961:19: error: non-static declaration of 'venus_helper_find_buf' follows static declaration
    EXPORT_SYMBOL_GPL(venus_helper_find_buf);
                      ^~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   drivers/media/platform/qcom/venus/helpers.c:961:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(venus_helper_find_buf);
    ^~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:952:1: note: previous definition of 'venus_helper_find_buf' was here
    venus_helper_find_buf(struct venus_inst *inst, unsigned int type, u32 idx)
    ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/kernel.h:7,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
   drivers/media/platform/qcom/venus/helpers.c:982:19: error: non-static declaration of 'venus_helper_vb2_buf_init' follows static declaration
    EXPORT_SYMBOL_GPL(venus_helper_vb2_buf_init);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   drivers/media/platform/qcom/venus/helpers.c:982:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(venus_helper_vb2_buf_init);
    ^~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:963:5: note: previous definition of 'venus_helper_vb2_buf_init' was here
    int venus_helper_vb2_buf_init(struct vb2_buffer *vb)
        ^~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/kernel.h:7,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
>> drivers/media/platform/qcom/venus/helpers.c:998:19: error: non-static declaration of 'venus_helper_vb2_buf_prepare' follows static declaration
    EXPORT_SYMBOL_GPL(venus_helper_vb2_buf_prepare);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   drivers/media/platform/qcom/venus/helpers.c:998:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(venus_helper_vb2_buf_prepare);
    ^~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:984:5: note: previous definition of 'venus_helper_vb2_buf_prepare' was here
    int venus_helper_vb2_buf_prepare(struct vb2_buffer *vb)
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/kernel.h:7,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
   drivers/media/platform/qcom/venus/helpers.c:1025:19: error: non-static declaration of 'venus_helper_vb2_buf_queue' follows static declaration
    EXPORT_SYMBOL_GPL(venus_helper_vb2_buf_queue);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   drivers/media/platform/qcom/venus/helpers.c:1025:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(venus_helper_vb2_buf_queue);
    ^~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:1000:6: note: previous definition of 'venus_helper_vb2_buf_queue' was here
    void venus_helper_vb2_buf_queue(struct vb2_buffer *vb)
         ^~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/kernel.h:7,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
>> drivers/media/platform/qcom/venus/helpers.c:1037:19: error: non-static declaration of 'venus_helper_buffers_done' follows static declaration
    EXPORT_SYMBOL_GPL(venus_helper_buffers_done);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   drivers/media/platform/qcom/venus/helpers.c:1037:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(venus_helper_buffers_done);
    ^~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:1027:6: note: previous definition of 'venus_helper_buffers_done' was here
    void venus_helper_buffers_done(struct venus_inst *inst,
         ^~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/kernel.h:7,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
   drivers/media/platform/qcom/venus/helpers.c:1075:19: error: non-static declaration of 'venus_helper_vb2_stop_streaming' follows static declaration
    EXPORT_SYMBOL_GPL(venus_helper_vb2_stop_streaming);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   drivers/media/platform/qcom/venus/helpers.c:1075:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(venus_helper_vb2_stop_streaming);
    ^~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:1039:6: note: previous definition of 'venus_helper_vb2_stop_streaming' was here
    void venus_helper_vb2_stop_streaming(struct vb2_queue *q)
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/kernel.h:7,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
>> drivers/media/platform/qcom/venus/helpers.c:1116:19: error: non-static declaration of 'venus_helper_vb2_start_streaming' follows static declaration
    EXPORT_SYMBOL_GPL(venus_helper_vb2_start_streaming);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   drivers/media/platform/qcom/venus/helpers.c:1116:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(venus_helper_vb2_start_streaming);
    ^~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:1077:5: note: previous definition of 'venus_helper_vb2_start_streaming' was here
    int venus_helper_vb2_start_streaming(struct venus_inst *inst)
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/kernel.h:7,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
>> drivers/media/platform/qcom/venus/helpers.c:1141:19: error: non-static declaration of 'venus_helper_m2m_device_run' follows static declaration
    EXPORT_SYMBOL_GPL(venus_helper_m2m_device_run);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   drivers/media/platform/qcom/venus/helpers.c:1141:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(venus_helper_m2m_device_run);
    ^~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:1118:6: note: previous definition of 'venus_helper_m2m_device_run' was here
    void venus_helper_m2m_device_run(void *priv)
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/kernel.h:7,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
>> drivers/media/platform/qcom/venus/helpers.c:1149:19: error: non-static declaration of 'venus_helper_m2m_job_abort' follows static declaration
    EXPORT_SYMBOL_GPL(venus_helper_m2m_job_abort);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   drivers/media/platform/qcom/venus/helpers.c:1149:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(venus_helper_m2m_job_abort);
    ^~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:1143:6: note: previous definition of 'venus_helper_m2m_job_abort' was here
    void venus_helper_m2m_job_abort(void *priv)
         ^~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/kernel.h:7,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
   drivers/media/platform/qcom/venus/helpers.c:1159:19: error: non-static declaration of 'venus_helper_init_instance' follows static declaration
    EXPORT_SYMBOL_GPL(venus_helper_init_instance);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   drivers/media/platform/qcom/venus/helpers.c:1159:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(venus_helper_init_instance);
    ^~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:1151:6: note: previous definition of 'venus_helper_init_instance' was here
    void venus_helper_init_instance(struct venus_inst *inst)
         ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:1161:13: error: invalid storage class for function 'find_fmt_from_caps'
    static bool find_fmt_from_caps(struct venus_caps *caps, u32 buftype, u32 fmt)
                ^~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/kernel.h:7,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
>> drivers/media/platform/qcom/venus/helpers.c:1220:19: error: non-static declaration of 'venus_helper_get_out_fmts' follows static declaration
    EXPORT_SYMBOL_GPL(venus_helper_get_out_fmts);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   drivers/media/platform/qcom/venus/helpers.c:1220:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(venus_helper_get_out_fmts);
    ^~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:1174:5: note: previous definition of 'venus_helper_get_out_fmts' was here
    int venus_helper_get_out_fmts(struct venus_inst *inst, u32 v4l2_fmt,
        ^~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/kernel.h:7,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
>> drivers/media/platform/qcom/venus/helpers.c:1269:19: error: non-static declaration of 'venus_helper_power_enable' follows static declaration
    EXPORT_SYMBOL_GPL(venus_helper_power_enable);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:79:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   drivers/media/platform/qcom/venus/helpers.c:1269:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(venus_helper_power_enable);
    ^~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:1222:5: note: previous definition of 'venus_helper_power_enable' was here
    int venus_helper_power_enable(struct venus_core *core, u32 session_type,
        ^~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/kernel.h:7,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/qcom/venus/helpers.c:15:
>> include/linux/export.h:67:22: error: expected declaration or statement at end of input
     static const struct kernel_symbol __ksymtab_##sym  \
                         ^~~~~~~~~~~~~
   include/linux/export.h:84:2: note: in expansion of macro '__KSYMTAB_ENTRY'
     __KSYMTAB_ENTRY(sym, sec)
     ^~~~~~~~~~~~~~~
   include/linux/export.h:120:25: note: in expansion of macro '___EXPORT_SYMBOL'
    #define __EXPORT_SYMBOL ___EXPORT_SYMBOL
                            ^~~~~~~~~~~~~~~~
   include/linux/export.h:127:2: note: in expansion of macro '__EXPORT_SYMBOL'
     __EXPORT_SYMBOL(sym, "_gpl")
     ^~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:1269:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(venus_helper_power_enable);
    ^~~~~~~~~~~~~~~~~
   include/linux/export.h:67:22: warning: control reaches end of non-void function [-Wreturn-type]
     static const struct kernel_symbol __ksymtab_##sym  \
                         ^~~~~~~~~~~~~
   include/linux/export.h:84:2: note: in expansion of macro '__KSYMTAB_ENTRY'
     __KSYMTAB_ENTRY(sym, sec)
     ^~~~~~~~~~~~~~~
   include/linux/export.h:120:25: note: in expansion of macro '___EXPORT_SYMBOL'
    #define __EXPORT_SYMBOL ___EXPORT_SYMBOL
                            ^~~~~~~~~~~~~~~~
   include/linux/export.h:127:2: note: in expansion of macro '__EXPORT_SYMBOL'
     __EXPORT_SYMBOL(sym, "_gpl")
     ^~~~~~~~~~~~~~~
   drivers/media/platform/qcom/venus/helpers.c:1269:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(venus_helper_power_enable);
    ^~~~~~~~~~~~~~~~~
..

vim +78 drivers/media/platform/qcom/venus/helpers.c

  > 15	#include <linux/clk.h>
    16	#include <linux/iopoll.h>
    17	#include <linux/list.h>
    18	#include <linux/mutex.h>
    19	#include <linux/pm_runtime.h>
    20	#include <linux/slab.h>
    21	#include <media/videobuf2-dma-sg.h>
    22	#include <media/v4l2-mem2mem.h>
    23	#include <asm/div64.h>
    24	
    25	#include "core.h"
    26	#include "helpers.h"
    27	#include "hfi_helper.h"
    28	#include "hfi_venus_io.h"
    29	
    30	struct intbuf {
    31		struct list_head list;
    32		u32 type;
    33		size_t size;
    34		void *va;
    35		dma_addr_t da;
    36		unsigned long attrs;
    37	};
    38	
    39	bool venus_helper_check_codec(struct venus_inst *inst, u32 v4l2_pixfmt)
    40	{
    41		struct venus_core *core = inst->core;
    42		u32 session_type = inst->session_type;
    43		u32 codec;
    44	
    45		switch (v4l2_pixfmt) {
    46		case V4L2_PIX_FMT_H264:
    47			codec = HFI_VIDEO_CODEC_H264;
    48			break;
    49		case V4L2_PIX_FMT_H263:
    50			codec = HFI_VIDEO_CODEC_H263;
    51			break;
    52		case V4L2_PIX_FMT_MPEG1:
    53			codec = HFI_VIDEO_CODEC_MPEG1;
    54			break;
    55		case V4L2_PIX_FMT_MPEG2:
    56			codec = HFI_VIDEO_CODEC_MPEG2;
    57			break;
    58		case V4L2_PIX_FMT_MPEG4:
    59			codec = HFI_VIDEO_CODEC_MPEG4;
    60			break;
    61		case V4L2_PIX_FMT_VC1_ANNEX_G:
    62		case V4L2_PIX_FMT_VC1_ANNEX_L:
    63			codec = HFI_VIDEO_CODEC_VC1;
    64			break;
    65		case V4L2_PIX_FMT_VP8:
    66			codec = HFI_VIDEO_CODEC_VP8;
    67			break;
    68		case V4L2_PIX_FMT_VP9:
    69			codec = HFI_VIDEO_CODEC_VP9;
    70			break;
    71		case V4L2_PIX_FMT_XVID:
    72			codec = HFI_VIDEO_CODEC_DIVX;
    73			break;
    74		case V4L2_PIX_FMT_HEVC:
    75			codec = HFI_VIDEO_CODEC_HEVC;
    76			break;
    77		default:
  > 78			dprintk(WARN, "Unknown format:%x\n", pixfmt);
    79			return false;
    80		}
    81	
    82		if (session_type == VIDC_SESSION_TYPE_ENC && core->enc_codecs & codec)
    83			return true;
    84	
    85		if (session_type == VIDC_SESSION_TYPE_DEC && core->dec_codecs & codec)
    86			return true;
    87	
    88		return false;
    89	}
    90	EXPORT_SYMBOL_GPL(venus_helper_check_codec);
    91	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 55360 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] media: venus: add debugfs support
  2019-01-07 14:29 Malathi Gottam
@ 2019-01-07 16:55 ` Al Viro
  0 siblings, 0 replies; 5+ messages in thread
From: Al Viro @ 2019-01-07 16:55 UTC (permalink / raw)
  To: Malathi Gottam
  Cc: stanimir.varbanov, hverkuil, mchehab, linux-media, linux-kernel,
	linux-arm-msm, acourbot, vgarodia

On Mon, Jan 07, 2019 at 07:59:00PM +0530, Malathi Gottam wrote:

> +static struct dentry *venus_debugfs_init_drv(void)
> +{
> +	bool ok = false;
> +	struct dentry *dir = NULL;
> +
> +	dir = debugfs_create_dir("venus", NULL);
> +	if (IS_ERR_OR_NULL(dir)) {
> +		dir = NULL;
> +		pr_err("failed to create debug dir");
> +		goto failed_create_dir;
> +	}

Huh?  When does debugfs_create_dir() return ERR_PTR()?

Any interface that mixes returning NULL for error-reporting with returning
ERR_PTR(...) for the same needs to be put out of its misery.  As it happens,
debugfs_create_dir() returns NULL on all errors.  And if you've meant the
above as "future-proofing"... don't do that, please.  That only breeds
confusion down the road, as the code gets cut'n'pasted around.

> -	if (ret)
> +	if (ret) {
> +		dprintk(ERR,
> +			"Failed to set actual buffer count %d for buffer type %d\n",
> +			buf_count.count_actual, buf_count.type);
>  		return ret;
>  
>  	buf_count.type = HFI_BUFFER_OUTPUT;
>  	buf_count.count_actual = output_bufs;
>  

*blink*
Does that even compile?

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2] media: venus: add debugfs support
@ 2019-01-07 14:29 Malathi Gottam
  2019-01-07 16:55 ` Al Viro
  0 siblings, 1 reply; 5+ messages in thread
From: Malathi Gottam @ 2019-01-07 14:29 UTC (permalink / raw)
  To: stanimir.varbanov, hverkuil, mchehab
  Cc: linux-media, linux-kernel, linux-arm-msm, acourbot, vgarodia, mgottam

Enable logs in venus through debugfs to print
debug information.

Signed-off-by: Malathi Gottam <mgottam@codeaurora.org>
---
 drivers/media/platform/qcom/venus/core.c       |  62 ++++++++-
 drivers/media/platform/qcom/venus/core.h       |  32 +++++
 drivers/media/platform/qcom/venus/firmware.c   |   6 +-
 drivers/media/platform/qcom/venus/helpers.c    |  51 +++++--
 drivers/media/platform/qcom/venus/hfi.c        |  93 ++++++++++---
 drivers/media/platform/qcom/venus/hfi_cmds.c   |  33 +++--
 drivers/media/platform/qcom/venus/hfi_msgs.c   |   5 +
 drivers/media/platform/qcom/venus/vdec.c       | 185 +++++++++++++++++++------
 drivers/media/platform/qcom/venus/vdec_ctrls.c |   7 +-
 drivers/media/platform/qcom/venus/venc.c       | 139 +++++++++++++++----
 drivers/media/platform/qcom/venus/venc_ctrls.c |   9 +-
 11 files changed, 512 insertions(+), 110 deletions(-)

diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c
index cb411eb..abfc6c9 100644
--- a/drivers/media/platform/qcom/venus/core.c
+++ b/drivers/media/platform/qcom/venus/core.c
@@ -13,6 +13,7 @@
  *
  */
 #include <linux/clk.h>
+#include <linux/debugfs.h>
 #include <linux/init.h>
 #include <linux/ioctl.h>
 #include <linux/list.h>
@@ -31,6 +32,50 @@
 #include "venc.h"
 #include "firmware.h"
 
+struct dentry *debugfs_root;
+int venus_debug = ERR;
+EXPORT_SYMBOL_GPL(venus_debug);
+
+static struct dentry *venus_debugfs_init_drv(void)
+{
+	bool ok = false;
+	struct dentry *dir = NULL;
+
+	dir = debugfs_create_dir("venus", NULL);
+	if (IS_ERR_OR_NULL(dir)) {
+		dir = NULL;
+		pr_err("failed to create debug dir");
+		goto failed_create_dir;
+	}
+
+#define __debugfs_create(__type, __fname, __value) ({                          \
+	struct dentry *f = debugfs_create_##__type(__fname, 0644,	\
+		dir, __value);                                                \
+	if (IS_ERR_OR_NULL(f)) {                                              \
+		dprintk(ERR, "Failed creating debugfs file '%pd/%s'\n",  \
+			dir, __fname);                                         \
+		f = NULL;                                                     \
+	}                                                                     \
+	f;                                                                    \
+})
+
+	ok =
+	__debugfs_create(x32, "debug_level", &venus_debug);
+
+#undef __debugfs_create
+
+	if (!ok)
+		goto failed_create_dir;
+
+	return dir;
+
+failed_create_dir:
+	if (dir)
+		debugfs_remove_recursive(debugfs_root);
+
+	return NULL;
+}
+
 static void venus_event_notify(struct venus_core *core, u32 event)
 {
 	struct venus_inst *inst;
@@ -137,6 +182,7 @@ static int venus_clks_enable(struct venus_core *core)
 
 	return 0;
 err:
+	dprintk(ERR, "Failed to enable clk:%d\n", i);
 	while (i--)
 		clk_disable_unprepare(core->clks[i]);
 
@@ -236,6 +282,8 @@ static int venus_probe(struct platform_device *pdev)
 	struct resource *r;
 	int ret;
 
+	debugfs_root = venus_debugfs_init_drv();
+
 	core = devm_kzalloc(dev, sizeof(*core), GFP_KERNEL);
 	if (!core)
 		return -ENOMEM;
@@ -245,8 +293,10 @@ static int venus_probe(struct platform_device *pdev)
 
 	r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	core->base = devm_ioremap_resource(dev, r);
-	if (IS_ERR(core->base))
+	if (IS_ERR(core->base)) {
+		dprintk(ERR, "Failed to ioremap platform resources");
 		return PTR_ERR(core->base);
+		}
 
 	core->irq = platform_get_irq(pdev, 0);
 	if (core->irq < 0)
@@ -297,8 +347,10 @@ static int venus_probe(struct platform_device *pdev)
 		goto err_runtime_disable;
 
 	ret = venus_firmware_init(core);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to init video firmware\n");
 		goto err_runtime_disable;
+		}
 
 	ret = venus_boot(core);
 	if (ret)
@@ -321,8 +373,10 @@ static int venus_probe(struct platform_device *pdev)
 		goto err_venus_shutdown;
 
 	ret = v4l2_device_register(dev, &core->v4l2_dev);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to register v4l2 device\n");
 		goto err_core_deinit;
+		}
 
 	ret = pm_runtime_put_sync(dev);
 	if (ret)
@@ -366,6 +420,8 @@ static int venus_remove(struct platform_device *pdev)
 
 	v4l2_device_unregister(&core->v4l2_dev);
 
+	debugfs_remove_recursive(debugfs_root);
+
 	return ret;
 }
 
diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platform/qcom/venus/core.h
index 6382cea..c31d9e0 100644
--- a/drivers/media/platform/qcom/venus/core.h
+++ b/drivers/media/platform/qcom/venus/core.h
@@ -25,6 +25,38 @@
 
 #define VIDC_CLKS_NUM_MAX	4
 
+extern int venus_debug;
+enum venus_msg_prio {
+	ERR  = 0x0001,
+	WARN = 0x0002,
+	INFO = 0x0004,
+	DBG  = 0x0008,
+};
+
+static inline char *get_debug_level_str(int level)
+{
+	switch (level) {
+	case ERR:
+		return "err";
+	case WARN:
+		return "warn";
+	case INFO:
+		return "info";
+	case DBG:
+		return "dbg";
+	default:
+		return "???";
+	}
+}
+
+#define dprintk(dbg_lvl, fmt, arg...)				\
+	do {							\
+		if (venus_debug & dbg_lvl)				\
+			pr_info("venus:" fmt, \
+					get_debug_level_str(dbg_lvl),	\
+					## arg);	\
+	} while (0)
+
 struct freq_tbl {
 	unsigned int load;
 	unsigned long freq;
diff --git a/drivers/media/platform/qcom/venus/firmware.c b/drivers/media/platform/qcom/venus/firmware.c
index c29acfd..eaf5951 100644
--- a/drivers/media/platform/qcom/venus/firmware.c
+++ b/drivers/media/platform/qcom/venus/firmware.c
@@ -142,7 +142,8 @@ static int venus_boot_no_tz(struct venus_core *core, phys_addr_t mem_phys,
 		dev_err(dev, "could not map video firmware region\n");
 		return ret;
 	}
-
+	dprintk(DBG, "%s: Successfully mapped and performed test translation\n",
+		dev_name(dev));
 	venus_reset_cpu(core);
 
 	return 0;
@@ -258,7 +259,8 @@ int venus_firmware_init(struct venus_core *core)
 		dev_err(core->fw.dev, "could not attach device\n");
 		goto err_iommu_free;
 	}
-
+	dprintk(DBG, "Attached and created mapping for %s\n",
+		dev_name(core->fw.dev));
 	core->fw.iommu_domain = iommu_dom;
 
 	of_node_put(np);
diff --git a/drivers/media/platform/qcom/venus/helpers.c b/drivers/media/platform/qcom/venus/helpers.c
index e436385..18eb3b2 100644
--- a/drivers/media/platform/qcom/venus/helpers.c
+++ b/drivers/media/platform/qcom/venus/helpers.c
@@ -75,6 +75,7 @@ bool venus_helper_check_codec(struct venus_inst *inst, u32 v4l2_pixfmt)
 		codec = HFI_VIDEO_CODEC_HEVC;
 		break;
 	default:
+		dprintk(WARN, "Unknown format:%x\n", v4l2_pixfmt);
 		return false;
 	}
 
@@ -102,8 +103,11 @@ static int venus_helper_queue_dpb_bufs(struct venus_inst *inst)
 		fdata.buffer_type = buf->type;
 
 		ret = hfi_session_process_buf(inst, &fdata);
-		if (ret)
+		if (ret) {
+			dprintk(ERR, "%s: Failed to queue dpb buf to hfi: %d\n",
+				__func__, ret);
 			goto fail;
+		}
 	}
 
 fail:
@@ -157,6 +161,7 @@ int venus_helper_alloc_dpb_bufs(struct venus_inst *inst)
 		return ret;
 
 	count = HFI_BUFREQ_COUNT_MIN(&bufreq, ver);
+	dprintk(DBG, "buf count min %d", count);
 
 	for (i = 0; i < count; i++) {
 		buf = kzalloc(sizeof(*buf), GFP_KERNEL);
@@ -174,6 +179,7 @@ int venus_helper_alloc_dpb_bufs(struct venus_inst *inst)
 		if (!buf->va) {
 			kfree(buf);
 			ret = -ENOMEM;
+			dprintk(ERR, "Failed to alloc dma attrs for dpbbufs\n");
 			goto fail;
 		}
 
@@ -208,6 +214,7 @@ static int intbufs_set_buffer(struct venus_inst *inst, u32 type)
 	for (i = 0; i < bufreq.count_actual; i++) {
 		buf = kzalloc(sizeof(*buf), GFP_KERNEL);
 		if (!buf) {
+			dprintk(ERR, "Out of memory\n");
 			ret = -ENOMEM;
 			goto fail;
 		}
@@ -220,6 +227,7 @@ static int intbufs_set_buffer(struct venus_inst *inst, u32 type)
 					  buf->attrs);
 		if (!buf->va) {
 			ret = -ENOMEM;
+			dprintk(ERR, "Failed to alloc dma attrs for intbufs\n");
 			goto fail;
 		}
 
@@ -228,6 +236,8 @@ static int intbufs_set_buffer(struct venus_inst *inst, u32 type)
 		bd.buffer_type = buf->type;
 		bd.num_buffers = 1;
 		bd.device_addr = buf->da;
+		dprintk(DBG, "Buffer address: %#x\n bufsize: %d, buf_type: %d",
+			bd.device_addr, bd.buffer_size, bd.buffer_type);
 
 		ret = hfi_session_set_buffers(inst, &bd);
 		if (ret) {
@@ -380,8 +390,11 @@ static int load_scale_clocks(struct venus_core *core)
 set_freq:
 
 	ret = clk_set_rate(clk, freq);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to set clock rate %lu clk: %d\n",
+			freq, ret);
 		goto err;
+	}
 
 	ret = clk_set_rate(core->core0_clk, freq);
 	if (ret)
@@ -459,8 +472,10 @@ static void return_buf_error(struct venus_inst *inst,
 	}
 
 	ret = hfi_session_process_buf(inst, &fdata);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "%s: Failed qbuf to hfi: %d\n", __func__, ret);
 		return ret;
+		}
 
 	return 0;
 }
@@ -544,11 +559,15 @@ int venus_helper_get_bufreq(struct venus_inst *inst, u32 type,
 		memset(req, 0, sizeof(*req));
 
 	ret = hfi_session_get_property(inst, ptype, &hprop);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed getting buffer requirements: %d", ret);
 		return ret;
+		}
 
 	ret = -EINVAL;
-
+	dprintk(DBG, "Buffer requirements from HW:\n");
+	dprintk(DBG, "%15s %8s %8s %8s\n",
+		"buffer type", "count", "mincount_fw", "size");
 	for (i = 0; i < HFI_BUFFER_TYPE_MAX; i++) {
 		if (hprop.bufreq[i].type != type)
 			continue;
@@ -556,6 +575,9 @@ int venus_helper_get_bufreq(struct venus_inst *inst, u32 type,
 		if (req)
 			memcpy(req, &hprop.bufreq[i], sizeof(*req));
 		ret = 0;
+		dprintk(DBG, "%8d %8d %8d %8d\n",
+			req->type, req->count_actual,
+			req->count_min, req->size);
 		break;
 	}
 
@@ -730,16 +752,24 @@ int venus_helper_set_num_bufs(struct venus_inst *inst, unsigned int input_bufs,
 	buf_count.count_actual = input_bufs;
 
 	ret = hfi_session_set_property(inst, ptype, &buf_count);
-	if (ret)
+	if (ret) {
+		dprintk(ERR,
+			"Failed to set actual buffer count %d for buffer type %d\n",
+			buf_count.count_actual, buf_count.type);
 		return ret;
 
 	buf_count.type = HFI_BUFFER_OUTPUT;
 	buf_count.count_actual = output_bufs;
 
 	ret = hfi_session_set_property(inst, ptype, &buf_count);
-	if (ret)
+	if (ret) {
+		dprintk(ERR,
+			"Failed to set actual buffer count %d for buffer type %d\n",
+			buf_count.count_actual, buf_count.type);
 		return ret;
-
+	}
+	dprintk(DBG, "output buf: num = %d, input buf = %d\n",
+		output_bufs, input_bufs);
 	if (output2_bufs) {
 		buf_count.type = HFI_BUFFER_OUTPUT2;
 		buf_count.count_actual = output2_bufs;
@@ -776,8 +806,11 @@ int venus_helper_set_color_format(struct venus_inst *inst, u32 pixfmt)
 		return -EINVAL;
 
 	hfi_format = to_hfi_raw_fmt(pixfmt);
-	if (!hfi_format)
+	if (!hfi_format) {
+		dprintk(ERR, "Using unsupported colorformat %#x\n",
+			pixfmt);
 		return -EINVAL;
+	}
 
 	return venus_helper_set_raw_format(inst, hfi_format, buftype);
 }
diff --git a/drivers/media/platform/qcom/venus/hfi.c b/drivers/media/platform/qcom/venus/hfi.c
index 2420782..80bfb47 100644
--- a/drivers/media/platform/qcom/venus/hfi.c
+++ b/drivers/media/platform/qcom/venus/hfi.c
@@ -52,6 +52,7 @@ static u32 to_codec_type(u32 pixfmt)
 	case V4L2_PIX_FMT_HEVC:
 		return HFI_VIDEO_CODEC_HEVC;
 	default:
+		dprintk(WARN, "Wrong codec: fmt %x\n", pixfmt);
 		return 0;
 	}
 }
@@ -62,8 +63,11 @@ int hfi_core_init(struct venus_core *core)
 
 	mutex_lock(&core->lock);
 
-	if (core->state >= CORE_INIT)
+	if (core->state >= CORE_INIT) {
+		dprintk(INFO, "Video core is already in state: %d\n",
+			core->state);
 		goto unlock;
+	}
 
 	reinit_completion(&core->done);
 
@@ -71,8 +75,11 @@ int hfi_core_init(struct venus_core *core)
 	if (ret)
 		goto unlock;
 
+	dprintk(DBG, "Waiting for HFI_MSG_SYS_INIT\n");
 	ret = wait_for_completion_timeout(&core->done, TIMEOUT);
 	if (!ret) {
+		dprintk(ERR, "%s: Wait interrupted or timed out\n",
+			__func__);
 		ret = -ETIMEDOUT;
 		goto unlock;
 	}
@@ -85,6 +92,7 @@ int hfi_core_init(struct venus_core *core)
 	}
 
 	core->state = CORE_INIT;
+	dprintk(DBG, "SYS_INIT_DONE!!!\n");
 unlock:
 	mutex_unlock(&core->lock);
 	return ret;
@@ -207,13 +215,21 @@ int hfi_session_init(struct venus_inst *inst, u32 pixfmt)
 	const struct hfi_ops *ops = core->ops;
 	int ret;
 
+	if (inst->state >= INST_INIT && inst->state < INST_STOP) {
+		dprintk(INFO, "inst: %pK is already in state: %d\n",
+			inst, inst->state);
+		return 0;
+		}
 	inst->hfi_codec = to_codec_type(pixfmt);
 	reinit_completion(&inst->done);
 
+	dprintk(DBG, "%s: inst %pK\n", __func__, inst);
 	ret = ops->session_init(inst, inst->session_type, inst->hfi_codec);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to init session, type = %d\n",
+			inst->session_type);
 		return ret;
-
+	}
 	ret = wait_session_msg(inst);
 	if (ret)
 		return ret;
@@ -241,17 +257,27 @@ int hfi_session_deinit(struct venus_inst *inst)
 	const struct hfi_ops *ops = inst->core->ops;
 	int ret;
 
-	if (inst->state == INST_UNINIT)
+	if (inst->state == INST_UNINIT) {
+		dprintk(INFO,
+			"inst: %pK is already in state: %d\n",
+		inst, inst->state);
 		return 0;
+	}
 
-	if (inst->state < INST_INIT)
+	if (inst->state < INST_INIT) {
+		dprintk(ERR, "%s: inst %pK is in invalid state\n",
+			__func__, inst);
 		return -EINVAL;
+	}
 
 	reinit_completion(&inst->done);
 
+	dprintk(DBG, "%s: inst %pK\n", __func__, inst);
 	ret = ops->session_end(inst);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to send close\n");
 		return ret;
+		}
 
 	ret = wait_session_msg(inst);
 	if (ret)
@@ -268,14 +294,20 @@ int hfi_session_start(struct venus_inst *inst)
 	const struct hfi_ops *ops = inst->core->ops;
 	int ret;
 
-	if (inst->state != INST_LOAD_RESOURCES)
+	if (inst->state != INST_LOAD_RESOURCES) {
+		dprintk(ERR,
+			"%s: inst %pK is in invalid state\n",
+			__func__, inst);
 		return -EINVAL;
+	}
 
 	reinit_completion(&inst->done);
 
 	ret = ops->session_start(inst);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to send start\n");
 		return ret;
+		}
 
 	ret = wait_session_msg(inst);
 	if (ret)
@@ -291,11 +323,16 @@ int hfi_session_stop(struct venus_inst *inst)
 	const struct hfi_ops *ops = inst->core->ops;
 	int ret;
 
-	if (inst->state != INST_START)
+	if (inst->state != INST_START) {
+		dprintk(ERR,
+			"%s: inst %pK is in invalid state\n",
+			__func__, inst);
 		return -EINVAL;
+	}
 
 	reinit_completion(&inst->done);
 
+	dprintk(DBG, "%s: inst %pK\n", __func__, inst);
 	ret = ops->session_stop(inst);
 	if (ret)
 		return ret;
@@ -328,12 +365,17 @@ int hfi_session_abort(struct venus_inst *inst)
 	reinit_completion(&inst->done);
 
 	ret = ops->session_abort(inst);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "session_abort failed ret: %d\n", ret);
 		return ret;
+	}
 
 	ret = wait_session_msg(inst);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "%s: inst %pK session %x abort timed out\n",
+			__func__, inst, inst->session_type);
 		return ret;
+	}
 
 	return 0;
 }
@@ -343,15 +385,21 @@ int hfi_session_load_res(struct venus_inst *inst)
 	const struct hfi_ops *ops = inst->core->ops;
 	int ret;
 
-	if (inst->state != INST_INIT)
+	if (inst->state != INST_INIT) {
+		dprintk(ERR,
+			"%s: inst %pK is in invalid state\n",
+			__func__, inst);
 		return -EINVAL;
+	}
 
 	reinit_completion(&inst->done);
 
+	dprintk(DBG, "%s: inst %pK\n", __func__, inst);
 	ret = ops->session_load_res(inst);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to send load resources\n");
 		return ret;
-
+	}
 	ret = wait_session_msg(inst);
 	if (ret)
 		return ret;
@@ -366,14 +414,21 @@ int hfi_session_unload_res(struct venus_inst *inst)
 	const struct hfi_ops *ops = inst->core->ops;
 	int ret;
 
-	if (inst->state != INST_STOP)
+	if (inst->state != INST_STOP) {
+		dprintk(ERR,
+			"%s: inst %pK is in invalid state\n",
+			__func__, inst);
 		return -EINVAL;
+		}
 
 	reinit_completion(&inst->done);
 
+	dprintk(DBG, "%s: inst %pK\n", __func__, inst);
 	ret = ops->session_release_res(inst);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to send release resources\n");
 		return ret;
+		}
 
 	ret = wait_session_msg(inst);
 	if (ret)
@@ -461,8 +516,10 @@ int hfi_session_set_property(struct venus_inst *inst, u32 ptype, void *pdata)
 {
 	const struct hfi_ops *ops = inst->core->ops;
 
-	if (inst->state < INST_INIT || inst->state >= INST_STOP)
+	if (inst->state < INST_INIT || inst->state >= INST_STOP) {
+		dprintk(ERR, "Not in proper state to set property\n");
 		return -EINVAL;
+		}
 
 	return ops->session_set_property(inst, ptype, pdata);
 }
@@ -478,6 +535,8 @@ int hfi_session_process_buf(struct venus_inst *inst, struct hfi_frame_data *fd)
 		 fd->buffer_type == HFI_BUFFER_OUTPUT2)
 		return ops->session_ftb(inst, fd);
 
+	dprintk(ERR, "%s: invalid qbuf type %d:\n", __func__,
+		fd->buffer_type);
 	return -EINVAL;
 }
 EXPORT_SYMBOL_GPL(hfi_session_process_buf);
diff --git a/drivers/media/platform/qcom/venus/hfi_cmds.c b/drivers/media/platform/qcom/venus/hfi_cmds.c
index 87a4414..3c451a7 100644
--- a/drivers/media/platform/qcom/venus/hfi_cmds.c
+++ b/drivers/media/platform/qcom/venus/hfi_cmds.c
@@ -16,6 +16,7 @@
 #include <linux/hash.h>
 
 #include "hfi_cmds.h"
+#include "core.h"
 
 static enum hfi_version hfi_ver;
 
@@ -161,8 +162,10 @@ void pkt_sys_image_version(struct hfi_sys_get_property_pkt *pkt)
 int pkt_session_init(struct hfi_session_init_pkt *pkt, void *cookie,
 		     u32 session_type, u32 codec)
 {
-	if (!pkt || !cookie || !codec)
+	if (!pkt || !cookie || !codec) {
+		dprintk(ERR, "%s invalid parameters\n", __func__);
 		return -EINVAL;
+		}
 
 	pkt->shdr.hdr.size = sizeof(*pkt);
 	pkt->shdr.hdr.pkt_type = HFI_CMD_SYS_SESSION_INIT;
@@ -185,8 +188,10 @@ int pkt_session_set_buffers(struct hfi_session_set_buffers_pkt *pkt,
 {
 	unsigned int i;
 
-	if (!cookie || !pkt || !bd)
+	if (!cookie || !pkt || !bd) {
+		dprintk(ERR, "%s - invalid params\n", __func__);
 		return -EINVAL;
+		}
 
 	pkt->shdr.hdr.pkt_type = HFI_CMD_SESSION_SET_BUFFERS;
 	pkt->shdr.session_id = hash32_ptr(cookie);
@@ -215,7 +220,8 @@ int pkt_session_set_buffers(struct hfi_session_set_buffers_pkt *pkt,
 	}
 
 	pkt->buffer_type = bd->buffer_type;
-
+	dprintk(DBG, "buftype:%d buffer addr: %x\n",
+		pkt->buffer_type, bd->device_addr);
 	return 0;
 }
 
@@ -263,9 +269,11 @@ int pkt_session_unset_buffers(struct hfi_session_release_buffer_pkt *pkt,
 int pkt_session_etb_decoder(struct hfi_session_empty_buffer_compressed_pkt *pkt,
 			    void *cookie, struct hfi_frame_data *in_frame)
 {
-	if (!cookie || !in_frame->device_addr)
+	if (!cookie || !in_frame->device_addr) {
+		dprintk(ERR, "%s: invalid params addr: %#x\n",
+			__func__, in_frame->device_addr);
 		return -EINVAL;
-
+	}
 	pkt->shdr.hdr.size = sizeof(*pkt);
 	pkt->shdr.hdr.pkt_type = HFI_CMD_SESSION_EMPTY_BUFFER;
 	pkt->shdr.session_id = hash32_ptr(cookie);
@@ -287,8 +295,11 @@ int pkt_session_etb_encoder(
 		struct hfi_session_empty_buffer_uncompressed_plane0_pkt *pkt,
 		void *cookie, struct hfi_frame_data *in_frame)
 {
-	if (!cookie || !in_frame->device_addr)
+	if (!cookie || !in_frame->device_addr) {
+		dprintk(ERR, "%s: invalid params addr: %#x\n",
+			__func__, in_frame->device_addr);
 		return -EINVAL;
+	}
 
 	pkt->shdr.hdr.size = sizeof(*pkt);
 	pkt->shdr.hdr.pkt_type = HFI_CMD_SESSION_EMPTY_BUFFER;
@@ -312,8 +323,11 @@ int pkt_session_etb_encoder(
 int pkt_session_ftb(struct hfi_session_fill_buffer_pkt *pkt, void *cookie,
 		    struct hfi_frame_data *out_frame)
 {
-	if (!cookie || !out_frame || !out_frame->device_addr)
+	if (!cookie || !out_frame || !out_frame->device_addr) {
+		dprintk(ERR, "%s: invalid params addr: %#x\n",
+			__func__, out_frame->device_addr);
 		return -EINVAL;
+	}
 
 	pkt->shdr.hdr.size = sizeof(*pkt);
 	pkt->shdr.hdr.pkt_type = HFI_CMD_SESSION_FILL_BUFFER;
@@ -339,8 +353,11 @@ int pkt_session_parse_seq_header(
 		struct hfi_session_parse_sequence_header_pkt *pkt,
 		void *cookie, u32 seq_hdr, u32 seq_hdr_len)
 {
-	if (!cookie || !seq_hdr || !seq_hdr_len)
+	if (!cookie || !seq_hdr || !seq_hdr_len) {
+		dprintk(ERR, "%s: invalid params hdr: %d, hdr_len:%d\n",
+			__func__, seq_hdr, seq_hdr_len);
 		return -EINVAL;
+	}
 
 	pkt->shdr.hdr.size = sizeof(*pkt);
 	pkt->shdr.hdr.pkt_type = HFI_CMD_SESSION_PARSE_SEQUENCE_HEADER;
diff --git a/drivers/media/platform/qcom/venus/hfi_msgs.c b/drivers/media/platform/qcom/venus/hfi_msgs.c
index 0ecdaa1..b6ea2f9 100644
--- a/drivers/media/platform/qcom/venus/hfi_msgs.c
+++ b/drivers/media/platform/qcom/venus/hfi_msgs.c
@@ -238,9 +238,14 @@ static void hfi_sys_init_done(struct venus_core *core, struct venus_inst *inst,
 	}
 
 	error = hfi_parser(core, inst, pkt->data, rem_bytes);
+	dprintk(DBG,
+		"supported_codecs[%d]: enc = %#x, dec = %#x\n",
+		core->codecs_count, core->enc_codecs,
+		core->dec_codecs);
 
 done:
 	core->error = error;
+	dprintk(INFO, "sys init ret: %d", core->error);
 	complete(&core->done);
 }
 
diff --git a/drivers/media/platform/qcom/venus/vdec.c b/drivers/media/platform/qcom/venus/vdec.c
index 282de21..7f65e10 100644
--- a/drivers/media/platform/qcom/venus/vdec.c
+++ b/drivers/media/platform/qcom/venus/vdec.c
@@ -97,9 +97,10 @@
 			break;
 	}
 
-	if (i == size || fmt[i].type != type)
+	if (i == size || fmt[i].type != type) {
+		dprintk(INFO, "Format not found\n");
 		return NULL;
-
+	}
 	if (type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE &&
 	    !venus_helper_check_codec(inst, fmt[i].pixfmt))
 		return NULL;
@@ -130,8 +131,10 @@
 			k++;
 	}
 
-	if (i == size)
+	if (i == size) {
+		dprintk(INFO, "Format not found by index\n");
 		return NULL;
+		}
 
 	return &fmt[i];
 }
@@ -236,6 +239,13 @@ static int vdec_g_fmt(struct file *file, void *fh, struct v4l2_format *f)
 
 	vdec_try_fmt_common(inst, f);
 
+	dprintk(DBG,
+		"g_fmt: %x : type %d wxh %dx%d pixelfmt %#x num_planes %d size[0] %d in_reconfig %d\n",
+		inst->session_type, f->type,
+		f->fmt.pix_mp.width, f->fmt.pix_mp.height,
+		f->fmt.pix_mp.pixelformat, f->fmt.pix_mp.num_planes,
+		f->fmt.pix_mp.plane_fmt[0].sizeimage, inst->reconfig);
+
 	return 0;
 }
 
@@ -292,7 +302,8 @@ static int vdec_s_fmt(struct file *file, void *fh, struct v4l2_format *f)
 		inst->fmt_out = fmt;
 	else if (f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)
 		inst->fmt_cap = fmt;
-
+	dprintk(INFO, "s_fmt: inst width: %d height: %d\n",
+		inst->width, inst->height);
 	return 0;
 }
 
@@ -372,8 +383,10 @@ static int vdec_s_parm(struct file *file, void *fh, struct v4l2_streamparm *a)
 	u64 us_per_frame, fps;
 
 	if (a->type != V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE &&
-	    a->type != V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
+	    a->type != V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
+		dprintk(ERR, "Unknown buffer type %d\n", a->type);
 		return -EINVAL;
+		}
 
 	memset(cap->reserved, 0, sizeof(cap->reserved));
 	if (!timeperframe->denominator)
@@ -386,8 +399,11 @@ static int vdec_s_parm(struct file *file, void *fh, struct v4l2_streamparm *a)
 	us_per_frame = timeperframe->numerator * (u64)USEC_PER_SEC;
 	do_div(us_per_frame, timeperframe->denominator);
 
-	if (!us_per_frame)
+	if (!us_per_frame) {
+		dprintk(ERR,
+			"Failed to scale clocks : time between frames is 0\n");
 		return -EINVAL;
+	}
 
 	fps = (u64)USEC_PER_SEC;
 	do_div(fps, us_per_frame);
@@ -395,6 +411,7 @@ static int vdec_s_parm(struct file *file, void *fh, struct v4l2_streamparm *a)
 	inst->fps = fps;
 	inst->timeperframe = *timeperframe;
 
+	dprintk(INFO, "dec: reported fps for %pK: %d\n", inst, inst->fps);
 	return 0;
 }
 
@@ -439,6 +456,7 @@ static int vdec_subscribe_event(struct v4l2_fh *fh,
 	case V4L2_EVENT_CTRL:
 		return v4l2_ctrl_subscribe_event(fh, sub);
 	default:
+		dprintk(ERR, "Failed to subscribe event\n");
 		return -EINVAL;
 	}
 }
@@ -452,6 +470,7 @@ static int vdec_subscribe_event(struct v4l2_fh *fh,
 			return -EINVAL;
 		break;
 	default:
+		dprintk(ERR, "Invalid decoder cmd\n");
 		return -EINVAL;
 	}
 
@@ -527,8 +546,10 @@ static int vdec_set_properties(struct venus_inst *inst)
 	if (ctr->post_loop_deb_mode) {
 		ptype = HFI_PROPERTY_CONFIG_VDEC_POST_LOOP_DEBLOCKER;
 		ret = hfi_session_set_property(inst, ptype, &en);
-		if (ret)
+		if (ret) {
+			dprintk(ERR, "Failed to set dec prop: 0x%x", ptype);
 			return ret;
+			}
 	}
 
 	return 0;
@@ -548,18 +569,24 @@ static int vdec_output_conf(struct venus_inst *inst)
 	int ret;
 
 	ret = venus_helper_set_work_mode(inst, VIDC_WORK_MODE_2);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to set workmode 2\n");
 		return ret;
+	}
 
 	ret = venus_helper_set_core_usage(inst, VIDC_CORE_ID_1);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to set core usage\n");
 		return ret;
+		}
 
 	if (core->res->hfi_version == HFI_VERSION_1XX) {
 		ptype = HFI_PROPERTY_PARAM_VDEC_CONTINUE_DATA_TRANSFER;
 		ret = hfi_session_set_property(inst, ptype, &en);
-		if (ret)
+		if (ret) {
+			dprintk(ERR, "Failed to set dec prop: 0x%x", ptype);
 			return ret;
+			}
 	}
 
 	/* Force searching UBWC formats for bigger then HD resolutions */
@@ -572,8 +599,10 @@ static int vdec_output_conf(struct venus_inst *inst)
 
 	ret = venus_helper_get_out_fmts(inst, inst->fmt_cap->pixfmt, &out_fmt,
 					&out2_fmt, ubwc);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to get outfmt:%x", inst->fmt_cap->pixfmt);
 		return ret;
+		}
 
 	inst->output_buf_size =
 			venus_helper_get_framesz_raw(out_fmt, width, height);
@@ -599,23 +628,34 @@ static int vdec_output_conf(struct venus_inst *inst)
 
 	ret = venus_helper_set_raw_format(inst, inst->opb_fmt,
 					  inst->opb_buftype);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to set raw fmt opb fmt:0x%x",
+			inst->opb_fmt);
 		return ret;
+	}
 
 	if (inst->dpb_fmt) {
 		ret = venus_helper_set_multistream(inst, false, true);
-		if (ret)
+		if (ret) {
+			dprintk(ERR, "Failed to set multistream");
 			return ret;
+		}
 
 		ret = venus_helper_set_raw_format(inst, inst->dpb_fmt,
 						  inst->dpb_buftype);
-		if (ret)
+		if (ret) {
+			dprintk(ERR, "Failed to set raw fmt dpb fmt:0x%x",
+				inst->dpb_fmt);
 			return ret;
-
+			}
 		ret = venus_helper_set_output_resolution(inst, width, height,
 							 HFI_BUFFER_OUTPUT2);
-		if (ret)
+		if (ret) {
+			dprintk(ERR,
+				"Failed to set o/p resolution width:%d, height:%d",
+				width, height);
 			return ret;
+		}
 	}
 
 	if (IS_V3(core) || IS_V4(core)) {
@@ -623,23 +663,32 @@ static int vdec_output_conf(struct venus_inst *inst)
 			ret = venus_helper_set_bufsize(inst,
 						       inst->output2_buf_size,
 						       HFI_BUFFER_OUTPUT2);
-			if (ret)
+			if (ret) {
+				dprintk(ERR,
+					"Failed to set bufsize: %d for o/p2",
+					inst->output2_buf_size);
 				return ret;
+			}
 		}
 
 		if (inst->output_buf_size) {
 			ret = venus_helper_set_bufsize(inst,
 						       inst->output_buf_size,
 						       HFI_BUFFER_OUTPUT);
-			if (ret)
+			if (ret) {
+				dprintk(ERR,
+					"Failed to set bufsize: %d for o/p",
+						inst->output_buf_size);
 				return ret;
+			}
 		}
 	}
 
 	ret = venus_helper_set_dyn_bufmode(inst);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to set dynamic buffer mode\n");
 		return ret;
-
+		}
 	return 0;
 }
 
@@ -648,17 +697,26 @@ static int vdec_init_session(struct venus_inst *inst)
 	int ret;
 
 	ret = hfi_session_init(inst, inst->fmt_out->pixfmt);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to init firmware session\n");
 		return ret;
+	}
 
 	ret = venus_helper_set_input_resolution(inst, inst->out_width,
 						inst->out_height);
-	if (ret)
+	if (ret) {
+		dprintk(ERR,
+			"Failed to set i/p resolution width:%d, height:%d",
+			inst->out_width, inst->out_height);
 		goto deinit;
+	}
 
 	ret = venus_helper_set_color_format(inst, inst->fmt_cap->pixfmt);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to set color format fmt:0x%x",
+			inst->fmt_cap->pixfmt);
 		goto deinit;
+		}
 
 	return 0;
 deinit:
@@ -676,18 +734,24 @@ static int vdec_num_buffers(struct venus_inst *inst, unsigned int *in_num,
 	*in_num = *out_num = 0;
 
 	ret = vdec_init_session(inst);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to init decoder session");
 		return ret;
+		}
 
 	ret = venus_helper_get_bufreq(inst, HFI_BUFFER_INPUT, &bufreq);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to get bufreq on i/p");
 		goto deinit;
+		}
 
 	*in_num = HFI_BUFREQ_COUNT_MIN(&bufreq, ver);
 
 	ret = venus_helper_get_bufreq(inst, HFI_BUFFER_OUTPUT, &bufreq);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to get bufreq on i/p");
 		goto deinit;
+	}
 
 	*out_num = HFI_BUFREQ_COUNT_MIN(&bufreq, ver);
 
@@ -728,8 +792,10 @@ static int vdec_queue_setup(struct vb2_queue *q,
 	}
 
 	ret = vdec_num_buffers(inst, &in_num, &out_num);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed : No buffer requirements\n");
 		return ret;
+		}
 
 	switch (q->type) {
 	case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE:
@@ -752,10 +818,14 @@ static int vdec_queue_setup(struct vb2_queue *q,
 		inst->num_output_bufs = *num_buffers;
 		break;
 	default:
+		dprintk(ERR, "Invalid q type = %d\n", q->type);
 		ret = -EINVAL;
 		break;
 	}
-
+	dprintk(DBG,
+		"%s: %d : type %d num_buffers %d num_planes %d sizes[0] %d\n",
+		__func__, inst->session_type, q->type, *num_buffers,
+		*num_planes, sizes[0]);
 	return ret;
 }
 
@@ -765,24 +835,45 @@ static int vdec_verify_conf(struct venus_inst *inst)
 	struct hfi_buffer_requirements bufreq;
 	int ret;
 
-	if (!inst->num_input_bufs || !inst->num_output_bufs)
+	if (!inst->num_input_bufs || !inst->num_output_bufs) {
+		dprintk(ERR, "Failed: insuffice bufs i/p_buf: %d o/p_buf: %d",
+			inst->num_input_bufs, inst->num_output_bufs);
 		return -EINVAL;
+		}
 
 	ret = venus_helper_get_bufreq(inst, HFI_BUFFER_OUTPUT, &bufreq);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to get bufreq o/p\n");
 		return ret;
-
+		}
+	dprintk(DBG, "Verifying Buffer: %d\n", bufreq.type);
 	if (inst->num_output_bufs < bufreq.count_actual ||
-	    inst->num_output_bufs < HFI_BUFREQ_COUNT_MIN(&bufreq, ver))
+	    inst->num_output_bufs < HFI_BUFREQ_COUNT_MIN(&bufreq, ver)) {
+		dprintk(ERR,
+			"Invalid data : Counts mismatch\n");
+		dprintk(ERR, "num of output bufs = %d ",
+			inst->num_output_bufs);
+		dprintk(ERR, "actual buf count = %d ",
+			bufreq.count_actual);
+		dprintk(ERR, "Min Actual Count = %d\n",
+			HFI_BUFREQ_COUNT_MIN(&bufreq, ver));
 		return -EINVAL;
-
+	}
+	dprintk(DBG, "Verifying Buffer: %d\n", bufreq.type);
 	ret = venus_helper_get_bufreq(inst, HFI_BUFFER_INPUT, &bufreq);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to get bufreq i/p\n");
 		return ret;
-
-	if (inst->num_input_bufs < HFI_BUFREQ_COUNT_MIN(&bufreq, ver))
+		}
+	if (inst->num_input_bufs < HFI_BUFREQ_COUNT_MIN(&bufreq, ver)) {
+		dprintk(ERR,
+			"Invalid data : Counts mismatch\n");
+		dprintk(ERR, "num of input bufs = %d ",
+			inst->num_input_bufs);
+		dprintk(ERR, "Min Actual Count = %d\n",
+			HFI_BUFREQ_COUNT_MIN(&bufreq, ver));
 		return -EINVAL;
-
+	}
 	return 0;
 }
 
@@ -791,6 +882,9 @@ static int vdec_start_streaming(struct vb2_queue *q, unsigned int count)
 	struct venus_inst *inst = vb2_get_drv_priv(q);
 	int ret;
 
+	dprintk(DBG, "Streamon called on: %d capability for inst: %pK\n",
+		q->type, inst);
+
 	mutex_lock(&inst->lock);
 
 	if (q->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
@@ -894,8 +988,12 @@ static void vdec_buf_done(struct venus_inst *inst, unsigned int buf_type,
 		if (vbuf->flags & V4L2_BUF_FLAG_LAST) {
 			const struct v4l2_event ev = { .type = V4L2_EVENT_EOS };
 
+			dprintk(DBG, "Received EOS buffer");
 			v4l2_event_queue_fh(&inst->fh, &ev);
 		}
+		dprintk(INFO,
+			"buf done: data_offset = %d; bytesused = %d; length = %d\n",
+			vb->planes[0].data_offset, vb->planes[0].length);
 	} else {
 		vbuf->sequence = inst->sequence_out++;
 	}
@@ -1021,8 +1119,10 @@ static int vdec_open(struct file *file)
 	int ret;
 
 	inst = kzalloc(sizeof(*inst), GFP_KERNEL);
-	if (!inst)
+	if (!inst) {
+		dprintk(ERR, "dec: Failed to create video instance");
 		return -ENOMEM;
+		}
 
 	INIT_LIST_HEAD(&inst->dpbbufs);
 	INIT_LIST_HEAD(&inst->registeredbufs);
@@ -1041,12 +1141,16 @@ static int vdec_open(struct file *file)
 		goto err_free_inst;
 
 	ret = vdec_ctrl_init(inst);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed control initialization\n");
 		goto err_put_sync;
+	}
 
 	ret = hfi_session_create(inst, &vdec_hfi_ops);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to create session\n");
 		goto err_ctrl_deinit;
+	}
 
 	vdec_inst_init(inst);
 
@@ -1232,6 +1336,7 @@ static __maybe_unused int vdec_runtime_resume(struct device *dev)
 err_unprepare_core0:
 	clk_disable_unprepare(core->core0_clk);
 err_power_disable:
+	dprintk(ERR, "Failed to enable core0 clk\n");
 	venus_helper_power_enable(core, VIDC_SESSION_TYPE_DEC, false);
 	return ret;
 }
diff --git a/drivers/media/platform/qcom/venus/vdec_ctrls.c b/drivers/media/platform/qcom/venus/vdec_ctrls.c
index f4604b0..bfc6904 100644
--- a/drivers/media/platform/qcom/venus/vdec_ctrls.c
+++ b/drivers/media/platform/qcom/venus/vdec_ctrls.c
@@ -91,8 +91,11 @@ int vdec_ctrl_init(struct venus_inst *inst)
 	int ret;
 
 	ret = v4l2_ctrl_handler_init(&inst->ctrl_handler, 7);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "CTRL ERR: Control handler init failed, %d\n",
+			inst->ctrl_handler.error);
 		return ret;
+	}
 
 	ctrl = v4l2_ctrl_new_std_menu(&inst->ctrl_handler, &vdec_ctrl_ops,
 		V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE,
@@ -147,6 +150,8 @@ int vdec_ctrl_init(struct venus_inst *inst)
 
 	ret = inst->ctrl_handler.error;
 	if (ret) {
+		dprintk(ERR, "Error adding ctrl to ctrl handle, %d\n",
+			inst->ctrl_handler.error);
 		v4l2_ctrl_handler_free(&inst->ctrl_handler);
 		return ret;
 	}
diff --git a/drivers/media/platform/qcom/venus/venc.c b/drivers/media/platform/qcom/venus/venc.c
index 32cff29..0151b01 100644
--- a/drivers/media/platform/qcom/venus/venc.c
+++ b/drivers/media/platform/qcom/venus/venc.c
@@ -79,9 +79,10 @@
 			break;
 	}
 
-	if (i == size || fmt[i].type != type)
+	if (i == size || fmt[i].type != type) {
+		dprintk(INFO, "Format not found\n");
 		return NULL;
-
+	}
 	if (type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE &&
 	    !venus_helper_check_codec(inst, fmt[i].pixfmt))
 		return NULL;
@@ -112,9 +113,10 @@
 			k++;
 	}
 
-	if (i == size)
+	if (i == size) {
+		dprintk(INFO, "Format not found by index\n");
 		return NULL;
-
+	}
 	return &fmt[i];
 }
 
@@ -289,8 +291,10 @@ static int venc_enum_fmt(struct file *file, void *fh, struct v4l2_fmtdesc *f)
 
 	memset(f->reserved, 0, sizeof(f->reserved));
 
-	if (!fmt)
+	if (!fmt) {
+		dprintk(DBG, "No more formats found\n");
 		return -EINVAL;
+	}
 
 	f->pixelformat = fmt->pixfmt;
 
@@ -367,8 +371,11 @@ static int venc_s_fmt(struct file *file, void *fh, struct v4l2_format *f)
 	orig_pixmp = *pixmp;
 
 	fmt = venc_try_fmt_common(inst, f);
-	if (!fmt)
+	if (!fmt) {
+		dprintk(ERR, "Format: %d not supported\n",
+			f->fmt.pix_mp.pixelformat);
 		return -EINVAL;
+	}
 
 	if (f->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
 		pixfmt_out = pixmp->pixelformat;
@@ -410,7 +417,8 @@ static int venc_s_fmt(struct file *file, void *fh, struct v4l2_format *f)
 		inst->fmt_out = fmt;
 	else if (f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)
 		inst->fmt_cap = fmt;
-
+	dprintk(INFO, "s_fmt: inst width: %d height: %d\n",
+		inst->width, inst->height);
 	return 0;
 }
 
@@ -443,6 +451,13 @@ static int venc_g_fmt(struct file *file, void *fh, struct v4l2_format *f)
 
 	venc_try_fmt_common(inst, f);
 
+	dprintk(DBG,
+		"g_fmt: %x : type %d wxh %dx%d pixelfmt %#x num_planes %d size[0] %d in_reconfig %d\n",
+		inst->session_type, f->type,
+		f->fmt.pix_mp.width, f->fmt.pix_mp.height,
+		f->fmt.pix_mp.pixelformat, f->fmt.pix_mp.num_planes,
+		f->fmt.pix_mp.plane_fmt[0].sizeimage, inst->reconfig);
+
 	return 0;
 }
 
@@ -504,8 +519,10 @@ static int venc_s_parm(struct file *file, void *fh, struct v4l2_streamparm *a)
 	u64 us_per_frame, fps;
 
 	if (a->type != V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE &&
-	    a->type != V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
+	    a->type != V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
+		dprintk(ERR, "Unknown buffer type %d\n", a->type);
 		return -EINVAL;
+	}
 
 	memset(out->reserved, 0, sizeof(out->reserved));
 
@@ -519,8 +536,11 @@ static int venc_s_parm(struct file *file, void *fh, struct v4l2_streamparm *a)
 	us_per_frame = timeperframe->numerator * (u64)USEC_PER_SEC;
 	do_div(us_per_frame, timeperframe->denominator);
 
-	if (!us_per_frame)
+	if (!us_per_frame) {
+		dprintk(ERR,
+			"Failed to scale clocks : time between frames is 0\n");
 		return -EINVAL;
+		}
 
 	fps = (u64)USEC_PER_SEC;
 	do_div(fps, us_per_frame);
@@ -528,6 +548,7 @@ static int venc_s_parm(struct file *file, void *fh, struct v4l2_streamparm *a)
 	inst->timeperframe = *timeperframe;
 	inst->fps = fps;
 
+	dprintk(INFO, "enc: reported fps for %pK: %d\n", inst, inst->fps);
 	return 0;
 }
 
@@ -657,20 +678,26 @@ static int venc_set_properties(struct venus_inst *inst)
 	int ret;
 
 	ret = venus_helper_set_work_mode(inst, VIDC_WORK_MODE_2);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to set workmode 2\n");
 		return ret;
+	}
 
 	ret = venus_helper_set_core_usage(inst, VIDC_CORE_ID_2);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to set core usage\n");
 		return ret;
+		}
 
 	ptype = HFI_PROPERTY_CONFIG_FRAME_RATE;
 	frate.buffer_type = HFI_BUFFER_OUTPUT;
 	frate.framerate = inst->fps * (1 << 16);
 
 	ret = hfi_session_set_property(inst, ptype, &frate);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to set core usage\n");
 		return ret;
+		}
 
 	if (inst->fmt_cap->pixfmt == V4L2_PIX_FMT_H264) {
 		struct hfi_h264_vui_timing_info info;
@@ -829,28 +856,41 @@ static int venc_init_session(struct venus_inst *inst)
 	int ret;
 
 	ret = hfi_session_init(inst, inst->fmt_cap->pixfmt);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to init firmware session\n");
 		return ret;
+	}
 
 	ret = venus_helper_set_input_resolution(inst, inst->width,
 						inst->height);
-	if (ret)
+	if (ret) {
+		dprintk(ERR,
+			"Failed to set i/p resolution width: %d, height: %d",
+			inst->width, inst->height);
 		goto deinit;
+	}
 
 	ret = venus_helper_set_output_resolution(inst, inst->width,
 						 inst->height,
 						 HFI_BUFFER_OUTPUT);
-	if (ret)
+	if (ret) {
+		dprintk(ERR,
+			"Failed to set o/p resolution width: %d, height: %d",
+			inst->width, inst->height);
 		goto deinit;
+	}
 
 	ret = venus_helper_set_color_format(inst, inst->fmt_out->pixfmt);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to set color format");
 		goto deinit;
+		}
 
 	ret = venc_set_properties(inst);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to set enc properties");
 		goto deinit;
-
+	}
 	return 0;
 deinit:
 	hfi_session_deinit(inst);
@@ -863,8 +903,10 @@ static int venc_out_num_buffers(struct venus_inst *inst, unsigned int *num)
 	int ret;
 
 	ret = venc_init_session(inst);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to init encoder session");
 		return ret;
+		}
 
 	ret = venus_helper_get_bufreq(inst, HFI_BUFFER_INPUT, &bufreq);
 
@@ -908,9 +950,12 @@ static int venc_queue_setup(struct vb2_queue *q,
 		*num_planes = inst->fmt_out->num_planes;
 
 		ret = venc_out_num_buffers(inst, &num);
-		if (ret)
+		if (ret) {
+			dprintk(ERR,
+				"Failed : No buffer requirements : %x\n",
+				HFI_BUFFER_INPUT);
 			break;
-
+		}
 		num = max(num, min);
 		*num_buffers = max(*num_buffers, num);
 		inst->num_input_bufs = *num_buffers;
@@ -930,10 +975,15 @@ static int venc_queue_setup(struct vb2_queue *q,
 		inst->output_buf_size = sizes[0];
 		break;
 	default:
+		dprintk(ERR, "Invalid q type = %d\n", q->type);
 		ret = -EINVAL;
 		break;
 	}
 
+	dprintk(DBG,
+		"queue_setup: %d : type %d num_buffers %d num_planes %d sizes[0] %d\n",
+		inst->session_type, q->type, *num_buffers,
+		*num_planes, sizes[0]);
 	return ret;
 }
 
@@ -943,25 +993,52 @@ static int venc_verify_conf(struct venus_inst *inst)
 	struct hfi_buffer_requirements bufreq;
 	int ret;
 
-	if (!inst->num_input_bufs || !inst->num_output_bufs)
+	if (!inst->num_input_bufs || !inst->num_output_bufs) {
+		dprintk(ERR,
+			"Failed with insufficient bufs i/p_buf: %d o/p_buf: %d",
+			inst->num_input_bufs, inst->num_output_bufs);
 		return -EINVAL;
+	}
 
 	ret = venus_helper_get_bufreq(inst, HFI_BUFFER_OUTPUT, &bufreq);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to get bufreq o/p\n");
 		return ret;
+		}
+	dprintk(DBG, "Verifying Buffer: %d\n", bufreq.type);
 
 	if (inst->num_output_bufs < bufreq.count_actual ||
-	    inst->num_output_bufs < HFI_BUFREQ_COUNT_MIN(&bufreq, ver))
+	    inst->num_output_bufs < HFI_BUFREQ_COUNT_MIN(&bufreq, ver)) {
+		dprintk(ERR,
+			"Invalid data : Counts mismatch\n");
+		dprintk(ERR, "num of output bufs = %d ",
+			inst->num_output_bufs);
+		dprintk(ERR, "actual buf count = %d ",
+			bufreq.count_actual);
+		dprintk(ERR, "Min Actual Count = %d\n",
+			HFI_BUFREQ_COUNT_MIN(&bufreq, ver));
 		return -EINVAL;
+		}
 
+	dprintk(DBG, "Verifying Buffer: %d\n", bufreq.type);
 	ret = venus_helper_get_bufreq(inst, HFI_BUFFER_INPUT, &bufreq);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "Failed to get bufreq i/p\n");
 		return ret;
+		}
 
 	if (inst->num_input_bufs < bufreq.count_actual ||
-	    inst->num_input_bufs < HFI_BUFREQ_COUNT_MIN(&bufreq, ver))
+	    inst->num_input_bufs < HFI_BUFREQ_COUNT_MIN(&bufreq, ver)) {
+		dprintk(ERR,
+			"Invalid data : Counts mismatch\n");
+		dprintk(ERR, "num of input bufs = %d ",
+			inst->num_output_bufs);
+		dprintk(ERR, "actual buf count = %d ",
+			bufreq.count_actual);
+		dprintk(ERR, "Min Actual Count = %d\n",
+			HFI_BUFREQ_COUNT_MIN(&bufreq, ver));
 		return -EINVAL;
-
+		}
 	return 0;
 }
 
@@ -972,6 +1049,9 @@ static int venc_start_streaming(struct vb2_queue *q, unsigned int count)
 
 	mutex_lock(&inst->lock);
 
+	dprintk(DBG, "Streamon called on: %d capability for inst: %pK\n",
+		q->type, inst);
+
 	if (q->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
 		inst->streamon_out = 1;
 	else
@@ -1148,8 +1228,10 @@ static int venc_open(struct file *file)
 	int ret;
 
 	inst = kzalloc(sizeof(*inst), GFP_KERNEL);
-	if (!inst)
+	if (!inst) {
+		dprintk(ERR, "enc: Failed to create video instance");
 		return -ENOMEM;
+	}
 
 	INIT_LIST_HEAD(&inst->dpbbufs);
 	INIT_LIST_HEAD(&inst->registeredbufs);
@@ -1358,6 +1440,7 @@ static __maybe_unused int venc_runtime_resume(struct device *dev)
 err_unprepare_core1:
 	clk_disable_unprepare(core->core1_clk);
 err_power_disable:
+	dprintk(ERR, "Failed to enable core1 clk");
 	venus_helper_power_enable(core, VIDC_SESSION_TYPE_ENC, false);
 	return ret;
 }
diff --git a/drivers/media/platform/qcom/venus/venc_ctrls.c b/drivers/media/platform/qcom/venus/venc_ctrls.c
index ac1e1d2..dbbec61 100644
--- a/drivers/media/platform/qcom/venus/venc_ctrls.c
+++ b/drivers/media/platform/qcom/venus/venc_ctrls.c
@@ -203,6 +203,7 @@ static int venc_op_s_ctrl(struct v4l2_ctrl *ctrl)
 		mutex_unlock(&inst->lock);
 		break;
 	default:
+		dprintk(ERR, "Unsupported ctrl: %x\n", ctrl->id);
 		return -EINVAL;
 	}
 
@@ -218,9 +219,11 @@ int venc_ctrl_init(struct venus_inst *inst)
 	int ret;
 
 	ret = v4l2_ctrl_handler_init(&inst->ctrl_handler, 28);
-	if (ret)
+	if (ret) {
+		dprintk(ERR, "CTRL ERR: Control handler init failed, %d\n",
+			inst->ctrl_handler.error);
 		return ret;
-
+	}
 	v4l2_ctrl_new_std_menu(&inst->ctrl_handler, &venc_ctrl_ops,
 		V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
 		V4L2_MPEG_VIDEO_BITRATE_MODE_CBR,
@@ -351,6 +354,8 @@ int venc_ctrl_init(struct venus_inst *inst)
 
 	return 0;
 err:
+	dprintk(ERR, "Error adding ctrl to ctrl handle, %d\n",
+		inst->ctrl_handler.error);
 	v4l2_ctrl_handler_free(&inst->ctrl_handler);
 	return ret;
 }
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-01-07 16:55 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-28  9:23 [PATCH v2] media: venus: add debugfs support Malathi Gottam
2018-12-28 11:32 ` kbuild test robot
2018-12-29 17:22 ` kbuild test robot
2019-01-07 14:29 Malathi Gottam
2019-01-07 16:55 ` Al Viro

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).