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