GNU Linux-libre 4.14.290-gnu1
[releases.git] / drivers / staging / media / atomisp / pci / atomisp2 / css2400 / isp / kernels / ctc / ctc2 / ia_css_ctc2_param.h
1 /*
2  * Support for Intel Camera Imaging ISP subsystem.
3  * Copyright (c) 2015, Intel Corporation.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms and conditions of the GNU General Public License,
7  * version 2, as published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
12  * more details.
13  */
14
15 #ifndef __IA_CSS_CTC2_PARAM_H
16 #define __IA_CSS_CTC2_PARAM_H
17
18 #define IA_CSS_CTC_COEF_SHIFT          13
19 #include "vmem.h" /* needed for VMEM_ARRAY */
20
21 /* CTC (Chroma Tone Control)ISP Parameters */
22
23 /*VMEM Luma params*/
24 struct ia_css_isp_ctc2_vmem_params {
25         /**< Gains by Y(Luma) at Y = 0.0,Y_X1, Y_X2, Y_X3, Y_X4*/
26         VMEM_ARRAY(y_x, ISP_VEC_NELEMS);
27         /** kneepoints by Y(Luma) 0.0, y_x1, y_x2, y _x3, y_x4*/
28         VMEM_ARRAY(y_y, ISP_VEC_NELEMS);
29         /** Slopes of lines interconnecting
30          *  0.0 -> y_x1 -> y_x2 -> y _x3 -> y_x4 -> 1.0*/
31         VMEM_ARRAY(e_y_slope, ISP_VEC_NELEMS);
32 };
33
34 /*DMEM Chroma params*/
35 struct ia_css_isp_ctc2_dmem_params {
36
37         /** Gains by UV(Chroma) under kneepoints uv_x0 and uv_x1*/
38         int32_t uv_y0;
39         int32_t uv_y1;
40
41         /** Kneepoints by UV(Chroma)- uv_x0 and uv_x1*/
42         int32_t uv_x0;
43         int32_t uv_x1;
44
45         /** Slope of line interconnecting uv_x0 -> uv_x1*/
46         int32_t uv_dydx;
47
48 };
49 #endif /* __IA_CSS_CTC2_PARAM_H */