1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Support for Intel Camera Imaging ISP subsystem.
4  * Copyright (c) 2015, Intel Corporation.
5  */
6 
7 #ifndef __GDC_PUBLIC_H_INCLUDED__
8 #define __GDC_PUBLIC_H_INCLUDED__
9 
10 /*! Write the bicubic interpolation table of GDC[ID]
11 
12  \param	ID[in]				GDC identifier
13  \param data[in]			The data matrix to be written
14 
15  \pre
16 	- data must point to a matrix[4][HRT_GDC_N]
17 
18  \implementation dependent
19 	- The value of "HRT_GDC_N" is device specific
20 	- The LUT should not be partially written
21 	- The LUT format is a quadri-phase interpolation
22 	  table. The layout is device specific
23 	- The range of the values data[n][m] is device
24 	  specific
25 
26  \return none, GDC[ID].lut[0...3][0...HRT_GDC_N-1] = data
27  */
28 void gdc_lut_store(
29     const gdc_ID_t		ID,
30     const int			data[4][HRT_GDC_N]);
31 
32 /*! Convert the bicubic interpolation table of GDC[ID] to the ISP-specific format
33 
34  \param	ID[in]				GDC identifier
35  \param in_lut[in]			The data matrix to be converted
36  \param out_lut[out]			The data matrix as the output of conversion
37  */
38 void gdc_lut_convert_to_isp_format(
39     const int in_lut[4][HRT_GDC_N],
40     int out_lut[4][HRT_GDC_N]);
41 
42 /*! Return the integer representation of 1.0 of GDC[ID]
43 
44  \param	ID[in]				GDC identifier
45 
46  \return unity
47  */
48 int gdc_get_unity(
49     const gdc_ID_t		ID);
50 
51 #endif /* __GDC_PUBLIC_H_INCLUDED__ */
52