1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Support for Intel Camera Imaging ISP subsystem. 4 * Copyright (c) 2010 - 2015, Intel Corporation. 5 */ 6 7 #ifndef _IA_CSS_ISP_PARAM_H_ 8 #define _IA_CSS_ISP_PARAM_H_ 9 10 #include <ia_css_err.h> 11 #include "ia_css_isp_param_types.h" 12 13 /* Set functions for parameter memory descriptors */ 14 void 15 ia_css_isp_param_set_mem_init( 16 struct ia_css_isp_param_host_segments *mem_init, 17 enum ia_css_param_class pclass, 18 enum ia_css_isp_memories mem, 19 char *address, size_t size); 20 21 void 22 ia_css_isp_param_set_css_mem_init( 23 struct ia_css_isp_param_css_segments *mem_init, 24 enum ia_css_param_class pclass, 25 enum ia_css_isp_memories mem, 26 ia_css_ptr address, size_t size); 27 28 void 29 ia_css_isp_param_set_isp_mem_init( 30 struct ia_css_isp_param_isp_segments *mem_init, 31 enum ia_css_param_class pclass, 32 enum ia_css_isp_memories mem, 33 u32 address, size_t size); 34 35 /* Get functions for parameter memory descriptors */ 36 const struct ia_css_host_data * 37 ia_css_isp_param_get_mem_init( 38 const struct ia_css_isp_param_host_segments *mem_init, 39 enum ia_css_param_class pclass, 40 enum ia_css_isp_memories mem); 41 42 const struct ia_css_data * 43 ia_css_isp_param_get_css_mem_init( 44 const struct ia_css_isp_param_css_segments *mem_init, 45 enum ia_css_param_class pclass, 46 enum ia_css_isp_memories mem); 47 48 const struct ia_css_isp_data * 49 ia_css_isp_param_get_isp_mem_init( 50 const struct ia_css_isp_param_isp_segments *mem_init, 51 enum ia_css_param_class pclass, 52 enum ia_css_isp_memories mem); 53 54 /* Initialize the memory interface sizes and addresses */ 55 void 56 ia_css_init_memory_interface( 57 struct ia_css_isp_param_css_segments *isp_mem_if, 58 const struct ia_css_isp_param_host_segments *mem_params, 59 const struct ia_css_isp_param_css_segments *css_params); 60 61 /* Allocate memory parameters */ 62 int 63 ia_css_isp_param_allocate_isp_parameters( 64 struct ia_css_isp_param_host_segments *mem_params, 65 struct ia_css_isp_param_css_segments *css_params, 66 const struct ia_css_isp_param_isp_segments *mem_initializers); 67 68 /* Destroy memory parameters */ 69 void 70 ia_css_isp_param_destroy_isp_parameters( 71 struct ia_css_isp_param_host_segments *mem_params, 72 struct ia_css_isp_param_css_segments *css_params); 73 74 /* Load fw parameters */ 75 void 76 ia_css_isp_param_load_fw_params( 77 const char *fw, 78 union ia_css_all_memory_offsets *mem_offsets, 79 const struct ia_css_isp_param_memory_offsets *memory_offsets, 80 bool init); 81 82 /* Copy host parameter images to ddr */ 83 int 84 ia_css_isp_param_copy_isp_mem_if_to_ddr( 85 struct ia_css_isp_param_css_segments *ddr, 86 const struct ia_css_isp_param_host_segments *host, 87 enum ia_css_param_class pclass); 88 89 /* Enable a pipeline by setting the control field in the isp dmem parameters */ 90 void 91 ia_css_isp_param_enable_pipeline( 92 const struct ia_css_isp_param_host_segments *mem_params); 93 94 #endif /* _IA_CSS_ISP_PARAM_H_ */ 95