Merge remote-tracking branches 'asoc/topic/rl6231', 'asoc/topic/rt5514', 'asoc/topic...
[sfrench/cifs-2.6.git] / drivers / staging / media / atomisp / pci / atomisp2 / css2400 / isp / kernels / ynr / ynr_2 / ia_css_ynr2_types.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_YNR2_TYPES_H
16 #define __IA_CSS_YNR2_TYPES_H
17
18 /* @file
19 * CSS-API header file for Y(Luma) Noise Reduction.
20 */
21
22 /* Y(Luma) Noise Reduction configuration.
23  *
24  *  ISP block: YNR2 & YEE2
25  * (ISP1: YNR1 and YEE1 are used.)
26  * (ISP2: YNR1 and YEE1 are used for Preview/Video.)
27  *  ISP2: YNR2 and YEE2 are used for Still.
28  */
29 struct ia_css_ynr_config {
30         uint16_t edge_sense_gain_0;   /** Sensitivity of edge in dark area.
31                                         u13.0, [0,8191],
32                                         default 1000, ineffective 0 */
33         uint16_t edge_sense_gain_1;   /** Sensitivity of edge in bright area.
34                                         u13.0, [0,8191],
35                                         default 1000, ineffective 0 */
36         uint16_t corner_sense_gain_0; /** Sensitivity of corner in dark area.
37                                         u13.0, [0,8191],
38                                         default 1000, ineffective 0 */
39         uint16_t corner_sense_gain_1; /** Sensitivity of corner in bright area.
40                                         u13.0, [0,8191],
41                                         default 1000, ineffective 0 */
42 };
43
44 /* Fringe Control configuration.
45  *
46  *  ISP block: FC2 (FC2 is used with YNR2/YEE2.)
47  * (ISP1: FC2 is not used.)
48  * (ISP2: FC2 is not for Preview/Video.)
49  *  ISP2: FC2 is used for Still.
50  */
51 struct ia_css_fc_config {
52         uint8_t  gain_exp;   /** Common exponent of gains.
53                                 u8.0, [0,13],
54                                 default 1, ineffective 0 */
55         uint16_t coring_pos_0; /** Coring threshold for positive edge in dark area.
56                                 u0.13, [0,8191],
57                                 default 0(0), ineffective 0 */
58         uint16_t coring_pos_1; /** Coring threshold for positive edge in bright area.
59                                 u0.13, [0,8191],
60                                 default 0(0), ineffective 0 */
61         uint16_t coring_neg_0; /** Coring threshold for negative edge in dark area.
62                                 u0.13, [0,8191],
63                                 default 0(0), ineffective 0 */
64         uint16_t coring_neg_1; /** Coring threshold for negative edge in bright area.
65                                 u0.13, [0,8191],
66                                 default 0(0), ineffective 0 */
67         uint16_t gain_pos_0; /** Gain for positive edge in dark area.
68                                 u0.13, [0,8191],
69                                 default 4096(0.5), ineffective 0 */
70         uint16_t gain_pos_1; /** Gain for positive edge in bright area.
71                                 u0.13, [0,8191],
72                                 default 4096(0.5), ineffective 0 */
73         uint16_t gain_neg_0; /** Gain for negative edge in dark area.
74                                 u0.13, [0,8191],
75                                 default 4096(0.5), ineffective 0 */
76         uint16_t gain_neg_1; /** Gain for negative edge in bright area.
77                                 u0.13, [0,8191],
78                                 default 4096(0.5), ineffective 0 */
79         uint16_t crop_pos_0; /** Limit for positive edge in dark area.
80                                 u0.13, [0,8191],
81                                 default/ineffective 8191(almost 1.0) */
82         uint16_t crop_pos_1; /** Limit for positive edge in bright area.
83                                 u0.13, [0,8191],
84                                 default/ineffective 8191(almost 1.0) */
85         int16_t  crop_neg_0; /** Limit for negative edge in dark area.
86                                 s0.13, [-8192,0],
87                                 default/ineffective -8192(-1.0) */
88         int16_t  crop_neg_1; /** Limit for negative edge in bright area.
89                                 s0.13, [-8192,0],
90                                 default/ineffective -8192(-1.0) */
91 };
92
93 #endif /* __IA_CSS_YNR2_TYPES_H */
94