forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
kernel/drivers/media/platform/rockchip/isp/isp_stats_v21.c
....@@ -33,6 +33,14 @@
3333
3434 #define ISP2X_RAWAF_INT_LINE0_EN BIT(27)
3535
36
+static void isp_module_done(struct rkisp_isp_stats_vdev *stats_vdev,
37
+ u32 reg, u32 value)
38
+{
39
+ void __iomem *base = stats_vdev->dev->hw_dev->base_addr;
40
+
41
+ writel(value, base + reg);
42
+}
43
+
3644 static int
3745 rkisp_stats_get_rawawb_meas_reg(struct rkisp_isp_stats_vdev *stats_vdev,
3846 struct rkisp_isp21_stat_buffer *pbuf)
....@@ -789,7 +797,7 @@
789797
790798 value = rkisp_read(stats_vdev->dev, ISP21_RAWAWB_CTRL, true);
791799 if (value & ISP2X_3A_MEAS_DONE)
792
- rkisp_write(stats_vdev->dev, ISP21_RAWAWB_CTRL, value, true);
800
+ isp_module_done(stats_vdev, ISP21_RAWAWB_CTRL, value);
793801 return 0;
794802 }
795803
....@@ -800,8 +808,8 @@
800808
801809 value = rkisp_read(stats_vdev->dev, ISP_RAWAF_CTRL, true);
802810 if (value & ISP2X_3A_MEAS_DONE) {
803
- rkisp_write(stats_vdev->dev, ISP_RAWAF_CTRL, value, true);
804811 rkisp_write(stats_vdev->dev, ISP_RAWAF_INT_STATE, 0, true);
812
+ isp_module_done(stats_vdev, ISP_RAWAF_CTRL, value);
805813 }
806814 return 0;
807815 }
....@@ -828,7 +836,7 @@
828836
829837 value = rkisp_read(stats_vdev->dev, addr + RAWAE_BIG_CTRL, true);
830838 if (value & ISP2X_3A_MEAS_DONE)
831
- rkisp_write(stats_vdev->dev, addr + RAWAE_BIG_CTRL, value, true);
839
+ isp_module_done(stats_vdev, addr + RAWAE_BIG_CTRL, value);
832840 return 0;
833841 }
834842
....@@ -854,7 +862,7 @@
854862
855863 value = rkisp_read(stats_vdev->dev, addr + ISP_RAWHIST_BIG_CTRL, true);
856864 if (value & ISP2X_3A_MEAS_DONE)
857
- rkisp_write(stats_vdev->dev, addr + ISP_RAWHIST_BIG_CTRL, value, true);
865
+ isp_module_done(stats_vdev, addr + ISP_RAWHIST_BIG_CTRL, value);
858866 return 0;
859867 }
860868
....@@ -901,7 +909,7 @@
901909
902910 value = rkisp_read(stats_vdev->dev, ISP_RAWAE_LITE_CTRL, true);
903911 if (value & ISP2X_3A_MEAS_DONE)
904
- rkisp_write(stats_vdev->dev, ISP_RAWAE_LITE_CTRL, value, true);
912
+ isp_module_done(stats_vdev, ISP_RAWAE_LITE_CTRL, value);
905913 return 0;
906914 }
907915
....@@ -912,7 +920,7 @@
912920
913921 value = rkisp_read(stats_vdev->dev, ISP_RAWHIST_LITE_CTRL, true);
914922 if (value & ISP2X_3A_MEAS_DONE)
915
- rkisp_write(stats_vdev->dev, ISP_RAWHIST_LITE_CTRL, value, true);
923
+ isp_module_done(stats_vdev, ISP_RAWHIST_LITE_CTRL, value);
916924 return 0;
917925 }
918926
....@@ -940,6 +948,7 @@
940948 struct rkisp_isp21_stat_buffer *cur_stat_buf = NULL;
941949 struct rkisp_stats_v21_ops *ops =
942950 (struct rkisp_stats_v21_ops *)stats_vdev->priv_ops;
951
+ struct rkisp_isp_params_vdev *params_vdev = &stats_vdev->dev->params_vdev;
943952 int ret = 0;
944953
945954 cur_frame_id = meas_work->frame_id;
....@@ -958,6 +967,7 @@
958967 cur_stat_buf =
959968 (struct rkisp_isp21_stat_buffer *)(cur_buf->vaddr[0]);
960969 cur_stat_buf->frame_id = cur_frame_id;
970
+ cur_stat_buf->params_id = params_vdev->cur_frame_id;
961971 }
962972
963973 if (meas_work->isp_ris & ISP2X_AFM_SUM_OF)