From b6a726b6cace3d7e6cfac109766b14bed1e39d5e Mon Sep 17 00:00:00 2001 From: Ding Wei Date: Mon, 25 Mar 2024 20:48:02 +0800 Subject: [PATCH] video: rockchip: mpp: rkvdec2: init the value of max outstanding reads tips: If not init, it can be any value, when power on. Change-Id: I64569e0e24c61f718ecec6b8da0e695a7ed25195 Signed-off-by: Ding Wei --- drivers/video/rockchip/mpp/mpp_rkvdec2.c | 2 ++ drivers/video/rockchip/mpp/mpp_rkvdec2.h | 1 + drivers/video/rockchip/mpp/mpp_rkvdec2_link.c | 2 ++ 3 files changed, 5 insertions(+) diff --git a/drivers/video/rockchip/mpp/mpp_rkvdec2.c b/drivers/video/rockchip/mpp/mpp_rkvdec2.c index 1c92426cdffe..534e131fc715 100644 --- a/drivers/video/rockchip/mpp/mpp_rkvdec2.c +++ b/drivers/video/rockchip/mpp/mpp_rkvdec2.c @@ -505,6 +505,8 @@ static int rkvdec_vdpu383_run(struct mpp_dev *mpp, struct mpp_task *mpp_task) mpp_write_relaxed(mpp, RKVDEC_REG_CACHE0_SIZE_BASE, reg); /* clear cache */ mpp_write_relaxed(mpp, RKVDEC_REG_CLR_CACHE0_BASE, 1); + /* init max outstanding read */ + mpp_write_relaxed(mpp, RKVDEC_REG_MAX_READS, 0x1c); /* set registers for hardware */ for (i = 0; i < task->w_req_cnt; i++) { diff --git a/drivers/video/rockchip/mpp/mpp_rkvdec2.h b/drivers/video/rockchip/mpp/mpp_rkvdec2.h index 01bc6f08d595..90a795b39e84 100644 --- a/drivers/video/rockchip/mpp/mpp_rkvdec2.h +++ b/drivers/video/rockchip/mpp/mpp_rkvdec2.h @@ -87,6 +87,7 @@ #define RKVDEC_REG_CACHE1_SIZE_BASE 0x55c #define RKVDEC_REG_CACHE2_SIZE_BASE 0x59c #define RKVDEC_REG_CLR_CACHE0_BASE 0x510 +#define RKVDEC_REG_MAX_READS 0x518 #define RKVDEC_REG_CLR_CACHE1_BASE 0x550 #define RKVDEC_REG_CLR_CACHE2_BASE 0x590 diff --git a/drivers/video/rockchip/mpp/mpp_rkvdec2_link.c b/drivers/video/rockchip/mpp/mpp_rkvdec2_link.c index 723f1e3b0271..8a8d0ce49491 100644 --- a/drivers/video/rockchip/mpp/mpp_rkvdec2_link.c +++ b/drivers/video/rockchip/mpp/mpp_rkvdec2_link.c @@ -401,6 +401,8 @@ static void rkvdec2_clear_cache(struct mpp_dev *mpp) mpp_write_relaxed(mpp, RKVDEC_REG_CLR_CACHE0_BASE, 1); mpp_write_relaxed(mpp, RKVDEC_REG_CLR_CACHE1_BASE, 1); mpp_write_relaxed(mpp, RKVDEC_REG_CLR_CACHE2_BASE, 1); + /* init max outstanding read */ + mpp_write_relaxed(mpp, RKVDEC_REG_MAX_READS, 0x1c); } static int rkvdec2_link_enqueue(struct rkvdec_link_dev *link_dec,