1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* Copyright (c) 2022 Rockchip Electronics Co., Ltd. */
3
4 #ifndef _RKISP_ISP_STATS_V32_H
5 #define _RKISP_ISP_STATS_V32_H
6
7 #include <linux/rk-isp1-config.h>
8 #include <linux/interrupt.h>
9 #include <linux/kfifo.h>
10 #include "common.h"
11
12 #define ISP32_RD_STATS_BUF_SIZE 0x10000
13
14 struct rkisp_isp_stats_vdev;
15 struct rkisp_stats_ops_v32 {
16 int (*get_rawawb_meas)(struct rkisp_isp_stats_vdev *stats_vdev,
17 struct rkisp32_isp_stat_buffer *pbuf);
18 int (*get_rawaf_meas)(struct rkisp_isp_stats_vdev *stats_vdev,
19 struct rkisp32_isp_stat_buffer *pbuf);
20 int (*get_rawae0_meas)(struct rkisp_isp_stats_vdev *stats_vdev,
21 struct rkisp32_isp_stat_buffer *pbuf);
22 int (*get_rawhst0_meas)(struct rkisp_isp_stats_vdev *stats_vdev,
23 struct rkisp32_isp_stat_buffer *pbuf);
24 int (*get_rawae1_meas)(struct rkisp_isp_stats_vdev *stats_vdev,
25 struct rkisp32_isp_stat_buffer *pbuf);
26 int (*get_rawhst1_meas)(struct rkisp_isp_stats_vdev *stats_vdev,
27 struct rkisp32_isp_stat_buffer *pbuf);
28 int (*get_rawae2_meas)(struct rkisp_isp_stats_vdev *stats_vdev,
29 struct rkisp32_isp_stat_buffer *pbuf);
30 int (*get_rawhst2_meas)(struct rkisp_isp_stats_vdev *stats_vdev,
31 struct rkisp32_isp_stat_buffer *pbuf);
32 int (*get_rawae3_meas)(struct rkisp_isp_stats_vdev *stats_vdev,
33 struct rkisp32_isp_stat_buffer *pbuf);
34 int (*get_rawhst3_meas)(struct rkisp_isp_stats_vdev *stats_vdev,
35 struct rkisp32_isp_stat_buffer *pbuf);
36 int (*get_bls_stats)(struct rkisp_isp_stats_vdev *stats_vdev, void *pbuf);
37 int (*get_dhaz_stats)(struct rkisp_isp_stats_vdev *stats_vdev, void *pbuf);
38 int (*get_vsm_stats)(struct rkisp_isp_stats_vdev *stats_vdev,
39 struct rkisp32_isp_stat_buffer *pbuf);
40 };
41
42 #if IS_ENABLED(CONFIG_VIDEO_ROCKCHIP_ISP_VERSION_V32)
43 void rkisp_stats_first_ddr_config_v32(struct rkisp_isp_stats_vdev *stats_vdev);
44 void rkisp_stats_next_ddr_config_v32(struct rkisp_isp_stats_vdev *stats_vdev);
45 void rkisp_init_stats_vdev_v32(struct rkisp_isp_stats_vdev *stats_vdev);
46 void rkisp_uninit_stats_vdev_v32(struct rkisp_isp_stats_vdev *stats_vdev);
47 #else
rkisp_stats_first_ddr_config_v32(struct rkisp_isp_stats_vdev * stats_vdev)48 static inline void rkisp_stats_first_ddr_config_v32(struct rkisp_isp_stats_vdev *stats_vdev) {}
rkisp_stats_next_ddr_config_v32(struct rkisp_isp_stats_vdev * stats_vdev)49 static inline void rkisp_stats_next_ddr_config_v32(struct rkisp_isp_stats_vdev *stats_vdev) {}
rkisp_init_stats_vdev_v32(struct rkisp_isp_stats_vdev * stats_vdev)50 static inline void rkisp_init_stats_vdev_v32(struct rkisp_isp_stats_vdev *stats_vdev) {}
rkisp_uninit_stats_vdev_v32(struct rkisp_isp_stats_vdev * stats_vdev)51 static inline void rkisp_uninit_stats_vdev_v32(struct rkisp_isp_stats_vdev *stats_vdev) {}
52 #endif
53
54 #endif /* _RKISP_ISP_STATS_V32_H */
55