1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Support for Intel Camera Imaging ISP subsystem.
4  * Copyright (c) 2015, Intel Corporation.
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms and conditions of the GNU General Public License,
8  * version 2, as published by the Free Software Foundation.
9  *
10  * This program is distributed in the hope it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
13  * more details.
14  */
15 
16 #ifndef __GDC_PUBLIC_H_INCLUDED__
17 #define __GDC_PUBLIC_H_INCLUDED__
18 
19 /*! Write the bicubic interpolation table of GDC[ID]
20 
21  \param	ID[in]				GDC identifier
22  \param data[in]			The data matrix to be written
23 
24  \pre
25 	- data must point to a matrix[4][HRT_GDC_N]
26 
27  \implementation dependent
28 	- The value of "HRT_GDC_N" is device specific
29 	- The LUT should not be partially written
30 	- The LUT format is a quadri-phase interpolation
31 	  table. The layout is device specific
32 	- The range of the values data[n][m] is device
33 	  specific
34 
35  \return none, GDC[ID].lut[0...3][0...HRT_GDC_N-1] = data
36  */
37 void gdc_lut_store(
38     const gdc_ID_t		ID,
39     const int			data[4][HRT_GDC_N]);
40 
41 /*! Convert the bicubic interpolation table of GDC[ID] to the ISP-specific format
42 
43  \param	ID[in]				GDC identifier
44  \param in_lut[in]			The data matrix to be converted
45  \param out_lut[out]			The data matrix as the output of conversion
46  */
47 void gdc_lut_convert_to_isp_format(
48     const int in_lut[4][HRT_GDC_N],
49     int out_lut[4][HRT_GDC_N]);
50 
51 /*! Return the integer representation of 1.0 of GDC[ID]
52 
53  \param	ID[in]				GDC identifier
54 
55  \return unity
56  */
57 int gdc_get_unity(
58     const gdc_ID_t		ID);
59 
60 #endif /* __GDC_PUBLIC_H_INCLUDED__ */
61