1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Support for Intel Camera Imaging ISP subsystem.
4  * Copyright (c) 2015, Intel Corporation.
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms and conditions of the GNU General Public License,
8  * version 2, as published by the Free Software Foundation.
9  *
10  * This program is distributed in the hope it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
13  * more details.
14  */
15 
16 #ifndef __IA_CSS_DPC2_PARAM_H
17 #define __IA_CSS_DPC2_PARAM_H
18 
19 #include "type_support.h"
20 #include "vmem.h" /* for VMEM_ARRAY*/
21 
22 /* 4 planes : GR, R, B, GB */
23 #define NUM_PLANES		4
24 
25 /* ToDo: Move this to testsetup */
26 #define MAX_FRAME_SIMDWIDTH	30
27 
28 /* 3 lines state per color plane input_line_state */
29 #define DPC2_STATE_INPUT_BUFFER_HEIGHT	(3 * NUM_PLANES)
30 /* Each plane has width equal to half frame line */
31 #define DPC2_STATE_INPUT_BUFFER_WIDTH	CEIL_DIV(MAX_FRAME_SIMDWIDTH, 2)
32 
33 /* 1 line state per color plane for local deviation state*/
34 #define DPC2_STATE_LOCAL_DEVIATION_BUFFER_HEIGHT	(1 * NUM_PLANES)
35 /* Each plane has width equal to half frame line */
36 #define DPC2_STATE_LOCAL_DEVIATION_BUFFER_WIDTH		CEIL_DIV(MAX_FRAME_SIMDWIDTH, 2)
37 
38 /* MINMAX state buffer stores 1 full input line (GR-R color line) */
39 #define DPC2_STATE_SECOND_MINMAX_BUFFER_HEIGHT	1
40 #define DPC2_STATE_SECOND_MINMAX_BUFFER_WIDTH	MAX_FRAME_SIMDWIDTH
41 
42 struct ia_css_isp_dpc2_params {
43 	s32 metric1;
44 	s32 metric2;
45 	s32 metric3;
46 	s32 wb_gain_gr;
47 	s32 wb_gain_r;
48 	s32 wb_gain_b;
49 	s32 wb_gain_gb;
50 };
51 
52 #endif /* __IA_CSS_DPC2_PARAM_H */
53