From 907fb7fa62427af37f0f332f03098006138d397c Mon Sep 17 00:00:00 2001 From: Wei Dun Date: Sat, 31 May 2025 10:21:02 +0800 Subject: [PATCH] media: rockchip: vpss: reduce rockit buf vmap Signed-off-by: Wei Dun Change-Id: I271c2a056fccb6b16f08bfa1f56a1c668cc3b87d --- drivers/media/platform/rockchip/vpss/common.h | 1 + drivers/media/platform/rockchip/vpss/dev.c | 4 ++++ drivers/media/platform/rockchip/vpss/vpss_rockit.c | 9 +++++++-- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/rockchip/vpss/common.h b/drivers/media/platform/rockchip/vpss/common.h index 24243c0922db..a313a4362171 100644 --- a/drivers/media/platform/rockchip/vpss/common.h +++ b/drivers/media/platform/rockchip/vpss/common.h @@ -112,6 +112,7 @@ static inline int vpss_outchn_max(int version) } extern int rkvpss_debug; +extern int rkvpss_buf_dbg; extern struct platform_driver rkvpss_plat_drv; extern int rkvpss_cfginfo_num; diff --git a/drivers/media/platform/rockchip/vpss/dev.c b/drivers/media/platform/rockchip/vpss/dev.c index 3748a19909e8..3b7bfddd1004 100644 --- a/drivers/media/platform/rockchip/vpss/dev.c +++ b/drivers/media/platform/rockchip/vpss/dev.c @@ -18,6 +18,10 @@ int rkvpss_debug; module_param_named(debug, rkvpss_debug, int, 0644); MODULE_PARM_DESC(debug, "Debug level (0-6)"); +int rkvpss_buf_dbg; +module_param_named(buf_dbg, rkvpss_buf_dbg, int, 0644); +MODULE_PARM_DESC(buf_dbg, "rkvpss buf dbg"); + static bool rkvpss_clk_dbg; module_param_named(clk_dbg, rkvpss_clk_dbg, bool, 0644); MODULE_PARM_DESC(clk_dbg, "rkvpss clk set by user"); diff --git a/drivers/media/platform/rockchip/vpss/vpss_rockit.c b/drivers/media/platform/rockchip/vpss/vpss_rockit.c index 6e5d7a8a1aa0..60e705815322 100644 --- a/drivers/media/platform/rockchip/vpss/vpss_rockit.c +++ b/drivers/media/platform/rockchip/vpss/vpss_rockit.c @@ -216,8 +216,13 @@ int rkvpss_rockit_buf_queue(struct rockit_rkvpss_cfg *input_cfg) } vpssrk_buf->vaddr = NULL; - if (dma_buf_vmap(input_cfg->buf, &map) == 0) - vpssrk_buf->vaddr = map.vaddr; + /* default vmap two to get image, rkvpss_buf_dbg > 0 to vmap all */ + if (i < 2 || rkvpss_buf_dbg > 0) { + v4l2_dbg(3, rkvpss_debug, &vpss_dev->v4l2_dev, + "stream:%d rockit vmap buf:%p\n", stream->id, input_cfg->buf); + if (dma_buf_vmap(input_cfg->buf, &map) == 0) + vpssrk_buf->vaddr = map.vaddr; + } vpssrk_buf->buff_addr = sg_dma_address(sgt->sgl); get_dma_buf(input_cfg->buf);