Merge tag 'ceph-for-4.15-rc4' of git://github.com/ceph/ceph-client
[sfrench/cifs-2.6.git] / drivers / staging / media / atomisp / pci / atomisp2 / css2400 / isp / kernels / sdis / sdis_2 / ia_css_sdis2_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_SDIS2_TYPES_H
16 #define __IA_CSS_SDIS2_TYPES_H
17
18 /* @file
19 * CSS-API header file for DVS statistics parameters.
20 */
21
22 /* Number of DVS coefficient types */
23 #define IA_CSS_DVS2_NUM_COEF_TYPES     4
24
25 #ifndef PIPE_GENERATION
26 #include "isp/kernels/sdis/common/ia_css_sdis_common_types.h"
27 #endif
28
29 /* DVS 2.0 Coefficient types. This structure contains 4 pointers to
30  *  arrays that contain the coeffients for each type.
31  */
32 struct ia_css_dvs2_coef_types {
33         int16_t *odd_real; /** real part of the odd coefficients*/
34         int16_t *odd_imag; /** imaginary part of the odd coefficients*/
35         int16_t *even_real;/** real part of the even coefficients*/
36         int16_t *even_imag;/** imaginary part of the even coefficients*/
37 };
38
39 /* DVS 2.0 Coefficients. This structure describes the coefficients that are needed for the dvs statistics.
40  *  e.g. hor_coefs.odd_real is the pointer to int16_t[grid.num_hor_coefs] containing the horizontal odd real 
41  *  coefficients.
42  */
43 struct ia_css_dvs2_coefficients {
44         struct ia_css_dvs_grid_info grid;        /** grid info contains the dimensions of the dvs grid */
45         struct ia_css_dvs2_coef_types hor_coefs; /** struct with pointers that contain the horizontal coefficients */
46         struct ia_css_dvs2_coef_types ver_coefs; /** struct with pointers that contain the vertical coefficients */
47 };
48
49 /* DVS 2.0 Statistic types. This structure contains 4 pointers to
50  *  arrays that contain the statistics for each type.
51  */
52 struct ia_css_dvs2_stat_types {
53         int32_t *odd_real; /** real part of the odd statistics*/
54         int32_t *odd_imag; /** imaginary part of the odd statistics*/
55         int32_t *even_real;/** real part of the even statistics*/
56         int32_t *even_imag;/** imaginary part of the even statistics*/
57 };
58
59 /* DVS 2.0 Statistics. This structure describes the statistics that are generated using the provided coefficients.
60  *  e.g. hor_prod.odd_real is the pointer to int16_t[grid.aligned_height][grid.aligned_width] containing 
61  *  the horizontal odd real statistics. Valid statistics data area is int16_t[0..grid.height-1][0..grid.width-1]
62  */
63 struct ia_css_dvs2_statistics {
64         struct ia_css_dvs_grid_info grid;       /** grid info contains the dimensions of the dvs grid */
65         struct ia_css_dvs2_stat_types hor_prod; /** struct with pointers that contain the horizontal statistics */
66         struct ia_css_dvs2_stat_types ver_prod; /** struct with pointers that contain the vertical statistics */
67 };
68
69 #endif /* __IA_CSS_SDIS2_TYPES_H */