19df9ee65SMauro Carvalho Chehab // SPDX-License-Identifier: GPL-2.0
29df9ee65SMauro Carvalho Chehab /*
39df9ee65SMauro Carvalho Chehab  * Support for Intel Camera Imaging ISP subsystem.
49df9ee65SMauro Carvalho Chehab  * Copyright (c) 2015, Intel Corporation.
59df9ee65SMauro Carvalho Chehab  *
69df9ee65SMauro Carvalho Chehab  * This program is free software; you can redistribute it and/or modify it
79df9ee65SMauro Carvalho Chehab  * under the terms and conditions of the GNU General Public License,
89df9ee65SMauro Carvalho Chehab  * version 2, as published by the Free Software Foundation.
99df9ee65SMauro Carvalho Chehab  *
109df9ee65SMauro Carvalho Chehab  * This program is distributed in the hope it will be useful, but WITHOUT
119df9ee65SMauro Carvalho Chehab  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
129df9ee65SMauro Carvalho Chehab  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
139df9ee65SMauro Carvalho Chehab  * more details.
149df9ee65SMauro Carvalho Chehab  */
159df9ee65SMauro Carvalho Chehab 
169df9ee65SMauro Carvalho Chehab /* Generated code: do not edit or commmit. */
179df9ee65SMauro Carvalho Chehab 
189df9ee65SMauro Carvalho Chehab #define IA_CSS_INCLUDE_CONFIGURATIONS
199df9ee65SMauro Carvalho Chehab #include "ia_css_pipeline.h"
209df9ee65SMauro Carvalho Chehab #include "ia_css_isp_configs.h"
219df9ee65SMauro Carvalho Chehab #include "ia_css_debug.h"
229df9ee65SMauro Carvalho Chehab #include "assert_support.h"
239df9ee65SMauro Carvalho Chehab 
ia_css_configure_iterator(const struct ia_css_binary * binary,const struct ia_css_iterator_configuration * config_dmem)24*08ae0ffdSMauro Carvalho Chehab int ia_css_configure_iterator(const struct ia_css_binary *binary,
259df9ee65SMauro Carvalho Chehab 			      const struct ia_css_iterator_configuration *config_dmem)
269df9ee65SMauro Carvalho Chehab {
279df9ee65SMauro Carvalho Chehab 	unsigned int offset = 0;
289df9ee65SMauro Carvalho Chehab 	unsigned int size   = 0;
299df9ee65SMauro Carvalho Chehab 
30*08ae0ffdSMauro Carvalho Chehab 	ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "%s:\n", __func__);
31*08ae0ffdSMauro Carvalho Chehab 
32*08ae0ffdSMauro Carvalho Chehab 	if (!binary->info->mem_offsets.offsets.config)
33*08ae0ffdSMauro Carvalho Chehab 		return 0;
34*08ae0ffdSMauro Carvalho Chehab 
359df9ee65SMauro Carvalho Chehab 	size = binary->info->mem_offsets.offsets.config->dmem.iterator.size;
36*08ae0ffdSMauro Carvalho Chehab 	if (!size)
37*08ae0ffdSMauro Carvalho Chehab 		return 0;
38*08ae0ffdSMauro Carvalho Chehab 
399df9ee65SMauro Carvalho Chehab 	offset = binary->info->mem_offsets.offsets.config->dmem.iterator.offset;
40*08ae0ffdSMauro Carvalho Chehab 
419df9ee65SMauro Carvalho Chehab 	ia_css_iterator_config((struct sh_css_isp_iterator_isp_config *)
429df9ee65SMauro Carvalho Chehab 			       &binary->mem_params.params[IA_CSS_PARAM_CLASS_CONFIG][IA_CSS_ISP_DMEM].address[offset],
439df9ee65SMauro Carvalho Chehab 			       config_dmem, size);
44*08ae0ffdSMauro Carvalho Chehab 	return 0;
459df9ee65SMauro Carvalho Chehab }
469df9ee65SMauro Carvalho Chehab 
ia_css_configure_copy_output(const struct ia_css_binary * binary,const struct ia_css_copy_output_configuration * config_dmem)47*08ae0ffdSMauro Carvalho Chehab int ia_css_configure_copy_output(const struct ia_css_binary *binary,
489df9ee65SMauro Carvalho Chehab 				 const struct ia_css_copy_output_configuration *config_dmem)
499df9ee65SMauro Carvalho Chehab {
509df9ee65SMauro Carvalho Chehab 	unsigned int offset = 0;
519df9ee65SMauro Carvalho Chehab 	unsigned int size   = 0;
529df9ee65SMauro Carvalho Chehab 
53*08ae0ffdSMauro Carvalho Chehab 	ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "%s:\n", __func__);
54*08ae0ffdSMauro Carvalho Chehab 
55*08ae0ffdSMauro Carvalho Chehab 	if (!binary->info->mem_offsets.offsets.config)
56*08ae0ffdSMauro Carvalho Chehab 		return 0;
57*08ae0ffdSMauro Carvalho Chehab 
589df9ee65SMauro Carvalho Chehab 	size = binary->info->mem_offsets.offsets.config->dmem.copy_output.size;
59*08ae0ffdSMauro Carvalho Chehab 	if (!size)
60*08ae0ffdSMauro Carvalho Chehab 		return 0;
61*08ae0ffdSMauro Carvalho Chehab 
629df9ee65SMauro Carvalho Chehab 	offset = binary->info->mem_offsets.offsets.config->dmem.copy_output.offset;
63*08ae0ffdSMauro Carvalho Chehab 
649df9ee65SMauro Carvalho Chehab 	ia_css_copy_output_config((struct sh_css_isp_copy_output_isp_config *)
659df9ee65SMauro Carvalho Chehab 				  &binary->mem_params.params[IA_CSS_PARAM_CLASS_CONFIG][IA_CSS_ISP_DMEM].address[offset],
669df9ee65SMauro Carvalho Chehab 				  config_dmem, size);
67*08ae0ffdSMauro Carvalho Chehab 	return 0;
689df9ee65SMauro Carvalho Chehab }
699df9ee65SMauro Carvalho Chehab 
709df9ee65SMauro Carvalho Chehab /* Code generated by genparam/genconfig.c:gen_configure_function() */
719df9ee65SMauro Carvalho Chehab 
ia_css_configure_crop(const struct ia_css_binary * binary,const struct ia_css_crop_configuration * config_dmem)72*08ae0ffdSMauro Carvalho Chehab int ia_css_configure_crop(const struct ia_css_binary *binary,
739df9ee65SMauro Carvalho Chehab 			  const struct ia_css_crop_configuration *config_dmem)
749df9ee65SMauro Carvalho Chehab {
759df9ee65SMauro Carvalho Chehab 	unsigned int offset = 0;
769df9ee65SMauro Carvalho Chehab 	unsigned int size   = 0;
779df9ee65SMauro Carvalho Chehab 
78*08ae0ffdSMauro Carvalho Chehab 	ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "%s:\n", __func__);
79*08ae0ffdSMauro Carvalho Chehab 
80*08ae0ffdSMauro Carvalho Chehab 	if (!binary->info->mem_offsets.offsets.config)
81*08ae0ffdSMauro Carvalho Chehab 		return 0;
82*08ae0ffdSMauro Carvalho Chehab 
839df9ee65SMauro Carvalho Chehab 	size = binary->info->mem_offsets.offsets.config->dmem.crop.size;
84*08ae0ffdSMauro Carvalho Chehab 	if (!size)
85*08ae0ffdSMauro Carvalho Chehab 		return 0;
86*08ae0ffdSMauro Carvalho Chehab 
879df9ee65SMauro Carvalho Chehab 	offset = binary->info->mem_offsets.offsets.config->dmem.crop.offset;
88*08ae0ffdSMauro Carvalho Chehab 
899df9ee65SMauro Carvalho Chehab 	ia_css_crop_config((struct sh_css_isp_crop_isp_config *)
909df9ee65SMauro Carvalho Chehab 			   &binary->mem_params.params[IA_CSS_PARAM_CLASS_CONFIG][IA_CSS_ISP_DMEM].address[offset],
919df9ee65SMauro Carvalho Chehab 			   config_dmem, size);
92*08ae0ffdSMauro Carvalho Chehab 	return 0;
939df9ee65SMauro Carvalho Chehab }
949df9ee65SMauro Carvalho Chehab 
ia_css_configure_fpn(const struct ia_css_binary * binary,const struct ia_css_fpn_configuration * config_dmem)95*08ae0ffdSMauro Carvalho Chehab int ia_css_configure_fpn(const struct ia_css_binary *binary,
969df9ee65SMauro Carvalho Chehab 			 const struct ia_css_fpn_configuration *config_dmem)
979df9ee65SMauro Carvalho Chehab {
989df9ee65SMauro Carvalho Chehab 	unsigned int offset = 0;
999df9ee65SMauro Carvalho Chehab 	unsigned int size   = 0;
1009df9ee65SMauro Carvalho Chehab 
101*08ae0ffdSMauro Carvalho Chehab 	ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "%s:\n", __func__);
102*08ae0ffdSMauro Carvalho Chehab 
103*08ae0ffdSMauro Carvalho Chehab 	if (!binary->info->mem_offsets.offsets.config)
104*08ae0ffdSMauro Carvalho Chehab 		return 0;
105*08ae0ffdSMauro Carvalho Chehab 
1069df9ee65SMauro Carvalho Chehab 	size   = binary->info->mem_offsets.offsets.config->dmem.fpn.size;
107*08ae0ffdSMauro Carvalho Chehab 	if (!size)
108*08ae0ffdSMauro Carvalho Chehab 		return 0;
109*08ae0ffdSMauro Carvalho Chehab 
1109df9ee65SMauro Carvalho Chehab 	offset = binary->info->mem_offsets.offsets.config->dmem.fpn.offset;
1119df9ee65SMauro Carvalho Chehab 	ia_css_fpn_config((struct sh_css_isp_fpn_isp_config *)
1129df9ee65SMauro Carvalho Chehab 			  &binary->mem_params.params[IA_CSS_PARAM_CLASS_CONFIG][IA_CSS_ISP_DMEM].address[offset],
1139df9ee65SMauro Carvalho Chehab 			  config_dmem, size);
114*08ae0ffdSMauro Carvalho Chehab 	return 0;
1159df9ee65SMauro Carvalho Chehab }
1169df9ee65SMauro Carvalho Chehab 
ia_css_configure_dvs(const struct ia_css_binary * binary,const struct ia_css_dvs_configuration * config_dmem)117*08ae0ffdSMauro Carvalho Chehab int ia_css_configure_dvs(const struct ia_css_binary *binary,
1189df9ee65SMauro Carvalho Chehab 			 const struct ia_css_dvs_configuration *config_dmem)
1199df9ee65SMauro Carvalho Chehab {
1209df9ee65SMauro Carvalho Chehab 	unsigned int offset = 0;
1219df9ee65SMauro Carvalho Chehab 	unsigned int size   = 0;
1229df9ee65SMauro Carvalho Chehab 
123*08ae0ffdSMauro Carvalho Chehab 	ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "%s:\n", __func__);
124*08ae0ffdSMauro Carvalho Chehab 
125*08ae0ffdSMauro Carvalho Chehab 	if (!binary->info->mem_offsets.offsets.config)
126*08ae0ffdSMauro Carvalho Chehab 		return 0;
127*08ae0ffdSMauro Carvalho Chehab 
1289df9ee65SMauro Carvalho Chehab 	size = binary->info->mem_offsets.offsets.config->dmem.dvs.size;
129*08ae0ffdSMauro Carvalho Chehab 	if (!size)
130*08ae0ffdSMauro Carvalho Chehab 		return 0;
131*08ae0ffdSMauro Carvalho Chehab 
1329df9ee65SMauro Carvalho Chehab 	offset = binary->info->mem_offsets.offsets.config->dmem.dvs.offset;
1339df9ee65SMauro Carvalho Chehab 	ia_css_dvs_config((struct sh_css_isp_dvs_isp_config *)
1349df9ee65SMauro Carvalho Chehab 			  &binary->mem_params.params[IA_CSS_PARAM_CLASS_CONFIG][IA_CSS_ISP_DMEM].address[offset],
1359df9ee65SMauro Carvalho Chehab 			  config_dmem, size);
136*08ae0ffdSMauro Carvalho Chehab 	return 0;
1379df9ee65SMauro Carvalho Chehab }
1389df9ee65SMauro Carvalho Chehab 
ia_css_configure_qplane(const struct ia_css_binary * binary,const struct ia_css_qplane_configuration * config_dmem)139*08ae0ffdSMauro Carvalho Chehab int ia_css_configure_qplane(const struct ia_css_binary *binary,
1409df9ee65SMauro Carvalho Chehab 			    const struct ia_css_qplane_configuration *config_dmem)
1419df9ee65SMauro Carvalho Chehab {
1429df9ee65SMauro Carvalho Chehab 	unsigned int offset = 0;
1439df9ee65SMauro Carvalho Chehab 	unsigned int size   = 0;
1449df9ee65SMauro Carvalho Chehab 
145*08ae0ffdSMauro Carvalho Chehab 	ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "%s:\n", __func__);
146*08ae0ffdSMauro Carvalho Chehab 
147*08ae0ffdSMauro Carvalho Chehab 	if (!binary->info->mem_offsets.offsets.config)
148*08ae0ffdSMauro Carvalho Chehab 		return 0;
149*08ae0ffdSMauro Carvalho Chehab 
1509df9ee65SMauro Carvalho Chehab 	size = binary->info->mem_offsets.offsets.config->dmem.qplane.size;
151*08ae0ffdSMauro Carvalho Chehab 	if (!size)
152*08ae0ffdSMauro Carvalho Chehab 		return 0;
153*08ae0ffdSMauro Carvalho Chehab 
1549df9ee65SMauro Carvalho Chehab 	offset = binary->info->mem_offsets.offsets.config->dmem.qplane.offset;
1559df9ee65SMauro Carvalho Chehab 	ia_css_qplane_config((struct sh_css_isp_qplane_isp_config *)
1569df9ee65SMauro Carvalho Chehab 			     &binary->mem_params.params[IA_CSS_PARAM_CLASS_CONFIG][IA_CSS_ISP_DMEM].address[offset],
1579df9ee65SMauro Carvalho Chehab 			     config_dmem, size);
158*08ae0ffdSMauro Carvalho Chehab 
159*08ae0ffdSMauro Carvalho Chehab 	return 0;
1609df9ee65SMauro Carvalho Chehab }
1619df9ee65SMauro Carvalho Chehab 
ia_css_configure_output0(const struct ia_css_binary * binary,const struct ia_css_output0_configuration * config_dmem)162*08ae0ffdSMauro Carvalho Chehab int ia_css_configure_output0(const struct ia_css_binary *binary,
1639df9ee65SMauro Carvalho Chehab 			     const struct ia_css_output0_configuration *config_dmem)
1649df9ee65SMauro Carvalho Chehab {
1659df9ee65SMauro Carvalho Chehab 	unsigned int offset = 0;
1669df9ee65SMauro Carvalho Chehab 	unsigned int size   = 0;
1679df9ee65SMauro Carvalho Chehab 
168*08ae0ffdSMauro Carvalho Chehab 	ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "%s:\n", __func__);
169*08ae0ffdSMauro Carvalho Chehab 
170*08ae0ffdSMauro Carvalho Chehab 	if (!binary->info->mem_offsets.offsets.config)
171*08ae0ffdSMauro Carvalho Chehab 		return 0;
172*08ae0ffdSMauro Carvalho Chehab 
1739df9ee65SMauro Carvalho Chehab 	size = binary->info->mem_offsets.offsets.config->dmem.output0.size;
174*08ae0ffdSMauro Carvalho Chehab 	if (!size)
175*08ae0ffdSMauro Carvalho Chehab 		return 0;
176*08ae0ffdSMauro Carvalho Chehab 
1779df9ee65SMauro Carvalho Chehab 	offset = binary->info->mem_offsets.offsets.config->dmem.output0.offset;
178*08ae0ffdSMauro Carvalho Chehab 
1799df9ee65SMauro Carvalho Chehab 	ia_css_output0_config((struct sh_css_isp_output_isp_config *)
1809df9ee65SMauro Carvalho Chehab 			      &binary->mem_params.params[IA_CSS_PARAM_CLASS_CONFIG][IA_CSS_ISP_DMEM].address[offset],
1819df9ee65SMauro Carvalho Chehab 			      config_dmem, size);
182*08ae0ffdSMauro Carvalho Chehab 	return 0;
1839df9ee65SMauro Carvalho Chehab }
1849df9ee65SMauro Carvalho Chehab 
ia_css_configure_output1(const struct ia_css_binary * binary,const struct ia_css_output1_configuration * config_dmem)185*08ae0ffdSMauro Carvalho Chehab int ia_css_configure_output1(const struct ia_css_binary *binary,
1869df9ee65SMauro Carvalho Chehab 			     const struct ia_css_output1_configuration *config_dmem)
1879df9ee65SMauro Carvalho Chehab {
1889df9ee65SMauro Carvalho Chehab 	unsigned int offset = 0;
1899df9ee65SMauro Carvalho Chehab 	unsigned int size   = 0;
1909df9ee65SMauro Carvalho Chehab 
191*08ae0ffdSMauro Carvalho Chehab 	ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "%s:\n", __func__);
192*08ae0ffdSMauro Carvalho Chehab 
193*08ae0ffdSMauro Carvalho Chehab 	if (!binary->info->mem_offsets.offsets.config)
194*08ae0ffdSMauro Carvalho Chehab 		return 0;
195*08ae0ffdSMauro Carvalho Chehab 
1969df9ee65SMauro Carvalho Chehab 	size = binary->info->mem_offsets.offsets.config->dmem.output1.size;
197*08ae0ffdSMauro Carvalho Chehab 	if (!size)
198*08ae0ffdSMauro Carvalho Chehab 		return 0;
199*08ae0ffdSMauro Carvalho Chehab 
2009df9ee65SMauro Carvalho Chehab 	offset = binary->info->mem_offsets.offsets.config->dmem.output1.offset;
201*08ae0ffdSMauro Carvalho Chehab 
2029df9ee65SMauro Carvalho Chehab 	ia_css_output1_config((struct sh_css_isp_output_isp_config *)
2039df9ee65SMauro Carvalho Chehab 			      &binary->mem_params.params[IA_CSS_PARAM_CLASS_CONFIG][IA_CSS_ISP_DMEM].address[offset],
2049df9ee65SMauro Carvalho Chehab 			      config_dmem, size);
205*08ae0ffdSMauro Carvalho Chehab 	return 0;
2069df9ee65SMauro Carvalho Chehab }
2079df9ee65SMauro Carvalho Chehab 
ia_css_configure_output(const struct ia_css_binary * binary,const struct ia_css_output_configuration * config_dmem)208*08ae0ffdSMauro Carvalho Chehab int ia_css_configure_output(const struct ia_css_binary *binary,
2099df9ee65SMauro Carvalho Chehab 			    const struct ia_css_output_configuration *config_dmem)
2109df9ee65SMauro Carvalho Chehab {
2119df9ee65SMauro Carvalho Chehab 	unsigned int offset = 0;
2129df9ee65SMauro Carvalho Chehab 	unsigned int size   = 0;
2139df9ee65SMauro Carvalho Chehab 
214*08ae0ffdSMauro Carvalho Chehab 	ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "%s:\n", __func__);
215*08ae0ffdSMauro Carvalho Chehab 
216*08ae0ffdSMauro Carvalho Chehab 	if (!binary->info->mem_offsets.offsets.config)
217*08ae0ffdSMauro Carvalho Chehab 		return 0;
218*08ae0ffdSMauro Carvalho Chehab 
2199df9ee65SMauro Carvalho Chehab 	size = binary->info->mem_offsets.offsets.config->dmem.output.size;
220*08ae0ffdSMauro Carvalho Chehab 	if (!size)
221*08ae0ffdSMauro Carvalho Chehab 		return 0;
222*08ae0ffdSMauro Carvalho Chehab 
2239df9ee65SMauro Carvalho Chehab 	offset = binary->info->mem_offsets.offsets.config->dmem.output.offset;
224*08ae0ffdSMauro Carvalho Chehab 
2259df9ee65SMauro Carvalho Chehab 	ia_css_output_config((struct sh_css_isp_output_isp_config *)
2269df9ee65SMauro Carvalho Chehab 			     &binary->mem_params.params[IA_CSS_PARAM_CLASS_CONFIG][IA_CSS_ISP_DMEM].address[offset],
2279df9ee65SMauro Carvalho Chehab 					     config_dmem, size);
228*08ae0ffdSMauro Carvalho Chehab 	return 0;
2299df9ee65SMauro Carvalho Chehab }
2309df9ee65SMauro Carvalho Chehab 
ia_css_configure_raw(const struct ia_css_binary * binary,const struct ia_css_raw_configuration * config_dmem)231*08ae0ffdSMauro Carvalho Chehab int ia_css_configure_raw(const struct ia_css_binary *binary,
2329df9ee65SMauro Carvalho Chehab 			 const struct ia_css_raw_configuration *config_dmem)
2339df9ee65SMauro Carvalho Chehab {
2349df9ee65SMauro Carvalho Chehab 	unsigned int offset = 0;
2359df9ee65SMauro Carvalho Chehab 	unsigned int size   = 0;
2369df9ee65SMauro Carvalho Chehab 
237*08ae0ffdSMauro Carvalho Chehab 	ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "%s:\n", __func__);
238*08ae0ffdSMauro Carvalho Chehab 
239*08ae0ffdSMauro Carvalho Chehab 	if (!binary->info->mem_offsets.offsets.config)
240*08ae0ffdSMauro Carvalho Chehab 		return 0;
241*08ae0ffdSMauro Carvalho Chehab 
2429df9ee65SMauro Carvalho Chehab 	size = binary->info->mem_offsets.offsets.config->dmem.raw.size;
243*08ae0ffdSMauro Carvalho Chehab 	if (!size)
244*08ae0ffdSMauro Carvalho Chehab 		return 0;
245*08ae0ffdSMauro Carvalho Chehab 
2469df9ee65SMauro Carvalho Chehab 	offset = binary->info->mem_offsets.offsets.config->dmem.raw.offset;
247*08ae0ffdSMauro Carvalho Chehab 
2489df9ee65SMauro Carvalho Chehab 	ia_css_raw_config((struct sh_css_isp_raw_isp_config *)
2499df9ee65SMauro Carvalho Chehab 			  &binary->mem_params.params[IA_CSS_PARAM_CLASS_CONFIG][IA_CSS_ISP_DMEM].address[offset],
2509df9ee65SMauro Carvalho Chehab 			  config_dmem, size);
251*08ae0ffdSMauro Carvalho Chehab 	return 0;
2529df9ee65SMauro Carvalho Chehab }
2539df9ee65SMauro Carvalho Chehab 
ia_css_configure_tnr(const struct ia_css_binary * binary,const struct ia_css_tnr_configuration * config_dmem)254*08ae0ffdSMauro Carvalho Chehab int ia_css_configure_tnr(const struct ia_css_binary *binary,
2559df9ee65SMauro Carvalho Chehab 			 const struct ia_css_tnr_configuration *config_dmem)
2569df9ee65SMauro Carvalho Chehab {
2579df9ee65SMauro Carvalho Chehab 	unsigned int offset = 0;
2589df9ee65SMauro Carvalho Chehab 	unsigned int size   = 0;
2599df9ee65SMauro Carvalho Chehab 
260*08ae0ffdSMauro Carvalho Chehab 	ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "%s:\n", __func__);
261*08ae0ffdSMauro Carvalho Chehab 
262*08ae0ffdSMauro Carvalho Chehab 	if (!binary->info->mem_offsets.offsets.config)
263*08ae0ffdSMauro Carvalho Chehab 		return 0;
264*08ae0ffdSMauro Carvalho Chehab 
2659df9ee65SMauro Carvalho Chehab 	size = binary->info->mem_offsets.offsets.config->dmem.tnr.size;
266*08ae0ffdSMauro Carvalho Chehab 	if (!size)
267*08ae0ffdSMauro Carvalho Chehab 		return 0;
268*08ae0ffdSMauro Carvalho Chehab 
2699df9ee65SMauro Carvalho Chehab 	offset = binary->info->mem_offsets.offsets.config->dmem.tnr.offset;
270*08ae0ffdSMauro Carvalho Chehab 
2719df9ee65SMauro Carvalho Chehab 	ia_css_tnr_config((struct sh_css_isp_tnr_isp_config *)
2729df9ee65SMauro Carvalho Chehab 			  &binary->mem_params.params[IA_CSS_PARAM_CLASS_CONFIG][IA_CSS_ISP_DMEM].address[offset],
2739df9ee65SMauro Carvalho Chehab 			  config_dmem, size);
274*08ae0ffdSMauro Carvalho Chehab 	return 0;
2759df9ee65SMauro Carvalho Chehab }
2769df9ee65SMauro Carvalho Chehab 
ia_css_configure_ref(const struct ia_css_binary * binary,const struct ia_css_ref_configuration * config_dmem)277*08ae0ffdSMauro Carvalho Chehab int ia_css_configure_ref(const struct ia_css_binary *binary,
2789df9ee65SMauro Carvalho Chehab 			 const struct ia_css_ref_configuration *config_dmem)
2799df9ee65SMauro Carvalho Chehab {
2809df9ee65SMauro Carvalho Chehab 	unsigned int offset = 0;
2819df9ee65SMauro Carvalho Chehab 	unsigned int size   = 0;
2829df9ee65SMauro Carvalho Chehab 
283*08ae0ffdSMauro Carvalho Chehab 	ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "%s:\n", __func__);
284*08ae0ffdSMauro Carvalho Chehab 
285*08ae0ffdSMauro Carvalho Chehab 	if (!binary->info->mem_offsets.offsets.config)
286*08ae0ffdSMauro Carvalho Chehab 		return 0;
287*08ae0ffdSMauro Carvalho Chehab 
2889df9ee65SMauro Carvalho Chehab 	size = binary->info->mem_offsets.offsets.config->dmem.ref.size;
289*08ae0ffdSMauro Carvalho Chehab 	if (!size)
290*08ae0ffdSMauro Carvalho Chehab 		return 0;
291*08ae0ffdSMauro Carvalho Chehab 
2929df9ee65SMauro Carvalho Chehab 	offset = binary->info->mem_offsets.offsets.config->dmem.ref.offset;
293*08ae0ffdSMauro Carvalho Chehab 
2949df9ee65SMauro Carvalho Chehab 	ia_css_ref_config((struct sh_css_isp_ref_isp_config *)
2959df9ee65SMauro Carvalho Chehab 			  &binary->mem_params.params[IA_CSS_PARAM_CLASS_CONFIG][IA_CSS_ISP_DMEM].address[offset],
2969df9ee65SMauro Carvalho Chehab 			  config_dmem, size);
297*08ae0ffdSMauro Carvalho Chehab 	return 0;
2989df9ee65SMauro Carvalho Chehab }
2999df9ee65SMauro Carvalho Chehab 
ia_css_configure_vf(const struct ia_css_binary * binary,const struct ia_css_vf_configuration * config_dmem)300*08ae0ffdSMauro Carvalho Chehab int ia_css_configure_vf(const struct ia_css_binary *binary,
3019df9ee65SMauro Carvalho Chehab 			const struct ia_css_vf_configuration *config_dmem)
3029df9ee65SMauro Carvalho Chehab {
3039df9ee65SMauro Carvalho Chehab 	unsigned int offset = 0;
3049df9ee65SMauro Carvalho Chehab 	unsigned int size   = 0;
3059df9ee65SMauro Carvalho Chehab 
306*08ae0ffdSMauro Carvalho Chehab 	ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "%s:\n", __func__);
307*08ae0ffdSMauro Carvalho Chehab 
308*08ae0ffdSMauro Carvalho Chehab 	if (!binary->info->mem_offsets.offsets.config)
309*08ae0ffdSMauro Carvalho Chehab 		return 0;
310*08ae0ffdSMauro Carvalho Chehab 
3119df9ee65SMauro Carvalho Chehab 	size = binary->info->mem_offsets.offsets.config->dmem.vf.size;
312*08ae0ffdSMauro Carvalho Chehab 	if (!size)
313*08ae0ffdSMauro Carvalho Chehab 		return 0;
314*08ae0ffdSMauro Carvalho Chehab 
3159df9ee65SMauro Carvalho Chehab 	offset = binary->info->mem_offsets.offsets.config->dmem.vf.offset;
316*08ae0ffdSMauro Carvalho Chehab 
3179df9ee65SMauro Carvalho Chehab 	ia_css_vf_config((struct sh_css_isp_vf_isp_config *)
3189df9ee65SMauro Carvalho Chehab 			 &binary->mem_params.params[IA_CSS_PARAM_CLASS_CONFIG][IA_CSS_ISP_DMEM].address[offset],
3199df9ee65SMauro Carvalho Chehab 			 config_dmem, size);
320*08ae0ffdSMauro Carvalho Chehab 	return 0;
3219df9ee65SMauro Carvalho Chehab }
322