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 #include "ia_css_types.h"
8 #include "sh_css_defs.h"
9 #ifndef IA_CSS_NO_DEBUG
10 /* FIXME: See BZ 4427 */
11 #include "ia_css_debug.h"
12 #endif
13 #include "csc/csc_1.0/ia_css_csc.host.h"
14 #include "vamem.h"
15 
16 #include "ia_css_gc2.host.h"
17 
18 const struct ia_css_cc_config default_yuv2rgb_cc_config = {
19 	12,
20 	{4096, -4096, 4096, 4096, 4096, 0, 4096, -4096, -4096}
21 };
22 
23 const struct ia_css_cc_config default_rgb2yuv_cc_config = {
24 	13,
25 	{2449, 4809, 934, -1382, -2714, 4096, 4096, -3430, -666}
26 };
27 
28 void
ia_css_yuv2rgb_encode(struct sh_css_isp_csc_params * to,const struct ia_css_cc_config * from,unsigned int size)29 ia_css_yuv2rgb_encode(
30     struct sh_css_isp_csc_params *to,
31     const struct ia_css_cc_config *from,
32     unsigned int size)
33 {
34 	ia_css_encode_cc(to, from, size);
35 }
36 
37 void
ia_css_rgb2yuv_encode(struct sh_css_isp_csc_params * to,const struct ia_css_cc_config * from,unsigned int size)38 ia_css_rgb2yuv_encode(
39     struct sh_css_isp_csc_params *to,
40     const struct ia_css_cc_config *from,
41     unsigned int size)
42 {
43 	ia_css_encode_cc(to, from, size);
44 }
45 
46 void
ia_css_r_gamma_vamem_encode(struct sh_css_isp_rgb_gamma_vamem_params * to,const struct ia_css_rgb_gamma_table * from,unsigned int size)47 ia_css_r_gamma_vamem_encode(
48     struct sh_css_isp_rgb_gamma_vamem_params *to,
49     const struct ia_css_rgb_gamma_table *from,
50     unsigned int size)
51 {
52 	(void)size;
53 	memcpy(&to->gc,  &from->data, sizeof(to->gc));
54 }
55 
56 void
ia_css_g_gamma_vamem_encode(struct sh_css_isp_rgb_gamma_vamem_params * to,const struct ia_css_rgb_gamma_table * from,unsigned int size)57 ia_css_g_gamma_vamem_encode(
58     struct sh_css_isp_rgb_gamma_vamem_params *to,
59     const struct ia_css_rgb_gamma_table *from,
60     unsigned int size)
61 {
62 	(void)size;
63 	memcpy(&to->gc,  &from->data, sizeof(to->gc));
64 }
65 
66 void
ia_css_b_gamma_vamem_encode(struct sh_css_isp_rgb_gamma_vamem_params * to,const struct ia_css_rgb_gamma_table * from,unsigned int size)67 ia_css_b_gamma_vamem_encode(
68     struct sh_css_isp_rgb_gamma_vamem_params *to,
69     const struct ia_css_rgb_gamma_table *from,
70     unsigned int size)
71 {
72 	(void)size;
73 	memcpy(&to->gc,  &from->data, sizeof(to->gc));
74 }
75 
76 #ifndef IA_CSS_NO_DEBUG
77 void
ia_css_yuv2rgb_dump(const struct sh_css_isp_csc_params * yuv2rgb,unsigned int level)78 ia_css_yuv2rgb_dump(
79     const struct sh_css_isp_csc_params *yuv2rgb,
80     unsigned int level)
81 {
82 	ia_css_cc_dump(yuv2rgb, level, "YUV to RGB Conversion");
83 }
84 
85 void
ia_css_rgb2yuv_dump(const struct sh_css_isp_csc_params * rgb2yuv,unsigned int level)86 ia_css_rgb2yuv_dump(
87     const struct sh_css_isp_csc_params *rgb2yuv,
88     unsigned int level)
89 {
90 	ia_css_cc_dump(rgb2yuv, level, "RGB to YUV Conversion");
91 }
92 
93 void
ia_css_rgb_gamma_table_debug_dtrace(const struct ia_css_rgb_gamma_table * config,unsigned int level)94 ia_css_rgb_gamma_table_debug_dtrace(
95     const struct ia_css_rgb_gamma_table *config,
96     unsigned int level)
97 {
98 	(void)config;
99 	(void)level;
100 }
101 #endif
102