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 <leo.ding@rock-chips.com>
This commit is contained in:
Ding Wei
2021-01-14 09:41:49 +08:00
committed by Tao Huang
parent 569ae93661
commit fde78f2de6

View File

@@ -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;