From e3e12f52b214121840b44c91de5b3e5af5d3eb84 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Mon, 06 Nov 2023 03:04:41 +0000 Subject: [PATCH] rk3568 rt init --- kernel/drivers/video/rockchip/mpp/mpp_rkvenc.c | 18 ++++++++++++++++-- 1 files changed, 16 insertions(+), 2 deletions(-) diff --git a/kernel/drivers/video/rockchip/mpp/mpp_rkvenc.c b/kernel/drivers/video/rockchip/mpp/mpp_rkvenc.c index 5bc2449..4a3c7d7 100644 --- a/kernel/drivers/video/rockchip/mpp/mpp_rkvenc.c +++ b/kernel/drivers/video/rockchip/mpp/mpp_rkvenc.c @@ -439,6 +439,7 @@ int i; struct mpp_request *req; u32 reg_en = mpp_task->hw_info->reg_en; + u32 timing_en = mpp->srv->timing_en; /* * Tips: ensure osd plt clock is 0 before setting register, @@ -466,11 +467,20 @@ rkvenc_write_req_backward(mpp, task->reg, s, e, reg_en); } } + + /* flush tlb before starting hardware */ + mpp_iommu_flush_tlb(mpp->iommu_info); + /* init current task */ mpp->cur_task = mpp_task; + + mpp_task_run_begin(mpp_task, timing_en, MPP_WORK_TIMEOUT_DELAY); + /* Flush the register before the start the device */ wmb(); mpp_write(mpp, RKVENC_ENC_START_BASE, task->reg[reg_en]); + + mpp_task_run_end(mpp_task, timing_en); } break; case RKVENC_MODE_LINKTABLE_FIX: case RKVENC_MODE_LINKTABLE_UPDATE: @@ -802,6 +812,10 @@ enc->procfs = NULL; return -EIO; } + + /* for common mpp_dev options */ + mpp_procfs_create_common(enc->procfs, mpp); + /* for debug */ mpp_procfs_create_u32("aclk", 0644, enc->procfs, &enc->aclk_info.debug_rate_hz); @@ -1264,7 +1278,7 @@ mpp_write(mpp, RKVENC_INT_STATUS_BASE, 0); /* cru reset */ if (enc->rst_a && enc->rst_h && enc->rst_core) { - rockchip_pmu_idle_request(mpp->dev, true); + mpp_pmu_idle_request(mpp, true); mpp_safe_reset(enc->rst_a); mpp_safe_reset(enc->rst_h); mpp_safe_reset(enc->rst_core); @@ -1272,7 +1286,7 @@ mpp_safe_unreset(enc->rst_a); mpp_safe_unreset(enc->rst_h); mpp_safe_unreset(enc->rst_core); - rockchip_pmu_idle_request(mpp->dev, false); + mpp_pmu_idle_request(mpp, false); } #ifdef CONFIG_PM_DEVFREQ if (enc->devfreq) -- Gitblit v1.6.2