hc
2023-10-16 def2367077573b56f9fc4f824e5c0377a3a4175a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
/* SPDX-License-Identifier: GPL-2.0 */
/********************************************************************************
 *
 *  Copyright (C) 2017     NEXTCHIP Inc. All rights reserved.
 *  Module        : video_eq.h
 *  Description    :
 *  Author        :
 *  Date         :
 *  Version        : Version 1.0
 *
 ********************************************************************************
 *  History      :
 *
 *
 ********************************************************************************/
#ifndef _JAGUAR1_VIDEO_EQ_H_
#define _JAGUAR1_VIDEO_EQ_H_
 
#include "jaguar1_common.h"
 
typedef struct _video_equalizer_hsync_stage_s{
   unsigned int hsync_stage[6];
}video_equalizer_hsync_stage_s;
 
typedef struct _video_equalizer_agc_stage_s{
   unsigned int agc_stage[6];
}video_equalizer_agc_stage_s;
 
typedef struct _video_equalizer_distance_table_s{
   video_equalizer_hsync_stage_s hsync_stage;
   video_equalizer_agc_stage_s   agc_stage;
} video_equalizer_distance_table_s;
 
 
typedef struct _video_equalizer_base_s{
   unsigned char eq_bypass[11];            // B5x01
   unsigned char eq_band_sel[11];        // B5x58
   unsigned char eq_gain_sel[11];        // B5x5C
 
   unsigned char deq_a_on[11];            // BAx3d
   unsigned char deq_a_sel[11];            // BAx3C
 
} video_equalizer_base_s;
 
typedef struct _video_equalizer_coeff_s{
 
   unsigned char deqA_01[11];    // BankA 0x30
   unsigned char deqA_02[11];    // BankA 0x31
   unsigned char deqA_03[11];   // BankA 0x32
   unsigned char deqA_04[11];   // BankA 0x33
   unsigned char deqA_05[11];   // BankA 0x34
   unsigned char deqA_06[11];   // BankA 0x35
   unsigned char deqA_07[11];   // BankA 0x36
   unsigned char deqA_08[11];   // BankA 0x37
   unsigned char deqA_09[11];   // BankA 0x38
   unsigned char deqA_10[11];   // BankA 0x39
   unsigned char deqA_11[11];   // BankA 0x3A
   unsigned char deqA_12[11];   // BankA 0x3B
 
} video_equalizer_coeff_s;
 
typedef struct _video_equalizer_color_s{
   unsigned char contrast[11];            // Bank0 0x10
   unsigned char y_peaking_mode[11];            // Bank0 0x18
   unsigned char y_fir_mode [11];
   unsigned char c_filter[11];            // Bank0 0x21
   unsigned char pal_cm_off[11];            // Bank0 0x21
   unsigned char hue[11];                // Bank0 0x40
   unsigned char u_gain[11];            // Bank0 0x44
   unsigned char v_gain[11];            // Bank0 0x48
   unsigned char u_offset[11];            // Bank0 0x4c
   unsigned char v_offset[11];            // Bank0 0x50
 
   unsigned char black_level[11];        // Bank5 0x20
   unsigned char acc_ref[11];            // Bank5 0x27
 
   unsigned char cti_delay[11];            // Bank5 0x28
   unsigned char saturation_b[11];    // Bank5 0x2B
   unsigned char burst_dec_a[11];       // Bank5 0x24
   unsigned char burst_dec_b[11];       // Bank5 0x5F
   unsigned char burst_dec_c[11];       // Bank5 0xD1
   unsigned char c_option[11];          // Bank5 0xD5
 
   unsigned char y_filter_b[11];        // BankA 0x25
   unsigned char y_filter_b_sel[11];    // BankA 0x27
 
} video_equalizer_color_s;
 
typedef struct _video_equalizer_timing_a_s{
   unsigned char h_delay_a[11];            // Bank0 0x58
   unsigned char h_delay_b[11];            // Bank0 0x89
   unsigned char h_delay_c[11];            // Bank0 0x8E
   unsigned char y_delay[11];            // Bank0 0xA0
 
} video_equalizer_timing_a_s;
 
typedef struct _video_equalizer_clk_s{
   unsigned char clk_adc_pre[11];            // Bank1 0x84
   unsigned char clk_adc_post[11];            // Bank1 0x8C
   unsigned char clk_adc[11];            // Bank1 0x8C
 
} video_equalizer_clk_s;
 
typedef struct _video_equalizer_timing_b_s{
   unsigned char h_scaler1[11];        // B9x96 + ch*0x20
   unsigned char h_scaler2[11];        // B9x97 + ch*0x20
   unsigned char h_scaler3[11];        // B9x98 + ch*0x20
   unsigned char h_scaler4[11];        // B9x99 + ch*0x20
   unsigned char h_scaler5[11];        // B9x9a + ch*0x20
   unsigned char h_scaler6[11];        // B9x9b + ch*0x20
   unsigned char h_scaler7[11];        // B9x9c + ch*0x20
   unsigned char h_scaler8[11];        // B9x9d + ch*0x20
   unsigned char h_scaler9[11];        // B9x9e + ch*0x20
 
   unsigned char pn_auto[11];        // B9x40 + ch
 
   unsigned char comb_mode[11];        // B5x90
   unsigned char h_pll_op_a[11];    // B5xB9
   unsigned char mem_path[11];        // B5x57
   unsigned char fsc_lock_speed[11]; //B5x25
 
   unsigned char ahd_mode[11];
   unsigned char sd_mode[11];
   unsigned char spl_mode[11];
   unsigned char vblk_end[11];
   unsigned char afe_g_sel[11];
   unsigned char afe_ctr_clp[11];
   unsigned char d_agc_option[11];
} video_equalizer_timing_b_s;
 
 
typedef struct _video_equalizer_value_table_s{
   video_equalizer_base_s        eq_base;
   video_equalizer_coeff_s     eq_coeff;
   video_equalizer_color_s     eq_color;
 
   video_equalizer_timing_a_s     eq_timing_a;
   video_equalizer_clk_s        eq_clk;
   video_equalizer_timing_b_s    eq_timing_b;
 
} video_equalizer_value_table_s;
 
typedef struct _jaguar1_video_eq_value_table_s{
   char *name;
   NC_VIVO_CH_FORMATDEF        video_fmt;
   NC_ANALOG_INPUT             analog_input;
   video_equalizer_base_s        eq_base;
   video_equalizer_coeff_s     eq_coeff;
   video_equalizer_color_s     eq_color;
 
   video_equalizer_timing_a_s     eq_timing_a;
   video_equalizer_clk_s        eq_clk;
   video_equalizer_timing_b_s    eq_timing_b;
 
} _jaguar1_video_eq_value_table_s;
 
typedef struct _video_equalizer_info{
   unsigned char Ch;
   unsigned char devnum;
   unsigned char stage;
   unsigned char FmtDef;
   unsigned char Cable;
   unsigned char Input;
} video_equalizer_info_s;
 
void video_input_eq_val_set(video_equalizer_info_s *pvin_eq_set);
void video_input_eq_cable_set(video_equalizer_info_s *pvin_eq_set);
void video_input_eq_analog_input_set(video_equalizer_info_s *pvin_eq_set);
 
#endif /* _JAGUAR1_VIDEO_EQ_H_ */