From 4856e30c88c707dfed14bb826b71a20e05f313f5 Mon Sep 17 00:00:00 2001 From: Herman Chen Date: Fri, 10 Jun 2022 17:47:59 +0800 Subject: [PATCH] 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 Signed-off-by: Siyong Chen Change-Id: Idb81e3aa4875e890afa3ec7aecfd25da84e618ae --- drivers/video/rockchip/mpp/mpp_rkvenc2.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/video/rockchip/mpp/mpp_rkvenc2.c b/drivers/video/rockchip/mpp/mpp_rkvenc2.c index e7afbd9209d8..7f939cac1494 100644 --- a/drivers/video/rockchip/mpp/mpp_rkvenc2.c +++ b/drivers/video/rockchip/mpp/mpp_rkvenc2.c @@ -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);