video: rockchip: mpp: rkvenc2: Fix pagefault issue

Add force clear before each task to avoid pagefault which is caused by
invalid fbc header data.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Signed-off-by: Siyong Chen <sayon.chen@rock-chips.com>
Change-Id: Idb81e3aa4875e890afa3ec7aecfd25da84e618ae
This commit is contained in:
Herman Chen
2022-06-10 17:47:59 +08:00
committed by Tao Huang
parent c540a82d3d
commit 4856e30c88

View File

@@ -1015,9 +1015,15 @@ static int rkvenc_run(struct mpp_dev *mpp, struct mpp_task *mpp_task)
u32 start_val = 0;
struct rkvenc_dev *enc = to_rkvenc_dev(mpp);
struct rkvenc_task *task = to_rkvenc_task(mpp_task);
struct rkvenc_hw_info *hw = enc->hw_info;
mpp_debug_enter();
/* Add force clear to avoid pagefault */
mpp_write(mpp, hw->enc_clr_base, 0x2);
udelay(5);
mpp_write(mpp, hw->enc_clr_base, 0x0);
/* clear hardware counter */
mpp_write_relaxed(mpp, 0x5300, 0x2);