xref: /OK3568_Linux_fs/kernel/drivers/media/dvb-frontends/stv0900_init.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-or-later */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * stv0900_init.h
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * Driver for ST STV0900 satellite demodulator IC.
6*4882a593Smuzhiyun  *
7*4882a593Smuzhiyun  * Copyright (C) ST Microelectronics.
8*4882a593Smuzhiyun  * Copyright (C) 2009 NetUP Inc.
9*4882a593Smuzhiyun  * Copyright (C) 2009 Igor M. Liplianin <liplianin@netup.ru>
10*4882a593Smuzhiyun  */
11*4882a593Smuzhiyun 
12*4882a593Smuzhiyun #ifndef STV0900_INIT_H
13*4882a593Smuzhiyun #define STV0900_INIT_H
14*4882a593Smuzhiyun 
15*4882a593Smuzhiyun #include "stv0900_priv.h"
16*4882a593Smuzhiyun 
17*4882a593Smuzhiyun /* DVBS2 C/N Look-Up table */
18*4882a593Smuzhiyun static const struct stv0900_table stv0900_s2_cn = {
19*4882a593Smuzhiyun 	55,
20*4882a593Smuzhiyun 	{
21*4882a593Smuzhiyun 		{ -30,	13348 }, /*C/N=-3dB*/
22*4882a593Smuzhiyun 		{ -20,	12640 }, /*C/N=-2dB*/
23*4882a593Smuzhiyun 		{ -10,	11883 }, /*C/N=-1dB*/
24*4882a593Smuzhiyun 		{ 0,	11101 }, /*C/N=-0dB*/
25*4882a593Smuzhiyun 		{ 5,	10718 }, /*C/N=0.5dB*/
26*4882a593Smuzhiyun 		{ 10,	10339 }, /*C/N=1.0dB*/
27*4882a593Smuzhiyun 		{ 15,	9947 }, /*C/N=1.5dB*/
28*4882a593Smuzhiyun 		{ 20,	9552 }, /*C/N=2.0dB*/
29*4882a593Smuzhiyun 		{ 25,	9183 }, /*C/N=2.5dB*/
30*4882a593Smuzhiyun 		{ 30,	8799 }, /*C/N=3.0dB*/
31*4882a593Smuzhiyun 		{ 35,	8422 }, /*C/N=3.5dB*/
32*4882a593Smuzhiyun 		{ 40,	8062 }, /*C/N=4.0dB*/
33*4882a593Smuzhiyun 		{ 45,	7707 }, /*C/N=4.5dB*/
34*4882a593Smuzhiyun 		{ 50,	7353 }, /*C/N=5.0dB*/
35*4882a593Smuzhiyun 		{ 55,	7025 }, /*C/N=5.5dB*/
36*4882a593Smuzhiyun 		{ 60,	6684 }, /*C/N=6.0dB*/
37*4882a593Smuzhiyun 		{ 65,	6331 }, /*C/N=6.5dB*/
38*4882a593Smuzhiyun 		{ 70,	6036 }, /*C/N=7.0dB*/
39*4882a593Smuzhiyun 		{ 75,	5727 }, /*C/N=7.5dB*/
40*4882a593Smuzhiyun 		{ 80,	5437 }, /*C/N=8.0dB*/
41*4882a593Smuzhiyun 		{ 85,	5164 }, /*C/N=8.5dB*/
42*4882a593Smuzhiyun 		{ 90,	4902 }, /*C/N=9.0dB*/
43*4882a593Smuzhiyun 		{ 95,	4653 }, /*C/N=9.5dB*/
44*4882a593Smuzhiyun 		{ 100,	4408 }, /*C/N=10.0dB*/
45*4882a593Smuzhiyun 		{ 105,	4187 }, /*C/N=10.5dB*/
46*4882a593Smuzhiyun 		{ 110,	3961 }, /*C/N=11.0dB*/
47*4882a593Smuzhiyun 		{ 115,	3751 }, /*C/N=11.5dB*/
48*4882a593Smuzhiyun 		{ 120,	3558 }, /*C/N=12.0dB*/
49*4882a593Smuzhiyun 		{ 125,	3368 }, /*C/N=12.5dB*/
50*4882a593Smuzhiyun 		{ 130,	3191 }, /*C/N=13.0dB*/
51*4882a593Smuzhiyun 		{ 135,	3017 }, /*C/N=13.5dB*/
52*4882a593Smuzhiyun 		{ 140,	2862 }, /*C/N=14.0dB*/
53*4882a593Smuzhiyun 		{ 145,	2710 }, /*C/N=14.5dB*/
54*4882a593Smuzhiyun 		{ 150,	2565 }, /*C/N=15.0dB*/
55*4882a593Smuzhiyun 		{ 160,	2300 }, /*C/N=16.0dB*/
56*4882a593Smuzhiyun 		{ 170,	2058 }, /*C/N=17.0dB*/
57*4882a593Smuzhiyun 		{ 180,	1849 }, /*C/N=18.0dB*/
58*4882a593Smuzhiyun 		{ 190,	1663 }, /*C/N=19.0dB*/
59*4882a593Smuzhiyun 		{ 200,	1495 }, /*C/N=20.0dB*/
60*4882a593Smuzhiyun 		{ 210,	1349 }, /*C/N=21.0dB*/
61*4882a593Smuzhiyun 		{ 220,	1222 }, /*C/N=22.0dB*/
62*4882a593Smuzhiyun 		{ 230,	1110 }, /*C/N=23.0dB*/
63*4882a593Smuzhiyun 		{ 240,	1011 }, /*C/N=24.0dB*/
64*4882a593Smuzhiyun 		{ 250,	925 }, /*C/N=25.0dB*/
65*4882a593Smuzhiyun 		{ 260,	853 }, /*C/N=26.0dB*/
66*4882a593Smuzhiyun 		{ 270,	789 }, /*C/N=27.0dB*/
67*4882a593Smuzhiyun 		{ 280,	734 }, /*C/N=28.0dB*/
68*4882a593Smuzhiyun 		{ 290,	690 }, /*C/N=29.0dB*/
69*4882a593Smuzhiyun 		{ 300,	650 }, /*C/N=30.0dB*/
70*4882a593Smuzhiyun 		{ 310,	619 }, /*C/N=31.0dB*/
71*4882a593Smuzhiyun 		{ 320,	593 }, /*C/N=32.0dB*/
72*4882a593Smuzhiyun 		{ 330,	571 }, /*C/N=33.0dB*/
73*4882a593Smuzhiyun 		{ 400,	498 }, /*C/N=40.0dB*/
74*4882a593Smuzhiyun 		{ 450,	484 }, /*C/N=45.0dB*/
75*4882a593Smuzhiyun 		{ 500,	481 }  /*C/N=50.0dB*/
76*4882a593Smuzhiyun 	}
77*4882a593Smuzhiyun };
78*4882a593Smuzhiyun 
79*4882a593Smuzhiyun /* RF level C/N Look-Up table */
80*4882a593Smuzhiyun static const struct stv0900_table stv0900_rf = {
81*4882a593Smuzhiyun 	14,
82*4882a593Smuzhiyun 	{
83*4882a593Smuzhiyun 		{ -5, 0xCAA1 }, /*-5dBm*/
84*4882a593Smuzhiyun 		{ -10, 0xC229 }, /*-10dBm*/
85*4882a593Smuzhiyun 		{ -15, 0xBB08 }, /*-15dBm*/
86*4882a593Smuzhiyun 		{ -20, 0xB4BC }, /*-20dBm*/
87*4882a593Smuzhiyun 		{ -25, 0xAD5A }, /*-25dBm*/
88*4882a593Smuzhiyun 		{ -30, 0xA298 }, /*-30dBm*/
89*4882a593Smuzhiyun 		{ -35, 0x98A8 }, /*-35dBm*/
90*4882a593Smuzhiyun 		{ -40, 0x8389 }, /*-40dBm*/
91*4882a593Smuzhiyun 		{ -45, 0x59BE }, /*-45dBm*/
92*4882a593Smuzhiyun 		{ -50, 0x3A14 }, /*-50dBm*/
93*4882a593Smuzhiyun 		{ -55, 0x2D11 }, /*-55dBm*/
94*4882a593Smuzhiyun 		{ -60, 0x210D }, /*-60dBm*/
95*4882a593Smuzhiyun 		{ -65, 0xA14F }, /*-65dBm*/
96*4882a593Smuzhiyun 		{ -70, 0x7AA }	/*-70dBm*/
97*4882a593Smuzhiyun 	}
98*4882a593Smuzhiyun };
99*4882a593Smuzhiyun 
100*4882a593Smuzhiyun struct stv0900_car_loop_optim {
101*4882a593Smuzhiyun 	enum fe_stv0900_modcode modcode;
102*4882a593Smuzhiyun 	u8 car_loop_pilots_on_2;
103*4882a593Smuzhiyun 	u8 car_loop_pilots_off_2;
104*4882a593Smuzhiyun 	u8 car_loop_pilots_on_5;
105*4882a593Smuzhiyun 	u8 car_loop_pilots_off_5;
106*4882a593Smuzhiyun 	u8 car_loop_pilots_on_10;
107*4882a593Smuzhiyun 	u8 car_loop_pilots_off_10;
108*4882a593Smuzhiyun 	u8 car_loop_pilots_on_20;
109*4882a593Smuzhiyun 	u8 car_loop_pilots_off_20;
110*4882a593Smuzhiyun 	u8 car_loop_pilots_on_30;
111*4882a593Smuzhiyun 	u8 car_loop_pilots_off_30;
112*4882a593Smuzhiyun 
113*4882a593Smuzhiyun };
114*4882a593Smuzhiyun 
115*4882a593Smuzhiyun struct stv0900_short_frames_car_loop_optim {
116*4882a593Smuzhiyun 	enum fe_stv0900_modulation modulation;
117*4882a593Smuzhiyun 	u8 car_loop_cut12_2;    /* Cut 1.2,   SR<=3msps     */
118*4882a593Smuzhiyun 	u8 car_loop_cut20_2;    /* Cut 2.0,   SR<3msps      */
119*4882a593Smuzhiyun 	u8 car_loop_cut12_5;    /* Cut 1.2,   3<SR<=7msps   */
120*4882a593Smuzhiyun 	u8 car_loop_cut20_5;    /* Cut 2.0,   3<SR<=7msps   */
121*4882a593Smuzhiyun 	u8 car_loop_cut12_10;   /* Cut 1.2,   7<SR<=15msps  */
122*4882a593Smuzhiyun 	u8 car_loop_cut20_10;   /* Cut 2.0,   7<SR<=15msps  */
123*4882a593Smuzhiyun 	u8 car_loop_cut12_20;   /* Cut 1.2,   10<SR<=25msps */
124*4882a593Smuzhiyun 	u8 car_loop_cut20_20;   /* Cut 2.0,   10<SR<=25msps */
125*4882a593Smuzhiyun 	u8 car_loop_cut12_30;   /* Cut 1.2,   25<SR<=45msps */
126*4882a593Smuzhiyun 	u8 car_loop_cut20_30;   /* Cut 2.0,   10<SR<=45msps */
127*4882a593Smuzhiyun 
128*4882a593Smuzhiyun };
129*4882a593Smuzhiyun 
130*4882a593Smuzhiyun struct stv0900_short_frames_car_loop_optim_vs_mod {
131*4882a593Smuzhiyun 	enum fe_stv0900_modulation modulation;
132*4882a593Smuzhiyun 	u8 car_loop_2;	  /* SR<3msps      */
133*4882a593Smuzhiyun 	u8 car_loop_5;	  /* 3<SR<=7msps   */
134*4882a593Smuzhiyun 	u8 car_loop_10;   /* 7<SR<=15msps  */
135*4882a593Smuzhiyun 	u8 car_loop_20;   /* 10<SR<=25msps */
136*4882a593Smuzhiyun 	u8 car_loop_30;   /* 10<SR<=45msps */
137*4882a593Smuzhiyun };
138*4882a593Smuzhiyun 
139*4882a593Smuzhiyun /* Cut 1.x Tracking carrier loop carrier QPSK 1/2 to 8PSK 9/10 long Frame */
140*4882a593Smuzhiyun static const struct stv0900_car_loop_optim FE_STV0900_S2CarLoop[14] = {
141*4882a593Smuzhiyun 	/*Modcod		2MPon	2MPoff	5MPon	5MPoff	10MPon
142*4882a593Smuzhiyun 				10MPoff	20MPon	20MPoff	30MPon	30MPoff */
143*4882a593Smuzhiyun 	{ STV0900_QPSK_12,	0x1C,	0x0D,	0x1B,	0x2C,	0x3A,
144*4882a593Smuzhiyun 				0x1C,	0x2A,	0x3B,	0x2A,	0x1B },
145*4882a593Smuzhiyun 	{ STV0900_QPSK_35,	0x2C,	0x0D,	0x2B,	0x2C,	0x3A,
146*4882a593Smuzhiyun 				0x0C,	0x3A,	0x2B,	0x2A,	0x0B },
147*4882a593Smuzhiyun 	{ STV0900_QPSK_23,	0x2C,	0x0D,	0x2B,	0x2C,	0x0B,
148*4882a593Smuzhiyun 				0x0C,	0x3A,	0x1B,	0x2A,	0x3A },
149*4882a593Smuzhiyun 	{ STV0900_QPSK_34,	0x3C,	0x0D,	0x3B,	0x1C,	0x0B,
150*4882a593Smuzhiyun 				0x3B,	0x3A,	0x0B,	0x2A,	0x3A },
151*4882a593Smuzhiyun 	{ STV0900_QPSK_45,	0x3C,	0x0D,	0x3B,	0x1C,	0x0B,
152*4882a593Smuzhiyun 				0x3B,	0x3A,	0x0B,	0x2A,	0x3A },
153*4882a593Smuzhiyun 	{ STV0900_QPSK_56,	0x0D,	0x0D,	0x3B,	0x1C,	0x0B,
154*4882a593Smuzhiyun 				0x3B,	0x3A,	0x0B,	0x2A,	0x3A },
155*4882a593Smuzhiyun 	{ STV0900_QPSK_89,	0x0D,	0x0D,	0x3B,	0x1C,	0x1B,
156*4882a593Smuzhiyun 				0x3B,	0x3A,	0x0B,	0x2A,	0x3A },
157*4882a593Smuzhiyun 	{ STV0900_QPSK_910,	0x1D,	0x0D,	0x3B,	0x1C,	0x1B,
158*4882a593Smuzhiyun 				0x3B,	0x3A,	0x0B,	0x2A,	0x3A },
159*4882a593Smuzhiyun 	{ STV0900_8PSK_35,	0x29,	0x3B,	0x09,	0x2B,	0x38,
160*4882a593Smuzhiyun 				0x0B,	0x18,	0x1A,	0x08,	0x0A },
161*4882a593Smuzhiyun 	{ STV0900_8PSK_23,	0x0A,	0x3B,	0x29,	0x2B,	0x19,
162*4882a593Smuzhiyun 				0x0B,	0x38,	0x1A,	0x18,	0x0A },
163*4882a593Smuzhiyun 	{ STV0900_8PSK_34,	0x3A,	0x3B,	0x2A,	0x2B,	0x39,
164*4882a593Smuzhiyun 				0x0B,	0x19,	0x1A,	0x38,	0x0A },
165*4882a593Smuzhiyun 	{ STV0900_8PSK_56,	0x1B,	0x3B,	0x0B,	0x2B,	0x1A,
166*4882a593Smuzhiyun 				0x0B,	0x39,	0x1A,	0x19,	0x0A },
167*4882a593Smuzhiyun 	{ STV0900_8PSK_89,	0x3B,	0x3B,	0x0B,	0x2B,	0x2A,
168*4882a593Smuzhiyun 				0x0B,	0x39,	0x1A,	0x29,	0x39 },
169*4882a593Smuzhiyun 	{ STV0900_8PSK_910,	0x3B,	0x3B,	0x0B,	0x2B,	0x2A,
170*4882a593Smuzhiyun 				0x0B,	0x39,	0x1A,	0x29,	0x39 }
171*4882a593Smuzhiyun };
172*4882a593Smuzhiyun 
173*4882a593Smuzhiyun 
174*4882a593Smuzhiyun /* Cut 2.0 Tracking carrier loop carrier QPSK 1/2 to 8PSK 9/10 long Frame */
175*4882a593Smuzhiyun static const struct stv0900_car_loop_optim FE_STV0900_S2CarLoopCut20[14] = {
176*4882a593Smuzhiyun 	/* Modcod		2MPon	2MPoff	5MPon	5MPoff	10MPon
177*4882a593Smuzhiyun 				10MPoff	20MPon	20MPoff	30MPon	30MPoff */
178*4882a593Smuzhiyun 	{ STV0900_QPSK_12,	0x1F,	0x3F,	0x1E,	0x3F,	0x3D,
179*4882a593Smuzhiyun 				0x1F,	0x3D,	0x3E,	0x3D,	0x1E },
180*4882a593Smuzhiyun 	{ STV0900_QPSK_35,	0x2F,	0x3F,	0x2E,	0x2F,	0x3D,
181*4882a593Smuzhiyun 				0x0F,	0x0E,	0x2E,	0x3D,	0x0E },
182*4882a593Smuzhiyun 	{ STV0900_QPSK_23,	0x2F,	0x3F,	0x2E,	0x2F,	0x0E,
183*4882a593Smuzhiyun 				0x0F,	0x0E,	0x1E,	0x3D,	0x3D },
184*4882a593Smuzhiyun 	{ STV0900_QPSK_34,	0x3F,	0x3F,	0x3E,	0x1F,	0x0E,
185*4882a593Smuzhiyun 				0x3E,	0x0E,	0x1E,	0x3D,	0x3D },
186*4882a593Smuzhiyun 	{ STV0900_QPSK_45,	0x3F,	0x3F,	0x3E,	0x1F,	0x0E,
187*4882a593Smuzhiyun 				0x3E,	0x0E,	0x1E,	0x3D,	0x3D },
188*4882a593Smuzhiyun 	{ STV0900_QPSK_56,	0x3F,	0x3F,	0x3E,	0x1F,	0x0E,
189*4882a593Smuzhiyun 				0x3E,	0x0E,	0x1E,	0x3D,	0x3D },
190*4882a593Smuzhiyun 	{ STV0900_QPSK_89,	0x3F,	0x3F,	0x3E,	0x1F,	0x1E,
191*4882a593Smuzhiyun 				0x3E,	0x0E,	0x1E,	0x3D,	0x3D },
192*4882a593Smuzhiyun 	{ STV0900_QPSK_910,	0x3F,	0x3F,	0x3E,	0x1F,	0x1E,
193*4882a593Smuzhiyun 				0x3E,	0x0E,	0x1E,	0x3D,	0x3D },
194*4882a593Smuzhiyun 	{ STV0900_8PSK_35,	0x3c,	0x0c,	0x1c,	0x3b,	0x0c,
195*4882a593Smuzhiyun 				0x3b,	0x2b,	0x2b,	0x1b,	0x2b },
196*4882a593Smuzhiyun 	{ STV0900_8PSK_23,	0x1d,	0x0c,	0x3c,	0x0c,	0x2c,
197*4882a593Smuzhiyun 				0x3b,	0x0c,	0x2b,	0x2b,	0x2b },
198*4882a593Smuzhiyun 	{ STV0900_8PSK_34,	0x0e,	0x1c,	0x3d,	0x0c,	0x0d,
199*4882a593Smuzhiyun 				0x3b,	0x2c,	0x3b,	0x0c,	0x2b },
200*4882a593Smuzhiyun 	{ STV0900_8PSK_56,	0x2e,	0x3e,	0x1e,	0x2e,	0x2d,
201*4882a593Smuzhiyun 				0x1e,	0x3c,	0x2d,	0x2c,	0x1d },
202*4882a593Smuzhiyun 	{ STV0900_8PSK_89,	0x3e,	0x3e,	0x1e,	0x2e,	0x3d,
203*4882a593Smuzhiyun 				0x1e,	0x0d,	0x2d,	0x3c,	0x1d },
204*4882a593Smuzhiyun 	{ STV0900_8PSK_910,	0x3e,	0x3e,	0x1e,	0x2e,	0x3d,
205*4882a593Smuzhiyun 				0x1e,	0x1d,	0x2d,	0x0d,	0x1d },
206*4882a593Smuzhiyun };
207*4882a593Smuzhiyun 
208*4882a593Smuzhiyun 
209*4882a593Smuzhiyun 
210*4882a593Smuzhiyun /* Cut 2.0 Tracking carrier loop carrier 16APSK 2/3 to 32APSK 9/10 long Frame */
211*4882a593Smuzhiyun static const struct stv0900_car_loop_optim FE_STV0900_S2APSKCarLoopCut20[11] = {
212*4882a593Smuzhiyun 	/* Modcod		2MPon	2MPoff	5MPon	5MPoff	10MPon
213*4882a593Smuzhiyun 				10MPoff	20MPon	20MPoff	30MPon	30MPoff */
214*4882a593Smuzhiyun 	{ STV0900_16APSK_23,	0x0C,	0x0C,	0x0C,	0x0C,	0x1D,
215*4882a593Smuzhiyun 				0x0C,	0x3C,	0x0C,	0x2C,	0x0C },
216*4882a593Smuzhiyun 	{ STV0900_16APSK_34,	0x0C,	0x0C,	0x0C,	0x0C,	0x0E,
217*4882a593Smuzhiyun 				0x0C,	0x2D,	0x0C,	0x1D,	0x0C },
218*4882a593Smuzhiyun 	{ STV0900_16APSK_45,	0x0C,	0x0C,	0x0C,	0x0C,	0x1E,
219*4882a593Smuzhiyun 				0x0C,	0x3D,	0x0C,	0x2D,	0x0C },
220*4882a593Smuzhiyun 	{ STV0900_16APSK_56,	0x0C,	0x0C,	0x0C,	0x0C,	0x1E,
221*4882a593Smuzhiyun 				0x0C,	0x3D,	0x0C,	0x2D,	0x0C },
222*4882a593Smuzhiyun 	{ STV0900_16APSK_89,	0x0C,	0x0C,	0x0C,	0x0C,	0x2E,
223*4882a593Smuzhiyun 				0x0C,	0x0E,	0x0C,	0x3D,	0x0C },
224*4882a593Smuzhiyun 	{ STV0900_16APSK_910,	0x0C,	0x0C,	0x0C,	0x0C,	0x2E,
225*4882a593Smuzhiyun 				0x0C,	0x0E,	0x0C,	0x3D,	0x0C },
226*4882a593Smuzhiyun 	{ STV0900_32APSK_34,	0x0C,	0x0C,	0x0C,	0x0C,	0x0C,
227*4882a593Smuzhiyun 				0x0C,	0x0C,	0x0C,	0x0C,	0x0C },
228*4882a593Smuzhiyun 	{ STV0900_32APSK_45,	0x0C,	0x0C,	0x0C,	0x0C,	0x0C,
229*4882a593Smuzhiyun 				0x0C,	0x0C,	0x0C,	0x0C,	0x0C },
230*4882a593Smuzhiyun 	{ STV0900_32APSK_56,	0x0C,	0x0C,	0x0C,	0x0C,	0x0C,
231*4882a593Smuzhiyun 				0x0C,	0x0C,	0x0C,	0x0C,	0x0C },
232*4882a593Smuzhiyun 	{ STV0900_32APSK_89,	0x0C,	0x0C,	0x0C,	0x0C,	0x0C,
233*4882a593Smuzhiyun 				0x0C,	0x0C,	0x0C,	0x0C,	0x0C },
234*4882a593Smuzhiyun 	{ STV0900_32APSK_910,	0x0C,	0x0C,	0x0C,	0x0C,	0x0C,
235*4882a593Smuzhiyun 				0x0C,	0x0C,	0x0C,	0x0C,	0x0C },
236*4882a593Smuzhiyun };
237*4882a593Smuzhiyun 
238*4882a593Smuzhiyun 
239*4882a593Smuzhiyun /* Cut 2.0 Tracking carrier loop carrier QPSK 1/4 to QPSK 2/5 long Frame */
240*4882a593Smuzhiyun static const struct stv0900_car_loop_optim FE_STV0900_S2LowQPCarLoopCut20[3] = {
241*4882a593Smuzhiyun 	/* Modcod		2MPon	2MPoff	5MPon	5MPoff	10MPon
242*4882a593Smuzhiyun 				10MPoff	20MPon	20MPoff	30MPon	30MPoff */
243*4882a593Smuzhiyun 	{ STV0900_QPSK_14,	0x0F,	0x3F,	0x0E,	0x3F,	0x2D,
244*4882a593Smuzhiyun 				0x2F,	0x2D,	0x1F,	0x3D,	0x3E },
245*4882a593Smuzhiyun 	{ STV0900_QPSK_13,	0x0F,	0x3F,	0x0E,	0x3F,	0x2D,
246*4882a593Smuzhiyun 				0x2F,	0x3D,	0x0F,	0x3D,	0x2E },
247*4882a593Smuzhiyun 	{ STV0900_QPSK_25,	0x1F,	0x3F,	0x1E,	0x3F,	0x3D,
248*4882a593Smuzhiyun 				0x1F,	0x3D,	0x3E,	0x3D,	0x2E }
249*4882a593Smuzhiyun };
250*4882a593Smuzhiyun 
251*4882a593Smuzhiyun 
252*4882a593Smuzhiyun /* Cut 2.0 Tracking carrier loop carrier  short Frame, cut 1.2 and 2.0 */
253*4882a593Smuzhiyun static const
254*4882a593Smuzhiyun struct stv0900_short_frames_car_loop_optim FE_STV0900_S2ShortCarLoop[4] = {
255*4882a593Smuzhiyun 	/*Mod		2Mcut1.2 2Mcut2.0 5Mcut1.2 5Mcut2.0 10Mcut1.2
256*4882a593Smuzhiyun 			10Mcut2.0 20Mcut1.2 20M_cut2.0 30Mcut1.2 30Mcut2.0*/
257*4882a593Smuzhiyun 	{ STV0900_QPSK,		0x3C,	0x2F,	0x2B,	0x2E,	0x0B,
258*4882a593Smuzhiyun 				0x0E,	0x3A,	0x0E,	0x2A,	0x3D },
259*4882a593Smuzhiyun 	{ STV0900_8PSK,		0x0B,	0x3E,	0x2A,	0x0E,	0x0A,
260*4882a593Smuzhiyun 				0x2D,	0x19,	0x0D,	0x09,	0x3C },
261*4882a593Smuzhiyun 	{ STV0900_16APSK,	0x1B,	0x1E,	0x1B,	0x1E,	0x1B,
262*4882a593Smuzhiyun 				0x1E,	0x3A,	0x3D,	0x2A,	0x2D },
263*4882a593Smuzhiyun 	{ STV0900_32APSK,	0x1B,	0x1E,	0x1B,	0x1E,	0x1B,
264*4882a593Smuzhiyun 				0x1E,	0x3A,	0x3D,	0x2A,	0x2D }
265*4882a593Smuzhiyun };
266*4882a593Smuzhiyun 
267*4882a593Smuzhiyun static	const struct stv0900_car_loop_optim FE_STV0900_S2CarLoopCut30[14] = {
268*4882a593Smuzhiyun 	/*Modcod		2MPon	2MPoff	5MPon	5MPoff	10MPon
269*4882a593Smuzhiyun 				10MPoff	20MPon	20MPoff	30MPon	30MPoff	*/
270*4882a593Smuzhiyun 	{ STV0900_QPSK_12,	0x3C,	0x2C,	0x0C,	0x2C,	0x1B,
271*4882a593Smuzhiyun 				0x2C,	0x1B,	0x1C,	0x0B,	0x3B },
272*4882a593Smuzhiyun 	{ STV0900_QPSK_35,	0x0D,	0x0D,	0x0C,	0x0D,	0x1B,
273*4882a593Smuzhiyun 				0x3C,	0x1B,	0x1C,	0x0B,	0x3B },
274*4882a593Smuzhiyun 	{ STV0900_QPSK_23,	0x1D,	0x0D,	0x0C,	0x1D,	0x2B,
275*4882a593Smuzhiyun 				0x3C,	0x1B,	0x1C,	0x0B,	0x3B },
276*4882a593Smuzhiyun 	{ STV0900_QPSK_34,	0x1D,	0x1D,	0x0C,	0x1D,	0x2B,
277*4882a593Smuzhiyun 				0x3C,	0x1B,	0x1C,	0x0B,	0x3B },
278*4882a593Smuzhiyun 	{ STV0900_QPSK_45,	0x2D,	0x1D,	0x1C,	0x1D,	0x2B,
279*4882a593Smuzhiyun 				0x3C,	0x2B,	0x0C,	0x1B,	0x3B },
280*4882a593Smuzhiyun 	{ STV0900_QPSK_56,	0x2D,	0x1D,	0x1C,	0x1D,	0x2B,
281*4882a593Smuzhiyun 				0x3C,	0x2B,	0x0C,	0x1B,	0x3B },
282*4882a593Smuzhiyun 	{ STV0900_QPSK_89,	0x3D,	0x2D,	0x1C,	0x1D,	0x3B,
283*4882a593Smuzhiyun 				0x3C,	0x2B,	0x0C,	0x1B,	0x3B },
284*4882a593Smuzhiyun 	{ STV0900_QPSK_910,	0x3D,	0x2D,	0x1C,	0x1D,	0x3B,
285*4882a593Smuzhiyun 				0x3C,	0x2B,	0x0C,	0x1B,	0x3B },
286*4882a593Smuzhiyun 	{ STV0900_8PSK_35,	0x39,	0x19,	0x39,	0x19,	0x19,
287*4882a593Smuzhiyun 				0x19,	0x19,	0x19,	0x09,	0x19 },
288*4882a593Smuzhiyun 	{ STV0900_8PSK_23,	0x2A,	0x39,	0x1A,	0x0A,	0x39,
289*4882a593Smuzhiyun 				0x0A,	0x29,	0x39,	0x29,	0x0A },
290*4882a593Smuzhiyun 	{ STV0900_8PSK_34,	0x0B,	0x3A,	0x0B,	0x0B,	0x3A,
291*4882a593Smuzhiyun 				0x1B,	0x1A,	0x0B,	0x1A,	0x3A },
292*4882a593Smuzhiyun 	{ STV0900_8PSK_56,	0x0C,	0x1B,	0x3B,	0x2B,	0x1B,
293*4882a593Smuzhiyun 				0x3B,	0x3A,	0x3B,	0x3A,	0x1B },
294*4882a593Smuzhiyun 	{ STV0900_8PSK_89,	0x2C,	0x2C,	0x2C,	0x1C,	0x2B,
295*4882a593Smuzhiyun 				0x0C,	0x0B,	0x3B,	0x0B,	0x1B },
296*4882a593Smuzhiyun 	{ STV0900_8PSK_910,	0x2C,	0x3C,	0x2C,	0x1C,	0x3B,
297*4882a593Smuzhiyun 				0x1C,	0x0B,	0x3B,	0x0B,	0x1B }
298*4882a593Smuzhiyun };
299*4882a593Smuzhiyun 
300*4882a593Smuzhiyun static	const
301*4882a593Smuzhiyun struct stv0900_car_loop_optim FE_STV0900_S2APSKCarLoopCut30[11] = {
302*4882a593Smuzhiyun 	/*Modcod		2MPon	2MPoff	5MPon	5MPoff	10MPon
303*4882a593Smuzhiyun 				10MPoff	20MPon	20MPoff	30MPon	30MPoff	*/
304*4882a593Smuzhiyun 	{ STV0900_16APSK_23,	0x0A,	0x0A,	0x0A,	0x0A,	0x1A,
305*4882a593Smuzhiyun 				0x0A,	0x3A,	0x0A,	0x2A,	0x0A },
306*4882a593Smuzhiyun 	{ STV0900_16APSK_34,	0x0A,	0x0A,	0x0A,	0x0A,	0x0B,
307*4882a593Smuzhiyun 				0x0A,	0x3B,	0x0A,	0x1B,	0x0A },
308*4882a593Smuzhiyun 	{ STV0900_16APSK_45,	0x0A,	0x0A,	0x0A,	0x0A,	0x1B,
309*4882a593Smuzhiyun 				0x0A,	0x3B,	0x0A,	0x2B,	0x0A },
310*4882a593Smuzhiyun 	{ STV0900_16APSK_56,	0x0A,	0x0A,	0x0A,	0x0A,	0x1B,
311*4882a593Smuzhiyun 				0x0A,	0x3B,	0x0A,	0x2B,	0x0A },
312*4882a593Smuzhiyun 	{ STV0900_16APSK_89,	0x0A,	0x0A,	0x0A,	0x0A,	0x2B,
313*4882a593Smuzhiyun 				0x0A,	0x0C,	0x0A,	0x3B,	0x0A },
314*4882a593Smuzhiyun 	{ STV0900_16APSK_910,	0x0A,	0x0A,	0x0A,	0x0A,	0x2B,
315*4882a593Smuzhiyun 				0x0A,	0x0C,	0x0A,	0x3B,	0x0A },
316*4882a593Smuzhiyun 	{ STV0900_32APSK_34,	0x0A,	0x0A,	0x0A,	0x0A,	0x0A,
317*4882a593Smuzhiyun 				0x0A,	0x0A,	0x0A,	0x0A,	0x0A },
318*4882a593Smuzhiyun 	{ STV0900_32APSK_45,	0x0A,	0x0A,	0x0A,	0x0A,	0x0A,
319*4882a593Smuzhiyun 				0x0A,	0x0A,	0x0A,	0x0A,	0x0A },
320*4882a593Smuzhiyun 	{ STV0900_32APSK_56,	0x0A,	0x0A,	0x0A,	0x0A,	0x0A,
321*4882a593Smuzhiyun 				0x0A,	0x0A,	0x0A,	0x0A,	0x0A },
322*4882a593Smuzhiyun 	{ STV0900_32APSK_89,	0x0A,	0x0A,	0x0A,	0x0A,	0x0A,
323*4882a593Smuzhiyun 				0x0A,	0x0A,	0x0A,	0x0A,	0x0A },
324*4882a593Smuzhiyun 	{ STV0900_32APSK_910,	0x0A,	0x0A,	0x0A,	0x0A,	0x0A,
325*4882a593Smuzhiyun 				0x0A,	0x0A,	0x0A,	0x0A,	0x0A }
326*4882a593Smuzhiyun };
327*4882a593Smuzhiyun 
328*4882a593Smuzhiyun static	const
329*4882a593Smuzhiyun struct stv0900_car_loop_optim FE_STV0900_S2LowQPCarLoopCut30[3] = {
330*4882a593Smuzhiyun 	/*Modcod		2MPon	2MPoff	5MPon	5MPoff	10MPon
331*4882a593Smuzhiyun 				10MPoff	20MPon	20MPoff	30MPon	30MPoff*/
332*4882a593Smuzhiyun 	{ STV0900_QPSK_14,	0x0C,	0x3C,	0x0B,	0x3C,	0x2A,
333*4882a593Smuzhiyun 				0x2C,	0x2A,	0x1C,	0x3A,	0x3B },
334*4882a593Smuzhiyun 	{ STV0900_QPSK_13,	0x0C,	0x3C,	0x0B,	0x3C,	0x2A,
335*4882a593Smuzhiyun 				0x2C,	0x3A,	0x0C,	0x3A,	0x2B },
336*4882a593Smuzhiyun 	{ STV0900_QPSK_25,	0x1C,	0x3C,	0x1B,	0x3C,	0x3A,
337*4882a593Smuzhiyun 				0x1C,	0x3A,	0x3B,	0x3A,	0x2B }
338*4882a593Smuzhiyun };
339*4882a593Smuzhiyun 
340*4882a593Smuzhiyun static	const struct stv0900_short_frames_car_loop_optim_vs_mod
341*4882a593Smuzhiyun FE_STV0900_S2ShortCarLoopCut30[4] = {
342*4882a593Smuzhiyun 	/*Mod		2Mcut3.0 5Mcut3.0 10Mcut3.0 20Mcut3.0 30Mcut3.0*/
343*4882a593Smuzhiyun 	{ STV0900_QPSK,		0x2C,	0x2B,	0x0B,	0x0B,	0x3A },
344*4882a593Smuzhiyun 	{ STV0900_8PSK,		0x3B,	0x0B,	0x2A,	0x0A,	0x39 },
345*4882a593Smuzhiyun 	{ STV0900_16APSK,	0x1B,	0x1B,	0x1B,	0x3A,	0x2A },
346*4882a593Smuzhiyun 	{ STV0900_32APSK,	0x1B,	0x1B,	0x1B,	0x3A,	0x2A },
347*4882a593Smuzhiyun 
348*4882a593Smuzhiyun };
349*4882a593Smuzhiyun 
350*4882a593Smuzhiyun static const u16 STV0900_InitVal[181][2] = {
351*4882a593Smuzhiyun 	{ R0900_OUTCFG		, 0x00	},
352*4882a593Smuzhiyun 	{ R0900_AGCRF1CFG	, 0x11	},
353*4882a593Smuzhiyun 	{ R0900_AGCRF2CFG	, 0x13	},
354*4882a593Smuzhiyun 	{ R0900_TSGENERAL1X	, 0x14	},
355*4882a593Smuzhiyun 	{ R0900_TSTTNR2		, 0x21	},
356*4882a593Smuzhiyun 	{ R0900_TSTTNR4		, 0x21	},
357*4882a593Smuzhiyun 	{ R0900_P2_DISTXCTL	, 0x22	},
358*4882a593Smuzhiyun 	{ R0900_P2_F22TX	, 0xc0	},
359*4882a593Smuzhiyun 	{ R0900_P2_F22RX	, 0xc0	},
360*4882a593Smuzhiyun 	{ R0900_P2_DISRXCTL	, 0x00	},
361*4882a593Smuzhiyun 	{ R0900_P2_TNRSTEPS	, 0x87	},
362*4882a593Smuzhiyun 	{ R0900_P2_TNRGAIN	, 0x09	},
363*4882a593Smuzhiyun 	{ R0900_P2_DMDCFGMD	, 0xF9	},
364*4882a593Smuzhiyun 	{ R0900_P2_DEMOD	, 0x08	},
365*4882a593Smuzhiyun 	{ R0900_P2_DMDCFG3	, 0xc4	},
366*4882a593Smuzhiyun 	{ R0900_P2_CARFREQ	, 0xed	},
367*4882a593Smuzhiyun 	{ R0900_P2_TNRCFG2	, 0x02	},
368*4882a593Smuzhiyun 	{ R0900_P2_TNRCFG3	, 0x02	},
369*4882a593Smuzhiyun 	{ R0900_P2_LDT		, 0xd0	},
370*4882a593Smuzhiyun 	{ R0900_P2_LDT2		, 0xb8	},
371*4882a593Smuzhiyun 	{ R0900_P2_TMGCFG	, 0xd2	},
372*4882a593Smuzhiyun 	{ R0900_P2_TMGTHRISE	, 0x20	},
373*4882a593Smuzhiyun 	{ R0900_P2_TMGTHFALL	, 0x00	},
374*4882a593Smuzhiyun 	{ R0900_P2_FECSPY	, 0x88	},
375*4882a593Smuzhiyun 	{ R0900_P2_FSPYDATA	, 0x3a	},
376*4882a593Smuzhiyun 	{ R0900_P2_FBERCPT4	, 0x00	},
377*4882a593Smuzhiyun 	{ R0900_P2_FSPYBER	, 0x10	},
378*4882a593Smuzhiyun 	{ R0900_P2_ERRCTRL1	, 0x35	},
379*4882a593Smuzhiyun 	{ R0900_P2_ERRCTRL2	, 0xc1	},
380*4882a593Smuzhiyun 	{ R0900_P2_CFRICFG	, 0xf8	},
381*4882a593Smuzhiyun 	{ R0900_P2_NOSCFG	, 0x1c	},
382*4882a593Smuzhiyun 	{ R0900_P2_DMDT0M	, 0x20	},
383*4882a593Smuzhiyun 	{ R0900_P2_CORRELMANT	, 0x70	},
384*4882a593Smuzhiyun 	{ R0900_P2_CORRELABS	, 0x88	},
385*4882a593Smuzhiyun 	{ R0900_P2_AGC2O	, 0x5b	},
386*4882a593Smuzhiyun 	{ R0900_P2_AGC2REF	, 0x38	},
387*4882a593Smuzhiyun 	{ R0900_P2_CARCFG	, 0xe4	},
388*4882a593Smuzhiyun 	{ R0900_P2_ACLC		, 0x1A	},
389*4882a593Smuzhiyun 	{ R0900_P2_BCLC		, 0x09	},
390*4882a593Smuzhiyun 	{ R0900_P2_CARHDR	, 0x08	},
391*4882a593Smuzhiyun 	{ R0900_P2_KREFTMG	, 0xc1	},
392*4882a593Smuzhiyun 	{ R0900_P2_SFRUPRATIO	, 0xf0	},
393*4882a593Smuzhiyun 	{ R0900_P2_SFRLOWRATIO	, 0x70	},
394*4882a593Smuzhiyun 	{ R0900_P2_SFRSTEP	, 0x58	},
395*4882a593Smuzhiyun 	{ R0900_P2_TMGCFG2	, 0x01	},
396*4882a593Smuzhiyun 	{ R0900_P2_CAR2CFG	, 0x26	},
397*4882a593Smuzhiyun 	{ R0900_P2_BCLC2S2Q	, 0x86	},
398*4882a593Smuzhiyun 	{ R0900_P2_BCLC2S28	, 0x86	},
399*4882a593Smuzhiyun 	{ R0900_P2_SMAPCOEF7	, 0x77	},
400*4882a593Smuzhiyun 	{ R0900_P2_SMAPCOEF6	, 0x85	},
401*4882a593Smuzhiyun 	{ R0900_P2_SMAPCOEF5	, 0x77	},
402*4882a593Smuzhiyun 	{ R0900_P2_TSCFGL	, 0x20	},
403*4882a593Smuzhiyun 	{ R0900_P2_DMDCFG2	, 0x3b	},
404*4882a593Smuzhiyun 	{ R0900_P2_MODCODLST0	, 0xff	},
405*4882a593Smuzhiyun 	{ R0900_P2_MODCODLST1	, 0xff	},
406*4882a593Smuzhiyun 	{ R0900_P2_MODCODLST2	, 0xff	},
407*4882a593Smuzhiyun 	{ R0900_P2_MODCODLST3	, 0xff	},
408*4882a593Smuzhiyun 	{ R0900_P2_MODCODLST4	, 0xff	},
409*4882a593Smuzhiyun 	{ R0900_P2_MODCODLST5	, 0xff	},
410*4882a593Smuzhiyun 	{ R0900_P2_MODCODLST6	, 0xff	},
411*4882a593Smuzhiyun 	{ R0900_P2_MODCODLST7	, 0xcc	},
412*4882a593Smuzhiyun 	{ R0900_P2_MODCODLST8	, 0xcc	},
413*4882a593Smuzhiyun 	{ R0900_P2_MODCODLST9	, 0xcc	},
414*4882a593Smuzhiyun 	{ R0900_P2_MODCODLSTA	, 0xcc	},
415*4882a593Smuzhiyun 	{ R0900_P2_MODCODLSTB	, 0xcc	},
416*4882a593Smuzhiyun 	{ R0900_P2_MODCODLSTC	, 0xcc	},
417*4882a593Smuzhiyun 	{ R0900_P2_MODCODLSTD	, 0xcc	},
418*4882a593Smuzhiyun 	{ R0900_P2_MODCODLSTE	, 0xcc	},
419*4882a593Smuzhiyun 	{ R0900_P2_MODCODLSTF	, 0xcf	},
420*4882a593Smuzhiyun 	{ R0900_P1_DISTXCTL	, 0x22	},
421*4882a593Smuzhiyun 	{ R0900_P1_F22TX	, 0xc0	},
422*4882a593Smuzhiyun 	{ R0900_P1_F22RX	, 0xc0	},
423*4882a593Smuzhiyun 	{ R0900_P1_DISRXCTL	, 0x00	},
424*4882a593Smuzhiyun 	{ R0900_P1_TNRSTEPS	, 0x87	},
425*4882a593Smuzhiyun 	{ R0900_P1_TNRGAIN	, 0x09	},
426*4882a593Smuzhiyun 	{ R0900_P1_DMDCFGMD	, 0xf9	},
427*4882a593Smuzhiyun 	{ R0900_P1_DEMOD	, 0x08	},
428*4882a593Smuzhiyun 	{ R0900_P1_DMDCFG3	, 0xc4	},
429*4882a593Smuzhiyun 	{ R0900_P1_DMDT0M	, 0x20	},
430*4882a593Smuzhiyun 	{ R0900_P1_CARFREQ	, 0xed	},
431*4882a593Smuzhiyun 	{ R0900_P1_TNRCFG2	, 0x82	},
432*4882a593Smuzhiyun 	{ R0900_P1_TNRCFG3	, 0x02	},
433*4882a593Smuzhiyun 	{ R0900_P1_LDT		, 0xd0	},
434*4882a593Smuzhiyun 	{ R0900_P1_LDT2		, 0xb8	},
435*4882a593Smuzhiyun 	{ R0900_P1_TMGCFG	, 0xd2	},
436*4882a593Smuzhiyun 	{ R0900_P1_TMGTHRISE	, 0x20	},
437*4882a593Smuzhiyun 	{ R0900_P1_TMGTHFALL	, 0x00	},
438*4882a593Smuzhiyun 	{ R0900_P1_SFRUPRATIO	, 0xf0	},
439*4882a593Smuzhiyun 	{ R0900_P1_SFRLOWRATIO	, 0x70	},
440*4882a593Smuzhiyun 	{ R0900_P1_TSCFGL	, 0x20	},
441*4882a593Smuzhiyun 	{ R0900_P1_FECSPY	, 0x88	},
442*4882a593Smuzhiyun 	{ R0900_P1_FSPYDATA	, 0x3a	},
443*4882a593Smuzhiyun 	{ R0900_P1_FBERCPT4	, 0x00	},
444*4882a593Smuzhiyun 	{ R0900_P1_FSPYBER	, 0x10	},
445*4882a593Smuzhiyun 	{ R0900_P1_ERRCTRL1	, 0x35	},
446*4882a593Smuzhiyun 	{ R0900_P1_ERRCTRL2	, 0xc1	},
447*4882a593Smuzhiyun 	{ R0900_P1_CFRICFG	, 0xf8	},
448*4882a593Smuzhiyun 	{ R0900_P1_NOSCFG	, 0x1c	},
449*4882a593Smuzhiyun 	{ R0900_P1_CORRELMANT	, 0x70	},
450*4882a593Smuzhiyun 	{ R0900_P1_CORRELABS	, 0x88	},
451*4882a593Smuzhiyun 	{ R0900_P1_AGC2O	, 0x5b	},
452*4882a593Smuzhiyun 	{ R0900_P1_AGC2REF	, 0x38	},
453*4882a593Smuzhiyun 	{ R0900_P1_CARCFG	, 0xe4	},
454*4882a593Smuzhiyun 	{ R0900_P1_ACLC		, 0x1A	},
455*4882a593Smuzhiyun 	{ R0900_P1_BCLC		, 0x09	},
456*4882a593Smuzhiyun 	{ R0900_P1_CARHDR	, 0x08	},
457*4882a593Smuzhiyun 	{ R0900_P1_KREFTMG	, 0xc1	},
458*4882a593Smuzhiyun 	{ R0900_P1_SFRSTEP	, 0x58	},
459*4882a593Smuzhiyun 	{ R0900_P1_TMGCFG2	, 0x01	},
460*4882a593Smuzhiyun 	{ R0900_P1_CAR2CFG	, 0x26	},
461*4882a593Smuzhiyun 	{ R0900_P1_BCLC2S2Q	, 0x86	},
462*4882a593Smuzhiyun 	{ R0900_P1_BCLC2S28	, 0x86	},
463*4882a593Smuzhiyun 	{ R0900_P1_SMAPCOEF7	, 0x77	},
464*4882a593Smuzhiyun 	{ R0900_P1_SMAPCOEF6	, 0x85	},
465*4882a593Smuzhiyun 	{ R0900_P1_SMAPCOEF5	, 0x77	},
466*4882a593Smuzhiyun 	{ R0900_P1_DMDCFG2	, 0x3b	},
467*4882a593Smuzhiyun 	{ R0900_P1_MODCODLST0	, 0xff	},
468*4882a593Smuzhiyun 	{ R0900_P1_MODCODLST1	, 0xff	},
469*4882a593Smuzhiyun 	{ R0900_P1_MODCODLST2	, 0xff	},
470*4882a593Smuzhiyun 	{ R0900_P1_MODCODLST3	, 0xff	},
471*4882a593Smuzhiyun 	{ R0900_P1_MODCODLST4	, 0xff	},
472*4882a593Smuzhiyun 	{ R0900_P1_MODCODLST5	, 0xff	},
473*4882a593Smuzhiyun 	{ R0900_P1_MODCODLST6	, 0xff	},
474*4882a593Smuzhiyun 	{ R0900_P1_MODCODLST7	, 0xcc	},
475*4882a593Smuzhiyun 	{ R0900_P1_MODCODLST8	, 0xcc	},
476*4882a593Smuzhiyun 	{ R0900_P1_MODCODLST9	, 0xcc	},
477*4882a593Smuzhiyun 	{ R0900_P1_MODCODLSTA	, 0xcc	},
478*4882a593Smuzhiyun 	{ R0900_P1_MODCODLSTB	, 0xcc	},
479*4882a593Smuzhiyun 	{ R0900_P1_MODCODLSTC	, 0xcc	},
480*4882a593Smuzhiyun 	{ R0900_P1_MODCODLSTD	, 0xcc	},
481*4882a593Smuzhiyun 	{ R0900_P1_MODCODLSTE	, 0xcc	},
482*4882a593Smuzhiyun 	{ R0900_P1_MODCODLSTF	, 0xcf	},
483*4882a593Smuzhiyun 	{ R0900_GENCFG		, 0x1d	},
484*4882a593Smuzhiyun 	{ R0900_NBITER_NF4	, 0x37	},
485*4882a593Smuzhiyun 	{ R0900_NBITER_NF5	, 0x29	},
486*4882a593Smuzhiyun 	{ R0900_NBITER_NF6	, 0x37	},
487*4882a593Smuzhiyun 	{ R0900_NBITER_NF7	, 0x33	},
488*4882a593Smuzhiyun 	{ R0900_NBITER_NF8	, 0x31	},
489*4882a593Smuzhiyun 	{ R0900_NBITER_NF9	, 0x2f	},
490*4882a593Smuzhiyun 	{ R0900_NBITER_NF10	, 0x39	},
491*4882a593Smuzhiyun 	{ R0900_NBITER_NF11	, 0x3a	},
492*4882a593Smuzhiyun 	{ R0900_NBITER_NF12	, 0x29	},
493*4882a593Smuzhiyun 	{ R0900_NBITER_NF13	, 0x37	},
494*4882a593Smuzhiyun 	{ R0900_NBITER_NF14	, 0x33	},
495*4882a593Smuzhiyun 	{ R0900_NBITER_NF15	, 0x2f	},
496*4882a593Smuzhiyun 	{ R0900_NBITER_NF16	, 0x39	},
497*4882a593Smuzhiyun 	{ R0900_NBITER_NF17	, 0x3a	},
498*4882a593Smuzhiyun 	{ R0900_NBITERNOERR	, 0x04	},
499*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF4	, 0x0C	},
500*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF5	, 0x0F	},
501*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF6	, 0x11	},
502*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF7	, 0x14	},
503*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF8	, 0x17	},
504*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF9	, 0x19	},
505*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF10	, 0x20	},
506*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF11	, 0x21	},
507*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF12	, 0x0D	},
508*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF13	, 0x0F	},
509*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF14	, 0x13	},
510*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF15	, 0x1A	},
511*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF16	, 0x1F	},
512*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF17	, 0x21	},
513*4882a593Smuzhiyun 	{ R0900_RCCFG2		, 0x20	},
514*4882a593Smuzhiyun 	{ R0900_P1_FECM		, 0x01	}, /*disable DSS modes*/
515*4882a593Smuzhiyun 	{ R0900_P2_FECM		, 0x01	}, /*disable DSS modes*/
516*4882a593Smuzhiyun 	{ R0900_P1_PRVIT	, 0x2F	}, /*disable puncture rate 6/7*/
517*4882a593Smuzhiyun 	{ R0900_P2_PRVIT	, 0x2F	}, /*disable puncture rate 6/7*/
518*4882a593Smuzhiyun 	{ R0900_STROUT1CFG	, 0x4c	},
519*4882a593Smuzhiyun 	{ R0900_STROUT2CFG	, 0x4c	},
520*4882a593Smuzhiyun 	{ R0900_CLKOUT1CFG	, 0x50	},
521*4882a593Smuzhiyun 	{ R0900_CLKOUT2CFG	, 0x50	},
522*4882a593Smuzhiyun 	{ R0900_DPN1CFG		, 0x4a	},
523*4882a593Smuzhiyun 	{ R0900_DPN2CFG		, 0x4a	},
524*4882a593Smuzhiyun 	{ R0900_DATA71CFG	, 0x52	},
525*4882a593Smuzhiyun 	{ R0900_DATA72CFG	, 0x52	},
526*4882a593Smuzhiyun 	{ R0900_P1_TSCFGM	, 0xc0	},
527*4882a593Smuzhiyun 	{ R0900_P2_TSCFGM	, 0xc0	},
528*4882a593Smuzhiyun 	{ R0900_P1_TSCFGH	, 0xe0	}, /* DVB-CI timings */
529*4882a593Smuzhiyun 	{ R0900_P2_TSCFGH	, 0xe0	}, /* DVB-CI timings */
530*4882a593Smuzhiyun 	{ R0900_P1_TSSPEED	, 0x40	},
531*4882a593Smuzhiyun 	{ R0900_P2_TSSPEED	, 0x40	},
532*4882a593Smuzhiyun };
533*4882a593Smuzhiyun 
534*4882a593Smuzhiyun static const u16 STV0900_Cut20_AddOnVal[32][2] = {
535*4882a593Smuzhiyun 	{ R0900_P2_DMDCFG3	, 0xe8	},
536*4882a593Smuzhiyun 	{ R0900_P2_DMDCFG4	, 0x10	},
537*4882a593Smuzhiyun 	{ R0900_P2_CARFREQ	, 0x38	},
538*4882a593Smuzhiyun 	{ R0900_P2_CARHDR	, 0x20	},
539*4882a593Smuzhiyun 	{ R0900_P2_KREFTMG	, 0x5a	},
540*4882a593Smuzhiyun 	{ R0900_P2_SMAPCOEF7	, 0x06	},
541*4882a593Smuzhiyun 	{ R0900_P2_SMAPCOEF6	, 0x00	},
542*4882a593Smuzhiyun 	{ R0900_P2_SMAPCOEF5	, 0x04	},
543*4882a593Smuzhiyun 	{ R0900_P2_NOSCFG	, 0x0c	},
544*4882a593Smuzhiyun 	{ R0900_P1_DMDCFG3	, 0xe8	},
545*4882a593Smuzhiyun 	{ R0900_P1_DMDCFG4	, 0x10	},
546*4882a593Smuzhiyun 	{ R0900_P1_CARFREQ	, 0x38	},
547*4882a593Smuzhiyun 	{ R0900_P1_CARHDR	, 0x20	},
548*4882a593Smuzhiyun 	{ R0900_P1_KREFTMG	, 0x5a	},
549*4882a593Smuzhiyun 	{ R0900_P1_SMAPCOEF7	, 0x06	},
550*4882a593Smuzhiyun 	{ R0900_P1_SMAPCOEF6	, 0x00	},
551*4882a593Smuzhiyun 	{ R0900_P1_SMAPCOEF5	, 0x04	},
552*4882a593Smuzhiyun 	{ R0900_P1_NOSCFG	, 0x0c	},
553*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF4	, 0x21	},
554*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF5	, 0x21	},
555*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF6	, 0x20	},
556*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF7	, 0x1F	},
557*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF8	, 0x1E	},
558*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF9	, 0x1E	},
559*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF10	, 0x1D	},
560*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF11	, 0x1B	},
561*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF12	, 0x20	},
562*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF13	, 0x20	},
563*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF14	, 0x20	},
564*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF15	, 0x20	},
565*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF16	, 0x20	},
566*4882a593Smuzhiyun 	{ R0900_GAINLLR_NF17	, 0x21	}
567*4882a593Smuzhiyun 
568*4882a593Smuzhiyun };
569*4882a593Smuzhiyun 
570*4882a593Smuzhiyun #endif
571