From fde78f2de6fd5c73cfb05e3d7c59a06b2cf07798 Mon Sep 17 00:00:00 2001 From: Ding Wei Date: Thu, 14 Jan 2021 09:41:49 +0800 Subject: [PATCH] video: rockchip: mpp: issue for rcbbuf setting tips: 1. rcb_size == 0, skip it. 2. if current rcb_size is larger then the remaining buffer size, skip it instead of break. Change-Id: Ide37ccbf0af9ceb3f4a6f6fe5e7045bfbd8ddc74 Signed-off-by: Ding Wei --- drivers/video/rockchip/mpp/mpp_rkvdec2.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/video/rockchip/mpp/mpp_rkvdec2.c b/drivers/video/rockchip/mpp/mpp_rkvdec2.c index 6f142762a0cc..120ea0f45545 100644 --- a/drivers/video/rockchip/mpp/mpp_rkvdec2.c +++ b/drivers/video/rockchip/mpp/mpp_rkvdec2.c @@ -320,9 +320,10 @@ static int mpp_set_rcbbuf(struct mpp_dev *mpp, struct rkvdec_task *task) for (i = 0; i < rcb_inf->cnt; i++) { reg_idx = rcb_inf->elem[i].index; rcb_size = rcb_inf->elem[i].size; - if (rcb_offset > dec->sram_size || + if (!rcb_size || + rcb_offset > dec->sram_size || (rcb_offset + rcb_size) > dec->rcb_size) - break; + continue; mpp_debug(DEBUG_SRAM_INFO, "rcb: reg %d offset %d, size %d\n", reg_idx, rcb_offset, rcb_size); task->reg[reg_idx] = dec->rcb_iova + rcb_offset;