1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Support for Intel Camera Imaging ISP subsystem.
4  * Copyright (c) 2015, Intel Corporation.
5  */
6 
7 #ifdef IA_CSS_INCLUDE_CONFIGURATIONS
8 #include "isp/kernels/crop/crop_1.0/ia_css_crop.host.h"
9 #include "isp/kernels/dvs/dvs_1.0/ia_css_dvs.host.h"
10 #include "isp/kernels/fpn/fpn_1.0/ia_css_fpn.host.h"
11 #include "isp/kernels/ob/ob_1.0/ia_css_ob.host.h"
12 #include "isp/kernels/output/output_1.0/ia_css_output.host.h"
13 #include "isp/kernels/qplane/qplane_2/ia_css_qplane.host.h"
14 #include "isp/kernels/raw/raw_1.0/ia_css_raw.host.h"
15 #include "isp/kernels/ref/ref_1.0/ia_css_ref.host.h"
16 #include "isp/kernels/s3a/s3a_1.0/ia_css_s3a.host.h"
17 #include "isp/kernels/tnr/tnr_1.0/ia_css_tnr.host.h"
18 #include "isp/kernels/vf/vf_1.0/ia_css_vf.host.h"
19 #include "isp/kernels/iterator/iterator_1.0/ia_css_iterator.host.h"
20 #include "isp/kernels/copy_output/copy_output_1.0/ia_css_copy_output.host.h"
21 #endif
22 
23 #ifndef _IA_CSS_ISP_CONFIG_H
24 #define _IA_CSS_ISP_CONFIG_H
25 
26 enum ia_css_configuration_ids {
27 	IA_CSS_ITERATOR_CONFIG_ID,
28 	IA_CSS_COPY_OUTPUT_CONFIG_ID,
29 	IA_CSS_CROP_CONFIG_ID,
30 	IA_CSS_FPN_CONFIG_ID,
31 	IA_CSS_DVS_CONFIG_ID,
32 	IA_CSS_QPLANE_CONFIG_ID,
33 	IA_CSS_OUTPUT0_CONFIG_ID,
34 	IA_CSS_OUTPUT1_CONFIG_ID,
35 	IA_CSS_OUTPUT_CONFIG_ID,
36 	IA_CSS_RAW_CONFIG_ID,
37 	IA_CSS_TNR_CONFIG_ID,
38 	IA_CSS_REF_CONFIG_ID,
39 	IA_CSS_VF_CONFIG_ID,
40 
41 	/* ISP 2401 */
42 	IA_CSS_SC_CONFIG_ID,
43 
44 	IA_CSS_NUM_CONFIGURATION_IDS
45 };
46 
47 struct ia_css_config_memory_offsets {
48 	struct {
49 		struct ia_css_isp_parameter iterator;
50 		struct ia_css_isp_parameter copy_output;
51 		struct ia_css_isp_parameter crop;
52 		struct ia_css_isp_parameter fpn;
53 		struct ia_css_isp_parameter dvs;
54 		struct ia_css_isp_parameter qplane;
55 		struct ia_css_isp_parameter output0;
56 		struct ia_css_isp_parameter output1;
57 		struct ia_css_isp_parameter output;
58 		struct ia_css_isp_parameter raw;
59 		struct ia_css_isp_parameter tnr;
60 		struct ia_css_isp_parameter ref;
61 		struct ia_css_isp_parameter vf;
62 	} dmem;
63 };
64 
65 #if defined(IA_CSS_INCLUDE_CONFIGURATIONS)
66 
67 #include "ia_css_stream.h"   /* struct ia_css_stream */
68 #include "ia_css_binary.h"   /* struct ia_css_binary */
69 
70 int ia_css_configure_iterator(const struct ia_css_binary *binary,
71 			      const struct ia_css_iterator_configuration *config_dmem);
72 
73 int ia_css_configure_copy_output(const struct ia_css_binary *binary,
74 				 const struct ia_css_copy_output_configuration *config_dmem);
75 
76 int ia_css_configure_crop(const struct ia_css_binary *binary,
77 			  const struct ia_css_crop_configuration *config_dmem);
78 
79 int ia_css_configure_fpn(const struct ia_css_binary *binary,
80 			 const struct ia_css_fpn_configuration *config_dmem);
81 
82 int ia_css_configure_dvs(const struct ia_css_binary *binary,
83 			 const struct ia_css_dvs_configuration *config_dmem);
84 
85 int ia_css_configure_qplane(const struct ia_css_binary *binary,
86 			    const struct ia_css_qplane_configuration *config_dmem);
87 int ia_css_configure_output0(const struct ia_css_binary *binary,
88 			     const struct ia_css_output0_configuration *config_dmem);
89 
90 int ia_css_configure_output1(const struct ia_css_binary *binary,
91 			     const struct ia_css_output1_configuration *config_dmem);
92 
93 int ia_css_configure_output(const struct ia_css_binary *binary,
94 			    const struct ia_css_output_configuration *config_dmem);
95 
96 int ia_css_configure_raw(const struct ia_css_binary *binary,
97 			 const struct ia_css_raw_configuration *config_dmem);
98 
99 int ia_css_configure_tnr(const struct ia_css_binary *binary,
100 			 const struct ia_css_tnr_configuration *config_dmem);
101 
102 int ia_css_configure_ref(const struct ia_css_binary *binary,
103 			 const struct ia_css_ref_configuration *config_dmem);
104 
105 int ia_css_configure_vf(const struct ia_css_binary *binary,
106 			const struct ia_css_vf_configuration *config_dmem);
107 
108 #endif /* IA_CSS_INCLUDE_CONFIGURATION */
109 
110 #endif /* _IA_CSS_ISP_CONFIG_H */
111