From 1427b10e9fe679483fa9fe9a4752a0a905fc4dfa Mon Sep 17 00:00:00 2001 From: Cai YiWei Date: Tue, 3 Aug 2021 10:47:24 +0800 Subject: [PATCH] media: rockchip: ispp: reset at frame end Change-Id: I83d1bd9c4464fc138bf87f349e3f464b74eefd38 Signed-off-by: Cai YiWei --- drivers/media/platform/rockchip/ispp/hw.c | 2 +- drivers/media/platform/rockchip/ispp/params.c | 2 +- drivers/media/platform/rockchip/ispp/stream.c | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/media/platform/rockchip/ispp/hw.c b/drivers/media/platform/rockchip/ispp/hw.c index 7028b5e30b59..5c608738e129 100644 --- a/drivers/media/platform/rockchip/ispp/hw.c +++ b/drivers/media/platform/rockchip/ispp/hw.c @@ -323,7 +323,7 @@ static int rkispp_hw_probe(struct platform_device *pdev) atomic_set(&hw_dev->refcnt, 0); INIT_LIST_HEAD(&hw_dev->list); hw_dev->is_idle = true; - hw_dev->is_single = true; + hw_dev->is_single = false; hw_dev->is_fec_ext = false; hw_dev->is_dma_contig = true; hw_dev->is_dma_sg_ops = false; diff --git a/drivers/media/platform/rockchip/ispp/params.c b/drivers/media/platform/rockchip/ispp/params.c index e23808adc7c2..a25fbd1c21ac 100644 --- a/drivers/media/platform/rockchip/ispp/params.c +++ b/drivers/media/platform/rockchip/ispp/params.c @@ -320,7 +320,7 @@ static void nr_config(struct rkispp_params_vdev *params_vdev, nobig_en = 0; } - if (params_vdev->dev->hw_dev->is_single) + if (params_vdev->dev->hw_dev->dev_num == 1) sd32_self_en = arg->uvnr_sd32_self_en; val = arg->uvnr_step1_en << 1 | arg->uvnr_step2_en << 2 | arg->nr_gain_en << 3 | sd32_self_en << 4 | diff --git a/drivers/media/platform/rockchip/ispp/stream.c b/drivers/media/platform/rockchip/ispp/stream.c index 3931cf566a29..b3e4385e88f1 100644 --- a/drivers/media/platform/rockchip/ispp/stream.c +++ b/drivers/media/platform/rockchip/ispp/stream.c @@ -3281,6 +3281,7 @@ void rkispp_module_work_event(struct rkispp_device *dev, ((module == ISPP_MODULE_NR && is_single) || (module == ISPP_MODULE_FEC && !is_single))))) { dev->stream_vdev.monitor.retry = 0; + rkispp_soft_reset(dev->hw_dev); rkispp_event_handle(dev, CMD_QUEUE_DMABUF, NULL); } @@ -3314,7 +3315,8 @@ void rkispp_isr(u32 mis_val, struct rkispp_device *dev) if (mis_val & err_mask) { dev->isr_err_cnt++; v4l2_err(&dev->v4l2_dev, - "ispp err:0x%x\n", mis_val); + "ispp err:0x%x, seq:%d\n", + mis_val, dev->ispp_sdev.frm_sync_seq); } if (mis_val & TNR_INT) {