From 2f7c68cb55ecb7331f2381deb497c27155f32faf Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Wed, 03 Jan 2024 09:43:39 +0000 Subject: [PATCH] update kernel to 5.10.198 --- kernel/drivers/media/platform/rockchip/isp/isp_stats_v32.c | 15 +++++++++++++-- 1 files changed, 13 insertions(+), 2 deletions(-) diff --git a/kernel/drivers/media/platform/rockchip/isp/isp_stats_v32.c b/kernel/drivers/media/platform/rockchip/isp/isp_stats_v32.c index cd0a490..6e73379 100644 --- a/kernel/drivers/media/platform/rockchip/isp/isp_stats_v32.c +++ b/kernel/drivers/media/platform/rockchip/isp/isp_stats_v32.c @@ -468,7 +468,7 @@ struct rkisp_isp_params_val_v32 *priv_val; struct rkisp_dummy_buffer *buf; int idx, buf_fd = -1; - u32 reg = 0, ctrl; + u32 reg = 0, ctrl, mask; priv_val = (struct rkisp_isp_params_val_v32 *)dev->params_vdev.priv_val; if (!priv_val->buf_info_owner && priv_val->buf_info_idx >= 0) { @@ -481,9 +481,11 @@ if (priv_val->buf_info_owner == RKISP_INFO2DRR_OWNER_GAIN) { reg = ISP3X_GAIN_CTRL; ctrl = ISP3X_GAIN_2DDR_EN; + mask = ISP3X_GAIN_2DDR_EN; } else { reg = ISP3X_RAWAWB_CTRL; ctrl = ISP32_RAWAWB_2DDR_PATH_EN; + mask = ISP32_RAWAWB_2DDR_PATH_EN | ISP32_RAWAWB_2DDR_PATH_DS; } idx = priv_val->buf_info_idx; @@ -510,6 +512,12 @@ } else if (reg == ISP3X_RAWAWB_CTRL && rkisp_read(dev, reg, true) & ISP32_RAWAWB_2DDR_PATH_ERR) { v4l2_warn(&dev->v4l2_dev, "rawawb2ddr path error idx:%d\n", idx); + } else { + u32 v0 = rkisp_read(dev, reg, false); + u32 v1 = rkisp_read_reg_cache(dev, reg); + + if ((v0 & mask) != (v1 & mask)) + rkisp_write(dev, reg, v0 | (v1 & mask), false); } if (buf_fd == -1) @@ -627,6 +635,9 @@ ops->get_dhaz_stats(stats_vdev, cur_stat_buf); ops->get_vsm_stats(stats_vdev, cur_stat_buf); } + + if (cur_stat_buf && stats_vdev->dev->is_first_double) + cur_stat_buf->meas_type |= ISP32_STAT_RTT_FST; if (is_dummy) { spin_lock_irqsave(&stats_vdev->rd_lock, flags); @@ -1035,7 +1046,7 @@ work.frame_id = cur_frame_id; work.isp_ris = temp_isp_ris | isp_ris; work.isp3a_ris = temp_isp3a_ris; - work.timestamp = ktime_get_ns(); + work.timestamp = rkisp_time_get_ns(stats_vdev->dev); rkisp_stats_send_meas_v32(stats_vdev, &work); } -- Gitblit v1.6.2