Merge remote-tracking branches 'asoc/fix/msm8916', 'asoc/fix/nau8825', 'asoc/fix...
[sfrench/cifs-2.6.git] / drivers / staging / media / atomisp / pci / atomisp2 / css2400 / isp / kernels / ob / ob_1.0 / ia_css_ob_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_OB_TYPES_H
16 #define __IA_CSS_OB_TYPES_H
17
18 /* @file
19 * CSS-API header file for Optical Black level parameters.
20 */
21
22 #include "ia_css_frac.h"
23
24 /* Optical black mode.
25  */
26 enum ia_css_ob_mode {
27         IA_CSS_OB_MODE_NONE,    /** OB has no effect. */
28         IA_CSS_OB_MODE_FIXED,   /** Fixed OB */
29         IA_CSS_OB_MODE_RASTER   /** Raster OB */
30 };
31
32 /* Optical Black level configuration.
33  *
34  *  ISP block: OB1
35  *  ISP1: OB1 is used.
36  *  ISP2: OB1 is used.
37  */
38 struct ia_css_ob_config {
39         enum ia_css_ob_mode mode; /** Mode (None / Fixed / Raster).
40                                         enum, [0,2],
41                                         default 1, ineffective 0 */
42         ia_css_u0_16 level_gr;    /** Black level for GR pixels
43                                         (used for Fixed Mode only).
44                                         u0.16, [0,65535],
45                                         default/ineffective 0 */
46         ia_css_u0_16 level_r;     /** Black level for R pixels
47                                         (used for Fixed Mode only).
48                                         u0.16, [0,65535],
49                                         default/ineffective 0 */
50         ia_css_u0_16 level_b;     /** Black level for B pixels
51                                         (used for Fixed Mode only).
52                                         u0.16, [0,65535],
53                                         default/ineffective 0 */
54         ia_css_u0_16 level_gb;    /** Black level for GB pixels
55                                         (used for Fixed Mode only).
56                                         u0.16, [0,65535],
57                                         default/ineffective 0 */
58         uint16_t start_position; /** Start position of OB area
59                                         (used for Raster Mode only).
60                                         u16.0, [0,63],
61                                         default/ineffective 0 */
62         uint16_t end_position;  /** End position of OB area
63                                         (used for Raster Mode only).
64                                         u16.0, [0,63],
65                                         default/ineffective 0 */
66 };
67
68 #endif /* __IA_CSS_OB_TYPES_H */
69