Merge tag 'batadv-net-for-davem-20171215' of git://git.open-mesh.org/linux-merge
[sfrench/cifs-2.6.git] / drivers / staging / media / atomisp / pci / atomisp2 / css2400 / isp / kernels / eed1_8 / ia_css_eed1_8_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_EED1_8_TYPES_H
16 #define __IA_CSS_EED1_8_TYPES_H
17
18 /* @file
19 * CSS-API header file for Edge Enhanced Demosaic parameters.
20 */
21
22
23 #include "type_support.h"
24
25 /**
26  * \brief EED1_8 public parameters.
27  * \details Struct with all parameters for the EED1.8 kernel that can be set
28  * from the CSS API.
29  */
30
31 /* parameter list is based on ISP261 CSS API public parameter list_all.xlsx from 28-01-2015 */
32
33 /* Number of segments + 1 segment used in edge reliability enhancement
34  * Ineffective: N/A
35  * Default:     9
36  */
37 #define IA_CSS_NUMBER_OF_DEW_ENHANCE_SEGMENTS   9
38
39 /* Edge Enhanced Demosaic configuration
40  *
41  * ISP2.6.1: EED1_8 is used.
42  */
43
44 struct ia_css_eed1_8_config {
45         int32_t rbzp_strength;  /** Strength of zipper reduction. */
46
47         int32_t fcstrength;     /** Strength of false color reduction. */
48         int32_t fcthres_0;      /** Threshold to prevent chroma coring due to noise or green disparity in dark region. */
49         int32_t fcthres_1;      /** Threshold to prevent chroma coring due to noise or green disparity in bright region. */
50         int32_t fc_sat_coef;    /** How much color saturation to maintain in high color saturation region. */
51         int32_t fc_coring_prm;  /** Chroma coring coefficient for tint color suppression. */
52
53         int32_t aerel_thres0;   /** Threshold for Non-Directional Reliability at dark region. */
54         int32_t aerel_gain0;    /** Gain for Non-Directional Reliability at dark region. */
55         int32_t aerel_thres1;   /** Threshold for Non-Directional Reliability at bright region. */
56         int32_t aerel_gain1;    /** Gain for Non-Directional Reliability at bright region. */
57
58         int32_t derel_thres0;   /** Threshold for Directional Reliability at dark region. */
59         int32_t derel_gain0;    /** Gain for Directional Reliability at dark region. */
60         int32_t derel_thres1;   /** Threshold for Directional Reliability at bright region. */
61         int32_t derel_gain1;    /** Gain for Directional Reliability at bright region. */
62
63         int32_t coring_pos0;    /** Positive Edge Coring Threshold in dark region. */
64         int32_t coring_pos1;    /** Positive Edge Coring Threshold in bright region. */
65         int32_t coring_neg0;    /** Negative Edge Coring Threshold in dark region. */
66         int32_t coring_neg1;    /** Negative Edge Coring Threshold in bright region. */
67
68         int32_t gain_exp;       /** Common Exponent of Gain. */
69         int32_t gain_pos0;      /** Gain for Positive Edge in dark region. */
70         int32_t gain_pos1;      /** Gain for Positive Edge in bright region. */
71         int32_t gain_neg0;      /** Gain for Negative Edge in dark region. */
72         int32_t gain_neg1;      /** Gain for Negative Edge in bright region. */
73
74         int32_t pos_margin0;    /** Margin for Positive Edge in dark region. */
75         int32_t pos_margin1;    /** Margin for Positive Edge in bright region. */
76         int32_t neg_margin0;    /** Margin for Negative Edge in dark region. */
77         int32_t neg_margin1;    /** Margin for Negative Edge in bright region. */
78
79         int32_t dew_enhance_seg_x[IA_CSS_NUMBER_OF_DEW_ENHANCE_SEGMENTS];               /** Segment data for directional edge weight: X. */
80         int32_t dew_enhance_seg_y[IA_CSS_NUMBER_OF_DEW_ENHANCE_SEGMENTS];               /** Segment data for directional edge weight: Y. */
81         int32_t dew_enhance_seg_slope[(IA_CSS_NUMBER_OF_DEW_ENHANCE_SEGMENTS - 1)];     /** Segment data for directional edge weight: Slope. */
82         int32_t dew_enhance_seg_exp[(IA_CSS_NUMBER_OF_DEW_ENHANCE_SEGMENTS - 1)];       /** Segment data for directional edge weight: Exponent. */
83         int32_t dedgew_max;     /** Max Weight for Directional Edge. */
84 };
85
86 #endif /* __IA_CSS_EED1_8_TYPES_H */