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
42struct 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