diff options
author | Manu Abraham <manu@linuxtv.org> | 2008-01-25 16:20:48 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-12-29 14:53:22 -0500 |
commit | 8be969b3134ade447e3ba9f63e60eeabca270227 (patch) | |
tree | 27b0ab5b6f3b6fd390e7a0eb6c120a042b9f07e0 /drivers/media/dvb | |
parent | 27713c8ba45e807c64c53a8a865adbe3a73f3b2d (diff) |
V4L/DVB (9450): Code Review: #4 Consolidate configurations
* Better readability
* Avoids duplication
Comments from Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb')
-rw-r--r-- | drivers/media/dvb/frontends/stb0899_cfg.h | 287 | ||||
-rw-r--r-- | drivers/media/dvb/frontends/stb6100_cfg.h | 108 | ||||
-rw-r--r-- | drivers/media/dvb/frontends/tda8261.h | 19 | ||||
-rw-r--r-- | drivers/media/dvb/frontends/tda8261_cfg.h | 84 | ||||
-rw-r--r-- | drivers/media/dvb/ttpci/budget-av.c | 365 | ||||
-rw-r--r-- | drivers/media/dvb/ttpci/budget-ci.c | 387 |
6 files changed, 536 insertions, 714 deletions
diff --git a/drivers/media/dvb/frontends/stb0899_cfg.h b/drivers/media/dvb/frontends/stb0899_cfg.h new file mode 100644 index 000000000000..0867906d3ff3 --- /dev/null +++ b/drivers/media/dvb/frontends/stb0899_cfg.h | |||
@@ -0,0 +1,287 @@ | |||
1 | /* | ||
2 | STB0899 Multistandard Frontend driver | ||
3 | Copyright (C) Manu Abraham (abraham.manu@gmail.com) | ||
4 | |||
5 | Copyright (C) ST Microelectronics | ||
6 | |||
7 | This program is free software; you can redistribute it and/or modify | ||
8 | it under the terms of the GNU General Public License as published by | ||
9 | the Free Software Foundation; either version 2 of the License, or | ||
10 | (at your option) any later version. | ||
11 | |||
12 | This program is distributed in the hope that it will be useful, | ||
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | GNU General Public License for more details. | ||
16 | |||
17 | You should have received a copy of the GNU General Public License | ||
18 | along with this program; if not, write to the Free Software | ||
19 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
20 | */ | ||
21 | |||
22 | #ifndef __STB0899_CFG_H | ||
23 | #define __STB0899_CFG_H | ||
24 | |||
25 | static const struct stb0899_s2_reg stb0899_s2_init_2[] = { | ||
26 | |||
27 | { STB0899_OFF0_DMD_STATUS , STB0899_BASE_DMD_STATUS , 0x00000103 }, /* DMDSTATUS */ | ||
28 | { STB0899_OFF0_CRL_FREQ , STB0899_BASE_CRL_FREQ , 0x3ed1da56 }, /* CRLFREQ */ | ||
29 | { STB0899_OFF0_BTR_FREQ , STB0899_BASE_BTR_FREQ , 0x00004000 }, /* BTRFREQ */ | ||
30 | { STB0899_OFF0_IF_AGC_GAIN , STB0899_BASE_IF_AGC_GAIN , 0x00002ade }, /* IFAGCGAIN */ | ||
31 | { STB0899_OFF0_BB_AGC_GAIN , STB0899_BASE_BB_AGC_GAIN , 0x000001bc }, /* BBAGCGAIN */ | ||
32 | { STB0899_OFF0_DC_OFFSET , STB0899_BASE_DC_OFFSET , 0x00000200 }, /* DCOFFSET */ | ||
33 | { STB0899_OFF0_DMD_CNTRL , STB0899_BASE_DMD_CNTRL , 0x0000000f }, /* DMDCNTRL */ | ||
34 | |||
35 | { STB0899_OFF0_IF_AGC_CNTRL , STB0899_BASE_IF_AGC_CNTRL , 0x03fb4a20 }, /* IFAGCCNTRL */ | ||
36 | { STB0899_OFF0_BB_AGC_CNTRL , STB0899_BASE_BB_AGC_CNTRL , 0x00200c97 }, /* BBAGCCNTRL */ | ||
37 | |||
38 | { STB0899_OFF0_CRL_CNTRL , STB0899_BASE_CRL_CNTRL , 0x00000016 }, /* CRLCNTRL */ | ||
39 | { STB0899_OFF0_CRL_PHS_INIT , STB0899_BASE_CRL_PHS_INIT , 0x00000000 }, /* CRLPHSINIT */ | ||
40 | { STB0899_OFF0_CRL_FREQ_INIT , STB0899_BASE_CRL_FREQ_INIT , 0x00000000 }, /* CRLFREQINIT */ | ||
41 | { STB0899_OFF0_CRL_LOOP_GAIN , STB0899_BASE_CRL_LOOP_GAIN , 0x00000000 }, /* CRLLOOPGAIN */ | ||
42 | { STB0899_OFF0_CRL_NOM_FREQ , STB0899_BASE_CRL_NOM_FREQ , 0x3ed097b6 }, /* CRLNOMFREQ */ | ||
43 | { STB0899_OFF0_CRL_SWP_RATE , STB0899_BASE_CRL_SWP_RATE , 0x00000000 }, /* CRLSWPRATE */ | ||
44 | { STB0899_OFF0_CRL_MAX_SWP , STB0899_BASE_CRL_MAX_SWP , 0x00000000 }, /* CRLMAXSWP */ | ||
45 | { STB0899_OFF0_CRL_LK_CNTRL , STB0899_BASE_CRL_LK_CNTRL , 0x0f6cdc01 }, /* CRLLKCNTRL */ | ||
46 | { STB0899_OFF0_DECIM_CNTRL , STB0899_BASE_DECIM_CNTRL , 0x00000000 }, /* DECIMCNTRL */ | ||
47 | { STB0899_OFF0_BTR_CNTRL , STB0899_BASE_BTR_CNTRL , 0x00003993 }, /* BTRCNTRL */ | ||
48 | { STB0899_OFF0_BTR_LOOP_GAIN , STB0899_BASE_BTR_LOOP_GAIN , 0x000d3c6f }, /* BTRLOOPGAIN */ | ||
49 | { STB0899_OFF0_BTR_PHS_INIT , STB0899_BASE_BTR_PHS_INIT , 0x00000000 }, /* BTRPHSINIT */ | ||
50 | { STB0899_OFF0_BTR_FREQ_INIT , STB0899_BASE_BTR_FREQ_INIT , 0x00000000 }, /* BTRFREQINIT */ | ||
51 | { STB0899_OFF0_BTR_NOM_FREQ , STB0899_BASE_BTR_NOM_FREQ , 0x0238e38e }, /* BTRNOMFREQ */ | ||
52 | { STB0899_OFF0_BTR_LK_CNTRL , STB0899_BASE_BTR_LK_CNTRL , 0x00000000 }, /* BTRLKCNTRL */ | ||
53 | { STB0899_OFF0_DECN_CNTRL , STB0899_BASE_DECN_CNTRL , 0x00000000 }, /* DECNCNTRL */ | ||
54 | { STB0899_OFF0_TP_CNTRL , STB0899_BASE_TP_CNTRL , 0x00000000 }, /* TPCNTRL */ | ||
55 | { STB0899_OFF0_TP_BUF_STATUS , STB0899_BASE_TP_BUF_STATUS , 0x00000000 }, /* TPBUFSTATUS */ | ||
56 | { STB0899_OFF0_DC_ESTIM , STB0899_BASE_DC_ESTIM , 0x00000000 }, /* DCESTIM */ | ||
57 | { STB0899_OFF0_FLL_CNTRL , STB0899_BASE_FLL_CNTRL , 0x00000000 }, /* FLLCNTRL */ | ||
58 | { STB0899_OFF0_FLL_FREQ_WD , STB0899_BASE_FLL_FREQ_WD , 0x40070000 }, /* FLLFREQWD */ | ||
59 | { STB0899_OFF0_ANTI_ALIAS_SEL , STB0899_BASE_ANTI_ALIAS_SEL , 0x00000001 }, /* ANTIALIASSEL */ | ||
60 | { STB0899_OFF0_RRC_ALPHA , STB0899_BASE_RRC_ALPHA , 0x00000002 }, /* RRCALPHA */ | ||
61 | { STB0899_OFF0_DC_ADAPT_LSHFT , STB0899_BASE_DC_ADAPT_LSHFT , 0x00000000 }, /* DCADAPTISHFT */ | ||
62 | { STB0899_OFF0_IMB_OFFSET , STB0899_BASE_IMB_OFFSET , 0x0000fe01 }, /* IMBOFFSET */ | ||
63 | { STB0899_OFF0_IMB_ESTIMATE , STB0899_BASE_IMB_ESTIMATE , 0x00000000 }, /* IMBESTIMATE */ | ||
64 | { STB0899_OFF0_IMB_CNTRL , STB0899_BASE_IMB_CNTRL , 0x00000001 }, /* IMBCNTRL */ | ||
65 | { STB0899_OFF0_IF_AGC_CNTRL2 , STB0899_BASE_IF_AGC_CNTRL2 , 0x00005007 }, /* IFAGCCNTRL2 */ | ||
66 | { STB0899_OFF0_DMD_CNTRL2 , STB0899_BASE_DMD_CNTRL2 , 0x00000002 }, /* DMDCNTRL2 */ | ||
67 | { STB0899_OFF0_TP_BUFFER , STB0899_BASE_TP_BUFFER , 0x00000000 }, /* TPBUFFER */ | ||
68 | { STB0899_OFF0_TP_BUFFER1 , STB0899_BASE_TP_BUFFER1 , 0x00000000 }, /* TPBUFFER1 */ | ||
69 | { STB0899_OFF0_TP_BUFFER2 , STB0899_BASE_TP_BUFFER2 , 0x00000000 }, /* TPBUFFER2 */ | ||
70 | { STB0899_OFF0_TP_BUFFER3 , STB0899_BASE_TP_BUFFER3 , 0x00000000 }, /* TPBUFFER3 */ | ||
71 | { STB0899_OFF0_TP_BUFFER4 , STB0899_BASE_TP_BUFFER4 , 0x00000000 }, /* TPBUFFER4 */ | ||
72 | { STB0899_OFF0_TP_BUFFER5 , STB0899_BASE_TP_BUFFER5 , 0x00000000 }, /* TPBUFFER5 */ | ||
73 | { STB0899_OFF0_TP_BUFFER6 , STB0899_BASE_TP_BUFFER6 , 0x00000000 }, /* TPBUFFER6 */ | ||
74 | { STB0899_OFF0_TP_BUFFER7 , STB0899_BASE_TP_BUFFER7 , 0x00000000 }, /* TPBUFFER7 */ | ||
75 | { STB0899_OFF0_TP_BUFFER8 , STB0899_BASE_TP_BUFFER8 , 0x00000000 }, /* TPBUFFER8 */ | ||
76 | { STB0899_OFF0_TP_BUFFER9 , STB0899_BASE_TP_BUFFER9 , 0x00000000 }, /* TPBUFFER9 */ | ||
77 | { STB0899_OFF0_TP_BUFFER10 , STB0899_BASE_TP_BUFFER10 , 0x00000000 }, /* TPBUFFER10 */ | ||
78 | { STB0899_OFF0_TP_BUFFER11 , STB0899_BASE_TP_BUFFER11 , 0x00000000 }, /* TPBUFFER11 */ | ||
79 | { STB0899_OFF0_TP_BUFFER12 , STB0899_BASE_TP_BUFFER12 , 0x00000000 }, /* TPBUFFER12 */ | ||
80 | { STB0899_OFF0_TP_BUFFER13 , STB0899_BASE_TP_BUFFER13 , 0x00000000 }, /* TPBUFFER13 */ | ||
81 | { STB0899_OFF0_TP_BUFFER14 , STB0899_BASE_TP_BUFFER14 , 0x00000000 }, /* TPBUFFER14 */ | ||
82 | { STB0899_OFF0_TP_BUFFER15 , STB0899_BASE_TP_BUFFER15 , 0x00000000 }, /* TPBUFFER15 */ | ||
83 | { STB0899_OFF0_TP_BUFFER16 , STB0899_BASE_TP_BUFFER16 , 0x0000ff00 }, /* TPBUFFER16 */ | ||
84 | { STB0899_OFF0_TP_BUFFER17 , STB0899_BASE_TP_BUFFER17 , 0x00000100 }, /* TPBUFFER17 */ | ||
85 | { STB0899_OFF0_TP_BUFFER18 , STB0899_BASE_TP_BUFFER18 , 0x0000fe01 }, /* TPBUFFER18 */ | ||
86 | { STB0899_OFF0_TP_BUFFER19 , STB0899_BASE_TP_BUFFER19 , 0x000004fe }, /* TPBUFFER19 */ | ||
87 | { STB0899_OFF0_TP_BUFFER20 , STB0899_BASE_TP_BUFFER20 , 0x0000cfe7 }, /* TPBUFFER20 */ | ||
88 | { STB0899_OFF0_TP_BUFFER21 , STB0899_BASE_TP_BUFFER21 , 0x0000bec6 }, /* TPBUFFER21 */ | ||
89 | { STB0899_OFF0_TP_BUFFER22 , STB0899_BASE_TP_BUFFER22 , 0x0000c2bf }, /* TPBUFFER22 */ | ||
90 | { STB0899_OFF0_TP_BUFFER23 , STB0899_BASE_TP_BUFFER23 , 0x0000c1c1 }, /* TPBUFFER23 */ | ||
91 | { STB0899_OFF0_TP_BUFFER24 , STB0899_BASE_TP_BUFFER24 , 0x0000c1c1 }, /* TPBUFFER24 */ | ||
92 | { STB0899_OFF0_TP_BUFFER25 , STB0899_BASE_TP_BUFFER25 , 0x0000c1c1 }, /* TPBUFFER25 */ | ||
93 | { STB0899_OFF0_TP_BUFFER26 , STB0899_BASE_TP_BUFFER26 , 0x0000c1c1 }, /* TPBUFFER26 */ | ||
94 | { STB0899_OFF0_TP_BUFFER27 , STB0899_BASE_TP_BUFFER27 , 0x0000c1c0 }, /* TPBUFFER27 */ | ||
95 | { STB0899_OFF0_TP_BUFFER28 , STB0899_BASE_TP_BUFFER28 , 0x0000c0c0 }, /* TPBUFFER28 */ | ||
96 | { STB0899_OFF0_TP_BUFFER29 , STB0899_BASE_TP_BUFFER29 , 0x0000c1c1 }, /* TPBUFFER29 */ | ||
97 | { STB0899_OFF0_TP_BUFFER30 , STB0899_BASE_TP_BUFFER30 , 0x0000c1c1 }, /* TPBUFFER30 */ | ||
98 | { STB0899_OFF0_TP_BUFFER31 , STB0899_BASE_TP_BUFFER31 , 0x0000c0c1 }, /* TPBUFFER31 */ | ||
99 | { STB0899_OFF0_TP_BUFFER32 , STB0899_BASE_TP_BUFFER32 , 0x0000c0c1 }, /* TPBUFFER32 */ | ||
100 | { STB0899_OFF0_TP_BUFFER33 , STB0899_BASE_TP_BUFFER33 , 0x0000c1c1 }, /* TPBUFFER33 */ | ||
101 | { STB0899_OFF0_TP_BUFFER34 , STB0899_BASE_TP_BUFFER34 , 0x0000c1c1 }, /* TPBUFFER34 */ | ||
102 | { STB0899_OFF0_TP_BUFFER35 , STB0899_BASE_TP_BUFFER35 , 0x0000c0c1 }, /* TPBUFFER35 */ | ||
103 | { STB0899_OFF0_TP_BUFFER36 , STB0899_BASE_TP_BUFFER36 , 0x0000c1c1 }, /* TPBUFFER36 */ | ||
104 | { STB0899_OFF0_TP_BUFFER37 , STB0899_BASE_TP_BUFFER37 , 0x0000c0c1 }, /* TPBUFFER37 */ | ||
105 | { STB0899_OFF0_TP_BUFFER38 , STB0899_BASE_TP_BUFFER38 , 0x0000c1c1 }, /* TPBUFFER38 */ | ||
106 | { STB0899_OFF0_TP_BUFFER39 , STB0899_BASE_TP_BUFFER39 , 0x0000c0c0 }, /* TPBUFFER39 */ | ||
107 | { STB0899_OFF0_TP_BUFFER40 , STB0899_BASE_TP_BUFFER40 , 0x0000c1c0 }, /* TPBUFFER40 */ | ||
108 | { STB0899_OFF0_TP_BUFFER41 , STB0899_BASE_TP_BUFFER41 , 0x0000c1c1 }, /* TPBUFFER41 */ | ||
109 | { STB0899_OFF0_TP_BUFFER42 , STB0899_BASE_TP_BUFFER42 , 0x0000c0c0 }, /* TPBUFFER42 */ | ||
110 | { STB0899_OFF0_TP_BUFFER43 , STB0899_BASE_TP_BUFFER43 , 0x0000c1c0 }, /* TPBUFFER43 */ | ||
111 | { STB0899_OFF0_TP_BUFFER44 , STB0899_BASE_TP_BUFFER44 , 0x0000c0c1 }, /* TPBUFFER44 */ | ||
112 | { STB0899_OFF0_TP_BUFFER45 , STB0899_BASE_TP_BUFFER45 , 0x0000c1be }, /* TPBUFFER45 */ | ||
113 | { STB0899_OFF0_TP_BUFFER46 , STB0899_BASE_TP_BUFFER46 , 0x0000c1c9 }, /* TPBUFFER46 */ | ||
114 | { STB0899_OFF0_TP_BUFFER47 , STB0899_BASE_TP_BUFFER47 , 0x0000c0da }, /* TPBUFFER47 */ | ||
115 | { STB0899_OFF0_TP_BUFFER48 , STB0899_BASE_TP_BUFFER48 , 0x0000c0ba }, /* TPBUFFER48 */ | ||
116 | { STB0899_OFF0_TP_BUFFER49 , STB0899_BASE_TP_BUFFER49 , 0x0000c1c4 }, /* TPBUFFER49 */ | ||
117 | { STB0899_OFF0_TP_BUFFER50 , STB0899_BASE_TP_BUFFER50 , 0x0000c1bf }, /* TPBUFFER50 */ | ||
118 | { STB0899_OFF0_TP_BUFFER51 , STB0899_BASE_TP_BUFFER51 , 0x0000c0c1 }, /* TPBUFFER51 */ | ||
119 | { STB0899_OFF0_TP_BUFFER52 , STB0899_BASE_TP_BUFFER52 , 0x0000c1c0 }, /* TPBUFFER52 */ | ||
120 | { STB0899_OFF0_TP_BUFFER53 , STB0899_BASE_TP_BUFFER53 , 0x0000c0c1 }, /* TPBUFFER53 */ | ||
121 | { STB0899_OFF0_TP_BUFFER54 , STB0899_BASE_TP_BUFFER54 , 0x0000c1c1 }, /* TPBUFFER54 */ | ||
122 | { STB0899_OFF0_TP_BUFFER55 , STB0899_BASE_TP_BUFFER55 , 0x0000c1c1 }, /* TPBUFFER55 */ | ||
123 | { STB0899_OFF0_TP_BUFFER56 , STB0899_BASE_TP_BUFFER56 , 0x0000c1c1 }, /* TPBUFFER56 */ | ||
124 | { STB0899_OFF0_TP_BUFFER57 , STB0899_BASE_TP_BUFFER57 , 0x0000c1c1 }, /* TPBUFFER57 */ | ||
125 | { STB0899_OFF0_TP_BUFFER58 , STB0899_BASE_TP_BUFFER58 , 0x0000c1c1 }, /* TPBUFFER58 */ | ||
126 | { STB0899_OFF0_TP_BUFFER59 , STB0899_BASE_TP_BUFFER59 , 0x0000c1c1 }, /* TPBUFFER59 */ | ||
127 | { STB0899_OFF0_TP_BUFFER60 , STB0899_BASE_TP_BUFFER60 , 0x0000c1c1 }, /* TPBUFFER60 */ | ||
128 | { STB0899_OFF0_TP_BUFFER61 , STB0899_BASE_TP_BUFFER61 , 0x0000c1c1 }, /* TPBUFFER61 */ | ||
129 | { STB0899_OFF0_TP_BUFFER62 , STB0899_BASE_TP_BUFFER62 , 0x0000c1c1 }, /* TPBUFFER62 */ | ||
130 | { STB0899_OFF0_TP_BUFFER63 , STB0899_BASE_TP_BUFFER63 , 0x0000c1c0 }, /* TPBUFFER63 */ | ||
131 | { STB0899_OFF0_RESET_CNTRL , STB0899_BASE_RESET_CNTRL , 0x00000001 }, /* RESETCNTRL */ | ||
132 | { STB0899_OFF0_ACM_ENABLE , STB0899_BASE_ACM_ENABLE , 0x00005654 }, /* ACMENABLE */ | ||
133 | { STB0899_OFF0_DESCR_CNTRL , STB0899_BASE_DESCR_CNTRL , 0x00000000 }, /* DESCRCNTRL */ | ||
134 | { STB0899_OFF0_CSM_CNTRL1 , STB0899_BASE_CSM_CNTRL1 , 0x00020019 }, /* CSMCNTRL1 */ | ||
135 | { STB0899_OFF0_CSM_CNTRL2 , STB0899_BASE_CSM_CNTRL2 , 0x004b3237 }, /* CSMCNTRL2 */ | ||
136 | { STB0899_OFF0_CSM_CNTRL3 , STB0899_BASE_CSM_CNTRL3 , 0x0003dd17 }, /* CSMCNTRL3 */ | ||
137 | { STB0899_OFF0_CSM_CNTRL4 , STB0899_BASE_CSM_CNTRL4 , 0x00008008 }, /* CSMCNTRL4 */ | ||
138 | { STB0899_OFF0_UWP_CNTRL1 , STB0899_BASE_UWP_CNTRL1 , 0x002a3106 }, /* UWPCNTRL1 */ | ||
139 | { STB0899_OFF0_UWP_CNTRL2 , STB0899_BASE_UWP_CNTRL2 , 0x0006140a }, /* UWPCNTRL2 */ | ||
140 | { STB0899_OFF0_UWP_STAT1 , STB0899_BASE_UWP_STAT1 , 0x00008000 }, /* UWPSTAT1 */ | ||
141 | { STB0899_OFF0_UWP_STAT2 , STB0899_BASE_UWP_STAT2 , 0x00000000 }, /* UWPSTAT2 */ | ||
142 | { STB0899_OFF0_DMD_STAT2 , STB0899_BASE_DMD_STAT2 , 0x00000000 }, /* DMDSTAT2 */ | ||
143 | { STB0899_OFF0_FREQ_ADJ_SCALE , STB0899_BASE_FREQ_ADJ_SCALE , 0x00000471 }, /* FREQADJSCALE */ | ||
144 | { STB0899_OFF0_UWP_CNTRL3 , STB0899_BASE_UWP_CNTRL3 , 0x017b0465 }, /* UWPCNTRL3 */ | ||
145 | { STB0899_OFF0_SYM_CLK_SEL , STB0899_BASE_SYM_CLK_SEL , 0x00000002 }, /* SYMCLKSEL */ | ||
146 | { STB0899_OFF0_SOF_SRCH_TO , STB0899_BASE_SOF_SRCH_TO , 0x00196464 }, /* SOFSRCHTO */ | ||
147 | { STB0899_OFF0_ACQ_CNTRL1 , STB0899_BASE_ACQ_CNTRL1 , 0x00000603 }, /* ACQCNTRL1 */ | ||
148 | { STB0899_OFF0_ACQ_CNTRL2 , STB0899_BASE_ACQ_CNTRL2 , 0x02046666 }, /* ACQCNTRL2 */ | ||
149 | { STB0899_OFF0_ACQ_CNTRL3 , STB0899_BASE_ACQ_CNTRL3 , 0x10046583 }, /* ACQCNTRL3 */ | ||
150 | { STB0899_OFF0_FE_SETTLE , STB0899_BASE_FE_SETTLE , 0x00010404 }, /* FESETTLE */ | ||
151 | { STB0899_OFF0_AC_DWELL , STB0899_BASE_AC_DWELL , 0x0002aa8a }, /* ACDWELL */ | ||
152 | { STB0899_OFF0_ACQUIRE_TRIG , STB0899_BASE_ACQUIRE_TRIG , 0x00000000 }, /* ACQUIRETRIG */ | ||
153 | { STB0899_OFF0_LOCK_LOST , STB0899_BASE_LOCK_LOST , 0x00000001 }, /* LOCKLOST */ | ||
154 | { STB0899_OFF0_ACQ_STAT1 , STB0899_BASE_ACQ_STAT1 , 0x00000500 }, /* ACQSTAT1 */ | ||
155 | { STB0899_OFF0_ACQ_TIMEOUT , STB0899_BASE_ACQ_TIMEOUT , 0x0028a0a0 }, /* ACQTIMEOUT */ | ||
156 | { STB0899_OFF0_ACQ_TIME , STB0899_BASE_ACQ_TIME , 0x00000000 }, /* ACQTIME */ | ||
157 | { STB0899_OFF0_FINAL_AGC_CNTRL , STB0899_BASE_FINAL_AGC_CNTRL , 0x00800c17 }, /* FINALAGCCNTRL*/ | ||
158 | { STB0899_OFF0_FINAL_AGC_GAIN , STB0899_BASE_FINAL_AGC_GAIN , 0x00000000 }, /* FINALAGCCGAIN*/ | ||
159 | { STB0899_OFF0_EQUALIZER_INIT , STB0899_BASE_EQUALIZER_INIT , 0x00000000 }, /* EQUILIZERINIT*/ | ||
160 | { STB0899_OFF0_EQ_CNTRL , STB0899_BASE_EQ_CNTRL , 0x00054802 }, /* EQCNTL */ | ||
161 | { STB0899_OFF0_EQ_I_INIT_COEFF_0, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF0 */ | ||
162 | { STB0899_OFF1_EQ_I_INIT_COEFF_1, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF1 */ | ||
163 | { STB0899_OFF2_EQ_I_INIT_COEFF_2, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF2 */ | ||
164 | { STB0899_OFF3_EQ_I_INIT_COEFF_3, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF3 */ | ||
165 | { STB0899_OFF4_EQ_I_INIT_COEFF_4, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF4 */ | ||
166 | { STB0899_OFF5_EQ_I_INIT_COEFF_5, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000400 }, /* EQIINITCOEFF5 */ | ||
167 | { STB0899_OFF6_EQ_I_INIT_COEFF_6, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF6 */ | ||
168 | { STB0899_OFF7_EQ_I_INIT_COEFF_7, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF7 */ | ||
169 | { STB0899_OFF8_EQ_I_INIT_COEFF_8, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF8 */ | ||
170 | { STB0899_OFF9_EQ_I_INIT_COEFF_9, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF9 */ | ||
171 | { STB0899_OFFa_EQ_I_INIT_COEFF_10,STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF10*/ | ||
172 | { STB0899_OFF0_EQ_Q_INIT_COEFF_0, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF0 */ | ||
173 | { STB0899_OFF1_EQ_Q_INIT_COEFF_1, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF1 */ | ||
174 | { STB0899_OFF2_EQ_Q_INIT_COEFF_2, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF2 */ | ||
175 | { STB0899_OFF3_EQ_Q_INIT_COEFF_3, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF3 */ | ||
176 | { STB0899_OFF4_EQ_Q_INIT_COEFF_4, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF4 */ | ||
177 | { STB0899_OFF5_EQ_Q_INIT_COEFF_5, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF5 */ | ||
178 | { STB0899_OFF6_EQ_Q_INIT_COEFF_6, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF6 */ | ||
179 | { STB0899_OFF7_EQ_Q_INIT_COEFF_7, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF7 */ | ||
180 | { STB0899_OFF8_EQ_Q_INIT_COEFF_8, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF8 */ | ||
181 | { STB0899_OFF9_EQ_Q_INIT_COEFF_9, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF9 */ | ||
182 | { STB0899_OFFa_EQ_Q_INIT_COEFF_10,STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF10*/ | ||
183 | { STB0899_OFF0_EQ_I_OUT_COEFF_0 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT0 */ | ||
184 | { STB0899_OFF1_EQ_I_OUT_COEFF_1 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT1 */ | ||
185 | { STB0899_OFF2_EQ_I_OUT_COEFF_2 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT2 */ | ||
186 | { STB0899_OFF3_EQ_I_OUT_COEFF_3 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT3 */ | ||
187 | { STB0899_OFF4_EQ_I_OUT_COEFF_4 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT4 */ | ||
188 | { STB0899_OFF5_EQ_I_OUT_COEFF_5 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT5 */ | ||
189 | { STB0899_OFF6_EQ_I_OUT_COEFF_6 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT6 */ | ||
190 | { STB0899_OFF7_EQ_I_OUT_COEFF_7 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT7 */ | ||
191 | { STB0899_OFF8_EQ_I_OUT_COEFF_8 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT8 */ | ||
192 | { STB0899_OFF9_EQ_I_OUT_COEFF_9 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT9 */ | ||
193 | { STB0899_OFFa_EQ_I_OUT_COEFF_10,STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT10*/ | ||
194 | { STB0899_OFF0_EQ_Q_OUT_COEFF_0 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT0 */ | ||
195 | { STB0899_OFF1_EQ_Q_OUT_COEFF_1 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT1 */ | ||
196 | { STB0899_OFF2_EQ_Q_OUT_COEFF_2 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT2 */ | ||
197 | { STB0899_OFF3_EQ_Q_OUT_COEFF_3 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT3 */ | ||
198 | { STB0899_OFF4_EQ_Q_OUT_COEFF_4 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT4 */ | ||
199 | { STB0899_OFF5_EQ_Q_OUT_COEFF_5 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT5 */ | ||
200 | { STB0899_OFF6_EQ_Q_OUT_COEFF_6 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT6 */ | ||
201 | { STB0899_OFF7_EQ_Q_OUT_COEFF_7 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT7 */ | ||
202 | { STB0899_OFF8_EQ_Q_OUT_COEFF_8 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT8 */ | ||
203 | { STB0899_OFF9_EQ_Q_OUT_COEFF_9 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT9 */ | ||
204 | { STB0899_OFFa_EQ_Q_OUT_COEFF_10, STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT10*/ | ||
205 | { 0xffff , 0xffffffff , 0xffffffff }, | ||
206 | }; | ||
207 | static const struct stb0899_s2_reg stb0899_s2_init_4[] = { | ||
208 | { STB0899_OFF0_BLOCK_LNGTH , STB0899_BASE_BLOCK_LNGTH , 0x00000008 }, /* BLOCKLNGTH */ | ||
209 | { STB0899_OFF0_ROW_STR , STB0899_BASE_ROW_STR , 0x000000b4 }, /* ROWSTR */ | ||
210 | { STB0899_OFF0_BN_END_ADDR , STB0899_BASE_BN_END_ADDR , 0x000004b5 }, /* BNANDADDR */ | ||
211 | { STB0899_OFF0_CN_END_ADDR , STB0899_BASE_CN_END_ADDR , 0x00000b4b }, /* CNANDADDR */ | ||
212 | { STB0899_OFF0_INFO_LENGTH , STB0899_BASE_INFO_LENGTH , 0x00000078 }, /* INFOLENGTH */ | ||
213 | { STB0899_OFF0_BOT_ADDR , STB0899_BASE_BOT_ADDR , 0x000001e0 }, /* BOT_ADDR */ | ||
214 | { STB0899_OFF0_BCH_BLK_LN , STB0899_BASE_BCH_BLK_LN , 0x0000a8c0 }, /* BCHBLKLN */ | ||
215 | { STB0899_OFF0_BCH_T , STB0899_BASE_BCH_T , 0x0000000c }, /* BCHT */ | ||
216 | { STB0899_OFF0_CNFG_MODE , STB0899_BASE_CNFG_MODE , 0x00000001 }, /* CNFGMODE */ | ||
217 | { STB0899_OFF0_LDPC_STAT , STB0899_BASE_LDPC_STAT , 0x0000000d }, /* LDPCSTAT */ | ||
218 | { STB0899_OFF0_ITER_SCALE , STB0899_BASE_ITER_SCALE , 0x00000040 }, /* ITERSCALE */ | ||
219 | { STB0899_OFF0_INPUT_MODE , STB0899_BASE_INPUT_MODE , 0x00000000 }, /* INPUTMODE */ | ||
220 | { STB0899_OFF0_LDPCDECRST , STB0899_BASE_LDPCDECRST , 0x00000000 }, /* LDPCDECRST */ | ||
221 | { STB0899_OFF0_CLK_PER_BYTE_RW , STB0899_BASE_CLK_PER_BYTE_RW , 0x00000008 }, /* CLKPERBYTE */ | ||
222 | { STB0899_OFF0_BCH_ERRORS , STB0899_BASE_BCH_ERRORS , 0x00000000 }, /* BCHERRORS */ | ||
223 | { STB0899_OFF0_LDPC_ERRORS , STB0899_BASE_LDPC_ERRORS , 0x00000000 }, /* LDPCERRORS */ | ||
224 | { STB0899_OFF0_BCH_MODE , STB0899_BASE_BCH_MODE , 0x00000000 }, /* BCHMODE */ | ||
225 | { STB0899_OFF0_ERR_ACC_PER , STB0899_BASE_ERR_ACC_PER , 0x00000008 }, /* ERRACCPER */ | ||
226 | { STB0899_OFF0_BCH_ERR_ACC , STB0899_BASE_BCH_ERR_ACC , 0x00000000 }, /* BCHERRACC */ | ||
227 | { STB0899_OFF0_FEC_TP_SEL , STB0899_BASE_FEC_TP_SEL , 0x00000000 }, /* FECTPSEL */ | ||
228 | { 0xffff , 0xffffffff , 0xffffffff }, | ||
229 | }; | ||
230 | |||
231 | static const struct stb0899_s1_reg stb0899_s1_init_5[] = { | ||
232 | { STB0899_TSTCK , 0x00 }, | ||
233 | { STB0899_TSTRES , 0x00 }, | ||
234 | { STB0899_TSTOUT , 0x00 }, | ||
235 | { STB0899_TSTIN , 0x00 }, | ||
236 | { STB0899_TSTSYS , 0x00 }, | ||
237 | { STB0899_TSTCHIP , 0x00 }, | ||
238 | { STB0899_TSTFREE , 0x00 }, | ||
239 | { STB0899_TSTI2C , 0x00 }, | ||
240 | { STB0899_BITSPEEDM , 0x00 }, | ||
241 | { STB0899_BITSPEEDL , 0x00 }, | ||
242 | { STB0899_TBUSBIT , 0x00 }, | ||
243 | { STB0899_TSTDIS , 0x00 }, | ||
244 | { STB0899_TSTDISRX , 0x00 }, | ||
245 | { STB0899_TSTJETON , 0x00 }, | ||
246 | { STB0899_TSTDCADJ , 0x00 }, | ||
247 | { STB0899_TSTAGC1 , 0x00 }, | ||
248 | { STB0899_TSTAGC1N , 0x00 }, | ||
249 | { STB0899_TSTPOLYPH , 0x00 }, | ||
250 | { STB0899_TSTR , 0x00 }, | ||
251 | { STB0899_TSTAGC2 , 0x00 }, | ||
252 | { STB0899_TSTCTL1 , 0x00 }, | ||
253 | { STB0899_TSTCTL2 , 0x00 }, | ||
254 | { STB0899_TSTCTL3 , 0x00 }, | ||
255 | { STB0899_TSTDEMAP , 0x00 }, | ||
256 | { STB0899_TSTDEMAP2 , 0x00 }, | ||
257 | { STB0899_TSTDEMMON , 0x00 }, | ||
258 | { STB0899_TSTRATE , 0x00 }, | ||
259 | { STB0899_TSTSELOUT , 0x00 }, | ||
260 | { STB0899_TSYNC , 0x00 }, | ||
261 | { STB0899_TSTERR , 0x00 }, | ||
262 | { STB0899_TSTRAM1 , 0x00 }, | ||
263 | { STB0899_TSTVSELOUT , 0x00 }, | ||
264 | { STB0899_TSTFORCEIN , 0x00 }, | ||
265 | { STB0899_TSTRS1 , 0x00 }, | ||
266 | { STB0899_TSTRS2 , 0x00 }, | ||
267 | { STB0899_TSTRS3 , 0x00 }, | ||
268 | { STB0899_GHOSTREG , 0x81 }, | ||
269 | { 0xffff , 0xff }, | ||
270 | }; | ||
271 | |||
272 | #define STB0899_DVBS2_ESNO_AVE 3 | ||
273 | #define STB0899_DVBS2_ESNO_QUANT 32 | ||
274 | #define STB0899_DVBS2_AVFRAMES_COARSE 10 | ||
275 | #define STB0899_DVBS2_AVFRAMES_FINE 20 | ||
276 | #define STB0899_DVBS2_MISS_THRESHOLD 6 | ||
277 | #define STB0899_DVBS2_UWP_THRESHOLD_ACQ 1125 | ||
278 | #define STB0899_DVBS2_UWP_THRESHOLD_TRACK 758 | ||
279 | #define STB0899_DVBS2_UWP_THRESHOLD_SOF 1350 | ||
280 | #define STB0899_DVBS2_SOF_SEARCH_TIMEOUT 1664100 | ||
281 | |||
282 | #define STB0899_DVBS2_BTR_NCO_BITS 28 | ||
283 | #define STB0899_DVBS2_BTR_GAIN_SHIFT_OFFSET 15 | ||
284 | #define STB0899_DVBS2_CRL_NCO_BITS 30 | ||
285 | #define STB0899_DVBS2_LDPC_MAX_ITER 70 | ||
286 | |||
287 | #endif //__STB0899_CFG_H | ||
diff --git a/drivers/media/dvb/frontends/stb6100_cfg.h b/drivers/media/dvb/frontends/stb6100_cfg.h new file mode 100644 index 000000000000..d3133405dc03 --- /dev/null +++ b/drivers/media/dvb/frontends/stb6100_cfg.h | |||
@@ -0,0 +1,108 @@ | |||
1 | /* | ||
2 | STB6100 Silicon Tuner | ||
3 | Copyright (C) Manu Abraham (abraham.manu@gmail.com) | ||
4 | |||
5 | Copyright (C) ST Microelectronics | ||
6 | |||
7 | This program is free software; you can redistribute it and/or modify | ||
8 | it under the terms of the GNU General Public License as published by | ||
9 | the Free Software Foundation; either version 2 of the License, or | ||
10 | (at your option) any later version. | ||
11 | |||
12 | This program is distributed in the hope that it will be useful, | ||
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | GNU General Public License for more details. | ||
16 | |||
17 | You should have received a copy of the GNU General Public License | ||
18 | along with this program; if not, write to the Free Software | ||
19 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
20 | */ | ||
21 | |||
22 | static int stb6100_get_frequency(struct dvb_frontend *fe, u32 *frequency) | ||
23 | { | ||
24 | struct dvb_frontend_ops *frontend_ops = NULL; | ||
25 | struct dvb_tuner_ops *tuner_ops = NULL; | ||
26 | struct tuner_state t_state; | ||
27 | int err = 0; | ||
28 | |||
29 | if (&fe->ops) | ||
30 | frontend_ops = &fe->ops; | ||
31 | if (&frontend_ops->tuner_ops) | ||
32 | tuner_ops = &frontend_ops->tuner_ops; | ||
33 | if (tuner_ops->get_state) { | ||
34 | if ((err = tuner_ops->get_state(fe, DVBFE_TUNER_FREQUENCY, &t_state)) < 0) { | ||
35 | printk("%s: Invalid parameter\n", __func__); | ||
36 | return err; | ||
37 | } | ||
38 | *frequency = t_state.frequency; | ||
39 | printk("%s: Frequency=%d\n", __func__, t_state.frequency); | ||
40 | } | ||
41 | return 0; | ||
42 | } | ||
43 | |||
44 | static int stb6100_set_frequency(struct dvb_frontend *fe, u32 frequency) | ||
45 | { | ||
46 | struct dvb_frontend_ops *frontend_ops = NULL; | ||
47 | struct dvb_tuner_ops *tuner_ops = NULL; | ||
48 | struct tuner_state t_state; | ||
49 | int err = 0; | ||
50 | |||
51 | t_state.frequency = frequency; | ||
52 | if (&fe->ops) | ||
53 | frontend_ops = &fe->ops; | ||
54 | if (&frontend_ops->tuner_ops) | ||
55 | tuner_ops = &frontend_ops->tuner_ops; | ||
56 | if (tuner_ops->set_state) { | ||
57 | if ((err = tuner_ops->set_state(fe, DVBFE_TUNER_FREQUENCY, &t_state)) < 0) { | ||
58 | printk("%s: Invalid parameter\n", __func__); | ||
59 | return err; | ||
60 | } | ||
61 | } | ||
62 | printk("%s: Frequency=%d\n", __func__, t_state.frequency); | ||
63 | return 0; | ||
64 | } | ||
65 | |||
66 | static int stb6100_get_bandwidth(struct dvb_frontend *fe, u32 *bandwidth) | ||
67 | { | ||
68 | struct dvb_frontend_ops *frontend_ops = &fe->ops; | ||
69 | struct dvb_tuner_ops *tuner_ops = &frontend_ops->tuner_ops; | ||
70 | struct tuner_state t_state; | ||
71 | int err = 0; | ||
72 | |||
73 | if (&fe->ops) | ||
74 | frontend_ops = &fe->ops; | ||
75 | if (&frontend_ops->tuner_ops) | ||
76 | tuner_ops = &frontend_ops->tuner_ops; | ||
77 | if (tuner_ops->get_state) { | ||
78 | if ((err = tuner_ops->get_state(fe, DVBFE_TUNER_BANDWIDTH, &t_state)) < 0) { | ||
79 | printk("%s: Invalid parameter\n", __func__); | ||
80 | return err; | ||
81 | } | ||
82 | *bandwidth = t_state.bandwidth; | ||
83 | } | ||
84 | printk("%s: Bandwidth=%d\n", __func__, t_state.bandwidth); | ||
85 | return 0; | ||
86 | } | ||
87 | |||
88 | static int stb6100_set_bandwidth(struct dvb_frontend *fe, u32 bandwidth) | ||
89 | { | ||
90 | struct dvb_frontend_ops *frontend_ops = NULL; | ||
91 | struct dvb_tuner_ops *tuner_ops = NULL; | ||
92 | struct tuner_state t_state; | ||
93 | int err = 0; | ||
94 | |||
95 | t_state.bandwidth = bandwidth; | ||
96 | if (&fe->ops) | ||
97 | frontend_ops = &fe->ops; | ||
98 | if (&frontend_ops->tuner_ops) | ||
99 | tuner_ops = &frontend_ops->tuner_ops; | ||
100 | if (tuner_ops->set_state) { | ||
101 | if ((err = tuner_ops->set_state(fe, DVBFE_TUNER_BANDWIDTH, &t_state)) < 0) { | ||
102 | printk("%s: Invalid parameter\n", __func__); | ||
103 | return err; | ||
104 | } | ||
105 | } | ||
106 | printk("%s: Bandwidth=%d\n", __func__, t_state.bandwidth); | ||
107 | return 0; | ||
108 | } | ||
diff --git a/drivers/media/dvb/frontends/tda8261.h b/drivers/media/dvb/frontends/tda8261.h index a1814d39f63d..006e45351b94 100644 --- a/drivers/media/dvb/frontends/tda8261.h +++ b/drivers/media/dvb/frontends/tda8261.h | |||
@@ -1,3 +1,22 @@ | |||
1 | /* | ||
2 | TDA8261 8PSK/QPSK tuner driver | ||
3 | Copyright (C) Manu Abraham (abraham.manu@gmail.com) | ||
4 | |||
5 | This program is free software; you can redistribute it and/or modify | ||
6 | it under the terms of the GNU General Public License as published by | ||
7 | the Free Software Foundation; either version 2 of the License, or | ||
8 | (at your option) any later version. | ||
9 | |||
10 | This program is distributed in the hope that it will be useful, | ||
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | GNU General Public License for more details. | ||
14 | |||
15 | You should have received a copy of the GNU General Public License | ||
16 | along with this program; if not, write to the Free Software | ||
17 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
18 | */ | ||
19 | |||
1 | #ifndef __TDA8261_H | 20 | #ifndef __TDA8261_H |
2 | #define __TDA8261_H | 21 | #define __TDA8261_H |
3 | 22 | ||
diff --git a/drivers/media/dvb/frontends/tda8261_cfg.h b/drivers/media/dvb/frontends/tda8261_cfg.h new file mode 100644 index 000000000000..1af1ee49b542 --- /dev/null +++ b/drivers/media/dvb/frontends/tda8261_cfg.h | |||
@@ -0,0 +1,84 @@ | |||
1 | /* | ||
2 | TDA8261 8PSK/QPSK tuner driver | ||
3 | Copyright (C) Manu Abraham (abraham.manu@gmail.com) | ||
4 | |||
5 | This program is free software; you can redistribute it and/or modify | ||
6 | it under the terms of the GNU General Public License as published by | ||
7 | the Free Software Foundation; either version 2 of the License, or | ||
8 | (at your option) any later version. | ||
9 | |||
10 | This program is distributed in the hope that it will be useful, | ||
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | GNU General Public License for more details. | ||
14 | |||
15 | You should have received a copy of the GNU General Public License | ||
16 | along with this program; if not, write to the Free Software | ||
17 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
18 | */ | ||
19 | |||
20 | static int tda8261_get_frequency(struct dvb_frontend *fe, u32 *frequency) | ||
21 | { | ||
22 | struct dvb_frontend_ops *frontend_ops = NULL; | ||
23 | struct dvb_tuner_ops *tuner_ops = NULL; | ||
24 | struct tuner_state t_state; | ||
25 | int err = 0; | ||
26 | |||
27 | if (&fe->ops) | ||
28 | frontend_ops = &fe->ops; | ||
29 | if (&frontend_ops->tuner_ops) | ||
30 | tuner_ops = &frontend_ops->tuner_ops; | ||
31 | if (tuner_ops->get_state) { | ||
32 | if ((err = tuner_ops->get_state(fe, DVBFE_TUNER_FREQUENCY, &t_state)) < 0) { | ||
33 | printk("%s: Invalid parameter\n", __func__); | ||
34 | return err; | ||
35 | } | ||
36 | *frequency = t_state.frequency; | ||
37 | printk("%s: Frequency=%d\n", __func__, t_state.frequency); | ||
38 | } | ||
39 | return 0; | ||
40 | } | ||
41 | |||
42 | static int tda8261_set_frequency(struct dvb_frontend *fe, u32 frequency) | ||
43 | { | ||
44 | struct dvb_frontend_ops *frontend_ops = NULL; | ||
45 | struct dvb_tuner_ops *tuner_ops = NULL; | ||
46 | struct tuner_state t_state; | ||
47 | int err = 0; | ||
48 | |||
49 | t_state.frequency = frequency; | ||
50 | if (&fe->ops) | ||
51 | frontend_ops = &fe->ops; | ||
52 | if (&frontend_ops->tuner_ops) | ||
53 | tuner_ops = &frontend_ops->tuner_ops; | ||
54 | if (tuner_ops->set_state) { | ||
55 | if ((err = tuner_ops->set_state(fe, DVBFE_TUNER_FREQUENCY, &t_state)) < 0) { | ||
56 | printk("%s: Invalid parameter\n", __func__); | ||
57 | return err; | ||
58 | } | ||
59 | } | ||
60 | printk("%s: Frequency=%d\n", __func__, t_state.frequency); | ||
61 | return 0; | ||
62 | } | ||
63 | |||
64 | static int tda8261_get_bandwidth(struct dvb_frontend *fe, u32 *bandwidth) | ||
65 | { | ||
66 | struct dvb_frontend_ops *frontend_ops = &fe->ops; | ||
67 | struct dvb_tuner_ops *tuner_ops = &frontend_ops->tuner_ops; | ||
68 | struct tuner_state t_state; | ||
69 | int err = 0; | ||
70 | |||
71 | if (&fe->ops) | ||
72 | frontend_ops = &fe->ops; | ||
73 | if (&frontend_ops->tuner_ops) | ||
74 | tuner_ops = &frontend_ops->tuner_ops; | ||
75 | if (tuner_ops->get_state) { | ||
76 | if ((err = tuner_ops->get_state(fe, DVBFE_TUNER_BANDWIDTH, &t_state)) < 0) { | ||
77 | printk("%s: Invalid parameter\n", __func__); | ||
78 | return err; | ||
79 | } | ||
80 | *bandwidth = t_state.bandwidth; | ||
81 | } | ||
82 | printk("%s: Bandwidth=%d\n", __func__, t_state.bandwidth); | ||
83 | return 0; | ||
84 | } | ||
diff --git a/drivers/media/dvb/ttpci/budget-av.c b/drivers/media/dvb/ttpci/budget-av.c index aa1bc2d2add7..d2b5cad8e06e 100644 --- a/drivers/media/dvb/ttpci/budget-av.c +++ b/drivers/media/dvb/ttpci/budget-av.c | |||
@@ -37,7 +37,9 @@ | |||
37 | #include "stv0299.h" | 37 | #include "stv0299.h" |
38 | #include "stb0899_drv.h" | 38 | #include "stb0899_drv.h" |
39 | #include "stb0899_reg.h" | 39 | #include "stb0899_reg.h" |
40 | #include "stb0899_cfg.h" | ||
40 | #include "tda8261.h" | 41 | #include "tda8261.h" |
42 | #include "tda8261_cfg.h" | ||
41 | #include "tda1002x.h" | 43 | #include "tda1002x.h" |
42 | #include "tda1004x.h" | 44 | #include "tda1004x.h" |
43 | #include "tua6100.h" | 45 | #include "tua6100.h" |
@@ -975,189 +977,6 @@ static const struct stb0899_s1_reg knc1_stb0899_s1_init_1[] = { | |||
975 | { 0xffff , 0xff }, | 977 | { 0xffff , 0xff }, |
976 | }; | 978 | }; |
977 | 979 | ||
978 | static const struct stb0899_s2_reg knc1_stb0899_s2_init_2[] = { | ||
979 | |||
980 | { STB0899_OFF0_DMD_STATUS , STB0899_BASE_DMD_STATUS , 0x00000103 }, /* DMDSTATUS */ | ||
981 | { STB0899_OFF0_CRL_FREQ , STB0899_BASE_CRL_FREQ , 0x3ed1da56 }, /* CRLFREQ */ | ||
982 | { STB0899_OFF0_BTR_FREQ , STB0899_BASE_BTR_FREQ , 0x00004000 }, /* BTRFREQ */ | ||
983 | { STB0899_OFF0_IF_AGC_GAIN , STB0899_BASE_IF_AGC_GAIN , 0x00002ade }, /* IFAGCGAIN */ | ||
984 | { STB0899_OFF0_BB_AGC_GAIN , STB0899_BASE_BB_AGC_GAIN , 0x000001bc }, /* BBAGCGAIN */ | ||
985 | { STB0899_OFF0_DC_OFFSET , STB0899_BASE_DC_OFFSET , 0x00000200 }, /* DCOFFSET */ | ||
986 | { STB0899_OFF0_DMD_CNTRL , STB0899_BASE_DMD_CNTRL , 0x0000000f }, /* DMDCNTRL */ | ||
987 | |||
988 | { STB0899_OFF0_IF_AGC_CNTRL , STB0899_BASE_IF_AGC_CNTRL , 0x03fb4a20 }, /* IFAGCCNTRL */ | ||
989 | { STB0899_OFF0_BB_AGC_CNTRL , STB0899_BASE_BB_AGC_CNTRL , 0x00200c97 }, /* BBAGCCNTRL */ | ||
990 | |||
991 | { STB0899_OFF0_CRL_CNTRL , STB0899_BASE_CRL_CNTRL , 0x00000016 }, /* CRLCNTRL */ | ||
992 | { STB0899_OFF0_CRL_PHS_INIT , STB0899_BASE_CRL_PHS_INIT , 0x00000000 }, /* CRLPHSINIT */ | ||
993 | { STB0899_OFF0_CRL_FREQ_INIT , STB0899_BASE_CRL_FREQ_INIT , 0x00000000 }, /* CRLFREQINIT */ | ||
994 | { STB0899_OFF0_CRL_LOOP_GAIN , STB0899_BASE_CRL_LOOP_GAIN , 0x00000000 }, /* CRLLOOPGAIN */ | ||
995 | { STB0899_OFF0_CRL_NOM_FREQ , STB0899_BASE_CRL_NOM_FREQ , 0x3ed097b6 }, /* CRLNOMFREQ */ | ||
996 | { STB0899_OFF0_CRL_SWP_RATE , STB0899_BASE_CRL_SWP_RATE , 0x00000000 }, /* CRLSWPRATE */ | ||
997 | { STB0899_OFF0_CRL_MAX_SWP , STB0899_BASE_CRL_MAX_SWP , 0x00000000 }, /* CRLMAXSWP */ | ||
998 | { STB0899_OFF0_CRL_LK_CNTRL , STB0899_BASE_CRL_LK_CNTRL , 0x0f6cdc01 }, /* CRLLKCNTRL */ | ||
999 | { STB0899_OFF0_DECIM_CNTRL , STB0899_BASE_DECIM_CNTRL , 0x00000000 }, /* DECIMCNTRL */ | ||
1000 | { STB0899_OFF0_BTR_CNTRL , STB0899_BASE_BTR_CNTRL , 0x00003993 }, /* BTRCNTRL */ | ||
1001 | { STB0899_OFF0_BTR_LOOP_GAIN , STB0899_BASE_BTR_LOOP_GAIN , 0x000d3c6f }, /* BTRLOOPGAIN */ | ||
1002 | { STB0899_OFF0_BTR_PHS_INIT , STB0899_BASE_BTR_PHS_INIT , 0x00000000 }, /* BTRPHSINIT */ | ||
1003 | { STB0899_OFF0_BTR_FREQ_INIT , STB0899_BASE_BTR_FREQ_INIT , 0x00000000 }, /* BTRFREQINIT */ | ||
1004 | { STB0899_OFF0_BTR_NOM_FREQ , STB0899_BASE_BTR_NOM_FREQ , 0x0238e38e }, /* BTRNOMFREQ */ | ||
1005 | { STB0899_OFF0_BTR_LK_CNTRL , STB0899_BASE_BTR_LK_CNTRL , 0x00000000 }, /* BTRLKCNTRL */ | ||
1006 | { STB0899_OFF0_DECN_CNTRL , STB0899_BASE_DECN_CNTRL , 0x00000000 }, /* DECNCNTRL */ | ||
1007 | { STB0899_OFF0_TP_CNTRL , STB0899_BASE_TP_CNTRL , 0x00000000 }, /* TPCNTRL */ | ||
1008 | { STB0899_OFF0_TP_BUF_STATUS , STB0899_BASE_TP_BUF_STATUS , 0x00000000 }, /* TPBUFSTATUS */ | ||
1009 | { STB0899_OFF0_DC_ESTIM , STB0899_BASE_DC_ESTIM , 0x00000000 }, /* DCESTIM */ | ||
1010 | { STB0899_OFF0_FLL_CNTRL , STB0899_BASE_FLL_CNTRL , 0x00000000 }, /* FLLCNTRL */ | ||
1011 | { STB0899_OFF0_FLL_FREQ_WD , STB0899_BASE_FLL_FREQ_WD , 0x40070000 }, /* FLLFREQWD */ | ||
1012 | { STB0899_OFF0_ANTI_ALIAS_SEL , STB0899_BASE_ANTI_ALIAS_SEL , 0x00000001 }, /* ANTIALIASSEL */ | ||
1013 | { STB0899_OFF0_RRC_ALPHA , STB0899_BASE_RRC_ALPHA , 0x00000002 }, /* RRCALPHA */ | ||
1014 | { STB0899_OFF0_DC_ADAPT_LSHFT , STB0899_BASE_DC_ADAPT_LSHFT , 0x00000000 }, /* DCADAPTISHFT */ | ||
1015 | { STB0899_OFF0_IMB_OFFSET , STB0899_BASE_IMB_OFFSET , 0x0000fe01 }, /* IMBOFFSET */ | ||
1016 | { STB0899_OFF0_IMB_ESTIMATE , STB0899_BASE_IMB_ESTIMATE , 0x00000000 }, /* IMBESTIMATE */ | ||
1017 | { STB0899_OFF0_IMB_CNTRL , STB0899_BASE_IMB_CNTRL , 0x00000001 }, /* IMBCNTRL */ | ||
1018 | { STB0899_OFF0_IF_AGC_CNTRL2 , STB0899_BASE_IF_AGC_CNTRL2 , 0x00005007 }, /* IFAGCCNTRL2 */ | ||
1019 | { STB0899_OFF0_DMD_CNTRL2 , STB0899_BASE_DMD_CNTRL2 , 0x00000002 }, /* DMDCNTRL2 */ | ||
1020 | { STB0899_OFF0_TP_BUFFER , STB0899_BASE_TP_BUFFER , 0x00000000 }, /* TPBUFFER */ | ||
1021 | { STB0899_OFF0_TP_BUFFER1 , STB0899_BASE_TP_BUFFER1 , 0x00000000 }, /* TPBUFFER1 */ | ||
1022 | { STB0899_OFF0_TP_BUFFER2 , STB0899_BASE_TP_BUFFER2 , 0x00000000 }, /* TPBUFFER2 */ | ||
1023 | { STB0899_OFF0_TP_BUFFER3 , STB0899_BASE_TP_BUFFER3 , 0x00000000 }, /* TPBUFFER3 */ | ||
1024 | { STB0899_OFF0_TP_BUFFER4 , STB0899_BASE_TP_BUFFER4 , 0x00000000 }, /* TPBUFFER4 */ | ||
1025 | { STB0899_OFF0_TP_BUFFER5 , STB0899_BASE_TP_BUFFER5 , 0x00000000 }, /* TPBUFFER5 */ | ||
1026 | { STB0899_OFF0_TP_BUFFER6 , STB0899_BASE_TP_BUFFER6 , 0x00000000 }, /* TPBUFFER6 */ | ||
1027 | { STB0899_OFF0_TP_BUFFER7 , STB0899_BASE_TP_BUFFER7 , 0x00000000 }, /* TPBUFFER7 */ | ||
1028 | { STB0899_OFF0_TP_BUFFER8 , STB0899_BASE_TP_BUFFER8 , 0x00000000 }, /* TPBUFFER8 */ | ||
1029 | { STB0899_OFF0_TP_BUFFER9 , STB0899_BASE_TP_BUFFER9 , 0x00000000 }, /* TPBUFFER9 */ | ||
1030 | { STB0899_OFF0_TP_BUFFER10 , STB0899_BASE_TP_BUFFER10 , 0x00000000 }, /* TPBUFFER10 */ | ||
1031 | { STB0899_OFF0_TP_BUFFER11 , STB0899_BASE_TP_BUFFER11 , 0x00000000 }, /* TPBUFFER11 */ | ||
1032 | { STB0899_OFF0_TP_BUFFER12 , STB0899_BASE_TP_BUFFER12 , 0x00000000 }, /* TPBUFFER12 */ | ||
1033 | { STB0899_OFF0_TP_BUFFER13 , STB0899_BASE_TP_BUFFER13 , 0x00000000 }, /* TPBUFFER13 */ | ||
1034 | { STB0899_OFF0_TP_BUFFER14 , STB0899_BASE_TP_BUFFER14 , 0x00000000 }, /* TPBUFFER14 */ | ||
1035 | { STB0899_OFF0_TP_BUFFER15 , STB0899_BASE_TP_BUFFER15 , 0x00000000 }, /* TPBUFFER15 */ | ||
1036 | { STB0899_OFF0_TP_BUFFER16 , STB0899_BASE_TP_BUFFER16 , 0x0000ff00 }, /* TPBUFFER16 */ | ||
1037 | { STB0899_OFF0_TP_BUFFER17 , STB0899_BASE_TP_BUFFER17 , 0x00000100 }, /* TPBUFFER17 */ | ||
1038 | { STB0899_OFF0_TP_BUFFER18 , STB0899_BASE_TP_BUFFER18 , 0x0000fe01 }, /* TPBUFFER18 */ | ||
1039 | { STB0899_OFF0_TP_BUFFER19 , STB0899_BASE_TP_BUFFER19 , 0x000004fe }, /* TPBUFFER19 */ | ||
1040 | { STB0899_OFF0_TP_BUFFER20 , STB0899_BASE_TP_BUFFER20 , 0x0000cfe7 }, /* TPBUFFER20 */ | ||
1041 | { STB0899_OFF0_TP_BUFFER21 , STB0899_BASE_TP_BUFFER21 , 0x0000bec6 }, /* TPBUFFER21 */ | ||
1042 | { STB0899_OFF0_TP_BUFFER22 , STB0899_BASE_TP_BUFFER22 , 0x0000c2bf }, /* TPBUFFER22 */ | ||
1043 | { STB0899_OFF0_TP_BUFFER23 , STB0899_BASE_TP_BUFFER23 , 0x0000c1c1 }, /* TPBUFFER23 */ | ||
1044 | { STB0899_OFF0_TP_BUFFER24 , STB0899_BASE_TP_BUFFER24 , 0x0000c1c1 }, /* TPBUFFER24 */ | ||
1045 | { STB0899_OFF0_TP_BUFFER25 , STB0899_BASE_TP_BUFFER25 , 0x0000c1c1 }, /* TPBUFFER25 */ | ||
1046 | { STB0899_OFF0_TP_BUFFER26 , STB0899_BASE_TP_BUFFER26 , 0x0000c1c1 }, /* TPBUFFER26 */ | ||
1047 | { STB0899_OFF0_TP_BUFFER27 , STB0899_BASE_TP_BUFFER27 , 0x0000c1c0 }, /* TPBUFFER27 */ | ||
1048 | { STB0899_OFF0_TP_BUFFER28 , STB0899_BASE_TP_BUFFER28 , 0x0000c0c0 }, /* TPBUFFER28 */ | ||
1049 | { STB0899_OFF0_TP_BUFFER29 , STB0899_BASE_TP_BUFFER29 , 0x0000c1c1 }, /* TPBUFFER29 */ | ||
1050 | { STB0899_OFF0_TP_BUFFER30 , STB0899_BASE_TP_BUFFER30 , 0x0000c1c1 }, /* TPBUFFER30 */ | ||
1051 | { STB0899_OFF0_TP_BUFFER31 , STB0899_BASE_TP_BUFFER31 , 0x0000c0c1 }, /* TPBUFFER31 */ | ||
1052 | { STB0899_OFF0_TP_BUFFER32 , STB0899_BASE_TP_BUFFER32 , 0x0000c0c1 }, /* TPBUFFER32 */ | ||
1053 | { STB0899_OFF0_TP_BUFFER33 , STB0899_BASE_TP_BUFFER33 , 0x0000c1c1 }, /* TPBUFFER33 */ | ||
1054 | { STB0899_OFF0_TP_BUFFER34 , STB0899_BASE_TP_BUFFER34 , 0x0000c1c1 }, /* TPBUFFER34 */ | ||
1055 | { STB0899_OFF0_TP_BUFFER35 , STB0899_BASE_TP_BUFFER35 , 0x0000c0c1 }, /* TPBUFFER35 */ | ||
1056 | { STB0899_OFF0_TP_BUFFER36 , STB0899_BASE_TP_BUFFER36 , 0x0000c1c1 }, /* TPBUFFER36 */ | ||
1057 | { STB0899_OFF0_TP_BUFFER37 , STB0899_BASE_TP_BUFFER37 , 0x0000c0c1 }, /* TPBUFFER37 */ | ||
1058 | { STB0899_OFF0_TP_BUFFER38 , STB0899_BASE_TP_BUFFER38 , 0x0000c1c1 }, /* TPBUFFER38 */ | ||
1059 | { STB0899_OFF0_TP_BUFFER39 , STB0899_BASE_TP_BUFFER39 , 0x0000c0c0 }, /* TPBUFFER39 */ | ||
1060 | { STB0899_OFF0_TP_BUFFER40 , STB0899_BASE_TP_BUFFER40 , 0x0000c1c0 }, /* TPBUFFER40 */ | ||
1061 | { STB0899_OFF0_TP_BUFFER41 , STB0899_BASE_TP_BUFFER41 , 0x0000c1c1 }, /* TPBUFFER41 */ | ||
1062 | { STB0899_OFF0_TP_BUFFER42 , STB0899_BASE_TP_BUFFER42 , 0x0000c0c0 }, /* TPBUFFER42 */ | ||
1063 | { STB0899_OFF0_TP_BUFFER43 , STB0899_BASE_TP_BUFFER43 , 0x0000c1c0 }, /* TPBUFFER43 */ | ||
1064 | { STB0899_OFF0_TP_BUFFER44 , STB0899_BASE_TP_BUFFER44 , 0x0000c0c1 }, /* TPBUFFER44 */ | ||
1065 | { STB0899_OFF0_TP_BUFFER45 , STB0899_BASE_TP_BUFFER45 , 0x0000c1be }, /* TPBUFFER45 */ | ||
1066 | { STB0899_OFF0_TP_BUFFER46 , STB0899_BASE_TP_BUFFER46 , 0x0000c1c9 }, /* TPBUFFER46 */ | ||
1067 | { STB0899_OFF0_TP_BUFFER47 , STB0899_BASE_TP_BUFFER47 , 0x0000c0da }, /* TPBUFFER47 */ | ||
1068 | { STB0899_OFF0_TP_BUFFER48 , STB0899_BASE_TP_BUFFER48 , 0x0000c0ba }, /* TPBUFFER48 */ | ||
1069 | { STB0899_OFF0_TP_BUFFER49 , STB0899_BASE_TP_BUFFER49 , 0x0000c1c4 }, /* TPBUFFER49 */ | ||
1070 | { STB0899_OFF0_TP_BUFFER50 , STB0899_BASE_TP_BUFFER50 , 0x0000c1bf }, /* TPBUFFER50 */ | ||
1071 | { STB0899_OFF0_TP_BUFFER51 , STB0899_BASE_TP_BUFFER51 , 0x0000c0c1 }, /* TPBUFFER51 */ | ||
1072 | { STB0899_OFF0_TP_BUFFER52 , STB0899_BASE_TP_BUFFER52 , 0x0000c1c0 }, /* TPBUFFER52 */ | ||
1073 | { STB0899_OFF0_TP_BUFFER53 , STB0899_BASE_TP_BUFFER53 , 0x0000c0c1 }, /* TPBUFFER53 */ | ||
1074 | { STB0899_OFF0_TP_BUFFER54 , STB0899_BASE_TP_BUFFER54 , 0x0000c1c1 }, /* TPBUFFER54 */ | ||
1075 | { STB0899_OFF0_TP_BUFFER55 , STB0899_BASE_TP_BUFFER55 , 0x0000c1c1 }, /* TPBUFFER55 */ | ||
1076 | { STB0899_OFF0_TP_BUFFER56 , STB0899_BASE_TP_BUFFER56 , 0x0000c1c1 }, /* TPBUFFER56 */ | ||
1077 | { STB0899_OFF0_TP_BUFFER57 , STB0899_BASE_TP_BUFFER57 , 0x0000c1c1 }, /* TPBUFFER57 */ | ||
1078 | { STB0899_OFF0_TP_BUFFER58 , STB0899_BASE_TP_BUFFER58 , 0x0000c1c1 }, /* TPBUFFER58 */ | ||
1079 | { STB0899_OFF0_TP_BUFFER59 , STB0899_BASE_TP_BUFFER59 , 0x0000c1c1 }, /* TPBUFFER59 */ | ||
1080 | { STB0899_OFF0_TP_BUFFER60 , STB0899_BASE_TP_BUFFER60 , 0x0000c1c1 }, /* TPBUFFER60 */ | ||
1081 | { STB0899_OFF0_TP_BUFFER61 , STB0899_BASE_TP_BUFFER61 , 0x0000c1c1 }, /* TPBUFFER61 */ | ||
1082 | { STB0899_OFF0_TP_BUFFER62 , STB0899_BASE_TP_BUFFER62 , 0x0000c1c1 }, /* TPBUFFER62 */ | ||
1083 | { STB0899_OFF0_TP_BUFFER63 , STB0899_BASE_TP_BUFFER63 , 0x0000c1c0 }, /* TPBUFFER63 */ | ||
1084 | { STB0899_OFF0_RESET_CNTRL , STB0899_BASE_RESET_CNTRL , 0x00000001 }, /* RESETCNTRL */ | ||
1085 | { STB0899_OFF0_ACM_ENABLE , STB0899_BASE_ACM_ENABLE , 0x00005654 }, /* ACMENABLE */ | ||
1086 | { STB0899_OFF0_DESCR_CNTRL , STB0899_BASE_DESCR_CNTRL , 0x00000000 }, /* DESCRCNTRL */ | ||
1087 | { STB0899_OFF0_CSM_CNTRL1 , STB0899_BASE_CSM_CNTRL1 , 0x00020019 }, /* CSMCNTRL1 */ | ||
1088 | { STB0899_OFF0_CSM_CNTRL2 , STB0899_BASE_CSM_CNTRL2 , 0x004b3237 }, /* CSMCNTRL2 */ | ||
1089 | { STB0899_OFF0_CSM_CNTRL3 , STB0899_BASE_CSM_CNTRL3 , 0x0003dd17 }, /* CSMCNTRL3 */ | ||
1090 | { STB0899_OFF0_CSM_CNTRL4 , STB0899_BASE_CSM_CNTRL4 , 0x00008008 }, /* CSMCNTRL4 */ | ||
1091 | { STB0899_OFF0_UWP_CNTRL1 , STB0899_BASE_UWP_CNTRL1 , 0x002a3106 }, /* UWPCNTRL1 */ | ||
1092 | { STB0899_OFF0_UWP_CNTRL2 , STB0899_BASE_UWP_CNTRL2 , 0x0006140a }, /* UWPCNTRL2 */ | ||
1093 | { STB0899_OFF0_UWP_STAT1 , STB0899_BASE_UWP_STAT1 , 0x00008000 }, /* UWPSTAT1 */ | ||
1094 | { STB0899_OFF0_UWP_STAT2 , STB0899_BASE_UWP_STAT2 , 0x00000000 }, /* UWPSTAT2 */ | ||
1095 | { STB0899_OFF0_DMD_STAT2 , STB0899_BASE_DMD_STAT2 , 0x00000000 }, /* DMDSTAT2 */ | ||
1096 | { STB0899_OFF0_FREQ_ADJ_SCALE , STB0899_BASE_FREQ_ADJ_SCALE , 0x00000471 }, /* FREQADJSCALE */ | ||
1097 | { STB0899_OFF0_UWP_CNTRL3 , STB0899_BASE_UWP_CNTRL3 , 0x017b0465 }, /* UWPCNTRL3 */ | ||
1098 | { STB0899_OFF0_SYM_CLK_SEL , STB0899_BASE_SYM_CLK_SEL , 0x00000002 }, /* SYMCLKSEL */ | ||
1099 | { STB0899_OFF0_SOF_SRCH_TO , STB0899_BASE_SOF_SRCH_TO , 0x00196464 }, /* SOFSRCHTO */ | ||
1100 | { STB0899_OFF0_ACQ_CNTRL1 , STB0899_BASE_ACQ_CNTRL1 , 0x00000603 }, /* ACQCNTRL1 */ | ||
1101 | { STB0899_OFF0_ACQ_CNTRL2 , STB0899_BASE_ACQ_CNTRL2 , 0x02046666 }, /* ACQCNTRL2 */ | ||
1102 | { STB0899_OFF0_ACQ_CNTRL3 , STB0899_BASE_ACQ_CNTRL3 , 0x10046583 }, /* ACQCNTRL3 */ | ||
1103 | { STB0899_OFF0_FE_SETTLE , STB0899_BASE_FE_SETTLE , 0x00010404 }, /* FESETTLE */ | ||
1104 | { STB0899_OFF0_AC_DWELL , STB0899_BASE_AC_DWELL , 0x0002aa8a }, /* ACDWELL */ | ||
1105 | { STB0899_OFF0_ACQUIRE_TRIG , STB0899_BASE_ACQUIRE_TRIG , 0x00000000 }, /* ACQUIRETRIG */ | ||
1106 | { STB0899_OFF0_LOCK_LOST , STB0899_BASE_LOCK_LOST , 0x00000001 }, /* LOCKLOST */ | ||
1107 | { STB0899_OFF0_ACQ_STAT1 , STB0899_BASE_ACQ_STAT1 , 0x00000500 }, /* ACQSTAT1 */ | ||
1108 | { STB0899_OFF0_ACQ_TIMEOUT , STB0899_BASE_ACQ_TIMEOUT , 0x0028a0a0 }, /* ACQTIMEOUT */ | ||
1109 | { STB0899_OFF0_ACQ_TIME , STB0899_BASE_ACQ_TIME , 0x00000000 }, /* ACQTIME */ | ||
1110 | { STB0899_OFF0_FINAL_AGC_CNTRL , STB0899_BASE_FINAL_AGC_CNTRL , 0x00800c17 }, /* FINALAGCCNTRL*/ | ||
1111 | { STB0899_OFF0_FINAL_AGC_GAIN , STB0899_BASE_FINAL_AGC_GAIN , 0x00000000 }, /* FINALAGCCGAIN*/ | ||
1112 | { STB0899_OFF0_EQUALIZER_INIT , STB0899_BASE_EQUALIZER_INIT , 0x00000000 }, /* EQUILIZERINIT*/ | ||
1113 | { STB0899_OFF0_EQ_CNTRL , STB0899_BASE_EQ_CNTRL , 0x00054802 }, /* EQCNTL */ | ||
1114 | { STB0899_OFF0_EQ_I_INIT_COEFF_0, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF0 */ | ||
1115 | { STB0899_OFF1_EQ_I_INIT_COEFF_1, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF1 */ | ||
1116 | { STB0899_OFF2_EQ_I_INIT_COEFF_2, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF2 */ | ||
1117 | { STB0899_OFF3_EQ_I_INIT_COEFF_3, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF3 */ | ||
1118 | { STB0899_OFF4_EQ_I_INIT_COEFF_4, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF4 */ | ||
1119 | { STB0899_OFF5_EQ_I_INIT_COEFF_5, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000400 }, /* EQIINITCOEFF5 */ | ||
1120 | { STB0899_OFF6_EQ_I_INIT_COEFF_6, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF6 */ | ||
1121 | { STB0899_OFF7_EQ_I_INIT_COEFF_7, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF7 */ | ||
1122 | { STB0899_OFF8_EQ_I_INIT_COEFF_8, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF8 */ | ||
1123 | { STB0899_OFF9_EQ_I_INIT_COEFF_9, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF9 */ | ||
1124 | { STB0899_OFFa_EQ_I_INIT_COEFF_10,STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF10*/ | ||
1125 | { STB0899_OFF0_EQ_Q_INIT_COEFF_0, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF0 */ | ||
1126 | { STB0899_OFF1_EQ_Q_INIT_COEFF_1, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF1 */ | ||
1127 | { STB0899_OFF2_EQ_Q_INIT_COEFF_2, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF2 */ | ||
1128 | { STB0899_OFF3_EQ_Q_INIT_COEFF_3, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF3 */ | ||
1129 | { STB0899_OFF4_EQ_Q_INIT_COEFF_4, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF4 */ | ||
1130 | { STB0899_OFF5_EQ_Q_INIT_COEFF_5, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF5 */ | ||
1131 | { STB0899_OFF6_EQ_Q_INIT_COEFF_6, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF6 */ | ||
1132 | { STB0899_OFF7_EQ_Q_INIT_COEFF_7, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF7 */ | ||
1133 | { STB0899_OFF8_EQ_Q_INIT_COEFF_8, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF8 */ | ||
1134 | { STB0899_OFF9_EQ_Q_INIT_COEFF_9, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF9 */ | ||
1135 | { STB0899_OFFa_EQ_Q_INIT_COEFF_10,STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF10*/ | ||
1136 | { STB0899_OFF0_EQ_I_OUT_COEFF_0 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT0 */ | ||
1137 | { STB0899_OFF1_EQ_I_OUT_COEFF_1 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT1 */ | ||
1138 | { STB0899_OFF2_EQ_I_OUT_COEFF_2 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT2 */ | ||
1139 | { STB0899_OFF3_EQ_I_OUT_COEFF_3 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT3 */ | ||
1140 | { STB0899_OFF4_EQ_I_OUT_COEFF_4 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT4 */ | ||
1141 | { STB0899_OFF5_EQ_I_OUT_COEFF_5 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT5 */ | ||
1142 | { STB0899_OFF6_EQ_I_OUT_COEFF_6 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT6 */ | ||
1143 | { STB0899_OFF7_EQ_I_OUT_COEFF_7 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT7 */ | ||
1144 | { STB0899_OFF8_EQ_I_OUT_COEFF_8 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT8 */ | ||
1145 | { STB0899_OFF9_EQ_I_OUT_COEFF_9 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT9 */ | ||
1146 | { STB0899_OFFa_EQ_I_OUT_COEFF_10,STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT10*/ | ||
1147 | { STB0899_OFF0_EQ_Q_OUT_COEFF_0 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT0 */ | ||
1148 | { STB0899_OFF1_EQ_Q_OUT_COEFF_1 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT1 */ | ||
1149 | { STB0899_OFF2_EQ_Q_OUT_COEFF_2 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT2 */ | ||
1150 | { STB0899_OFF3_EQ_Q_OUT_COEFF_3 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT3 */ | ||
1151 | { STB0899_OFF4_EQ_Q_OUT_COEFF_4 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT4 */ | ||
1152 | { STB0899_OFF5_EQ_Q_OUT_COEFF_5 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT5 */ | ||
1153 | { STB0899_OFF6_EQ_Q_OUT_COEFF_6 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT6 */ | ||
1154 | { STB0899_OFF7_EQ_Q_OUT_COEFF_7 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT7 */ | ||
1155 | { STB0899_OFF8_EQ_Q_OUT_COEFF_8 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT8 */ | ||
1156 | { STB0899_OFF9_EQ_Q_OUT_COEFF_9 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT9 */ | ||
1157 | { STB0899_OFFa_EQ_Q_OUT_COEFF_10, STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT10*/ | ||
1158 | { 0xffff , 0xffffffff , 0xffffffff }, | ||
1159 | }; | ||
1160 | |||
1161 | static const struct stb0899_s1_reg knc1_stb0899_s1_init_3[] = { | 980 | static const struct stb0899_s1_reg knc1_stb0899_s1_init_3[] = { |
1162 | { STB0899_DEMOD , 0x00 }, | 981 | { STB0899_DEMOD , 0x00 }, |
1163 | { STB0899_RCOMPC , 0xc9 }, | 982 | { STB0899_RCOMPC , 0xc9 }, |
@@ -1291,159 +1110,13 @@ static const struct stb0899_s1_reg knc1_stb0899_s1_init_3[] = { | |||
1291 | { 0xffff , 0xff }, | 1110 | { 0xffff , 0xff }, |
1292 | }; | 1111 | }; |
1293 | 1112 | ||
1294 | static const struct stb0899_s2_reg knc1_stb0899_s2_init_4[] = { | ||
1295 | { STB0899_OFF0_BLOCK_LNGTH , STB0899_BASE_BLOCK_LNGTH , 0x00000008 }, /* BLOCKLNGTH */ | ||
1296 | { STB0899_OFF0_ROW_STR , STB0899_BASE_ROW_STR , 0x000000b4 }, /* ROWSTR */ | ||
1297 | { STB0899_OFF0_BN_END_ADDR , STB0899_BASE_BN_END_ADDR , 0x000004b5 }, /* BNANDADDR */ | ||
1298 | { STB0899_OFF0_CN_END_ADDR , STB0899_BASE_CN_END_ADDR , 0x00000b4b }, /* CNANDADDR */ | ||
1299 | { STB0899_OFF0_INFO_LENGTH , STB0899_BASE_INFO_LENGTH , 0x00000078 }, /* INFOLENGTH */ | ||
1300 | { STB0899_OFF0_BOT_ADDR , STB0899_BASE_BOT_ADDR , 0x000001e0 }, /* BOT_ADDR */ | ||
1301 | { STB0899_OFF0_BCH_BLK_LN , STB0899_BASE_BCH_BLK_LN , 0x0000a8c0 }, /* BCHBLKLN */ | ||
1302 | { STB0899_OFF0_BCH_T , STB0899_BASE_BCH_T , 0x0000000c }, /* BCHT */ | ||
1303 | { STB0899_OFF0_CNFG_MODE , STB0899_BASE_CNFG_MODE , 0x00000001 }, /* CNFGMODE */ | ||
1304 | { STB0899_OFF0_LDPC_STAT , STB0899_BASE_LDPC_STAT , 0x0000000d }, /* LDPCSTAT */ | ||
1305 | { STB0899_OFF0_ITER_SCALE , STB0899_BASE_ITER_SCALE , 0x00000040 }, /* ITERSCALE */ | ||
1306 | { STB0899_OFF0_INPUT_MODE , STB0899_BASE_INPUT_MODE , 0x00000000 }, /* INPUTMODE */ | ||
1307 | { STB0899_OFF0_LDPCDECRST , STB0899_BASE_LDPCDECRST , 0x00000000 }, /* LDPCDECRST */ | ||
1308 | { STB0899_OFF0_CLK_PER_BYTE_RW , STB0899_BASE_CLK_PER_BYTE_RW , 0x00000008 }, /* CLKPERBYTE */ | ||
1309 | { STB0899_OFF0_BCH_ERRORS , STB0899_BASE_BCH_ERRORS , 0x00000000 }, /* BCHERRORS */ | ||
1310 | { STB0899_OFF0_LDPC_ERRORS , STB0899_BASE_LDPC_ERRORS , 0x00000000 }, /* LDPCERRORS */ | ||
1311 | { STB0899_OFF0_BCH_MODE , STB0899_BASE_BCH_MODE , 0x00000000 }, /* BCHMODE */ | ||
1312 | { STB0899_OFF0_ERR_ACC_PER , STB0899_BASE_ERR_ACC_PER , 0x00000008 }, /* ERRACCPER */ | ||
1313 | { STB0899_OFF0_BCH_ERR_ACC , STB0899_BASE_BCH_ERR_ACC , 0x00000000 }, /* BCHERRACC */ | ||
1314 | { STB0899_OFF0_FEC_TP_SEL , STB0899_BASE_FEC_TP_SEL , 0x00000000 }, /* FECTPSEL */ | ||
1315 | { 0xffff , 0xffffffff , 0xffffffff }, | ||
1316 | }; | ||
1317 | |||
1318 | static const struct stb0899_s1_reg knc1_stb0899_s1_init_5[] = { | ||
1319 | { STB0899_TSTCK , 0x00 }, | ||
1320 | { STB0899_TSTRES , 0x00 }, | ||
1321 | { STB0899_TSTOUT , 0x00 }, | ||
1322 | { STB0899_TSTIN , 0x00 }, | ||
1323 | { STB0899_TSTSYS , 0x00 }, | ||
1324 | { STB0899_TSTCHIP , 0x00 }, | ||
1325 | { STB0899_TSTFREE , 0x00 }, | ||
1326 | { STB0899_TSTI2C , 0x00 }, | ||
1327 | { STB0899_BITSPEEDM , 0x00 }, | ||
1328 | { STB0899_BITSPEEDL , 0x00 }, | ||
1329 | { STB0899_TBUSBIT , 0x00 }, | ||
1330 | { STB0899_TSTDIS , 0x00 }, | ||
1331 | { STB0899_TSTDISRX , 0x00 }, | ||
1332 | { STB0899_TSTJETON , 0x00 }, | ||
1333 | { STB0899_TSTDCADJ , 0x00 }, | ||
1334 | { STB0899_TSTAGC1 , 0x00 }, | ||
1335 | { STB0899_TSTAGC1N , 0x00 }, | ||
1336 | { STB0899_TSTPOLYPH , 0x00 }, | ||
1337 | { STB0899_TSTR , 0x00 }, | ||
1338 | { STB0899_TSTAGC2 , 0x00 }, | ||
1339 | { STB0899_TSTCTL1 , 0x00 }, | ||
1340 | { STB0899_TSTCTL2 , 0x00 }, | ||
1341 | { STB0899_TSTCTL3 , 0x00 }, | ||
1342 | { STB0899_TSTDEMAP , 0x00 }, | ||
1343 | { STB0899_TSTDEMAP2 , 0x00 }, | ||
1344 | { STB0899_TSTDEMMON , 0x00 }, | ||
1345 | { STB0899_TSTRATE , 0x00 }, | ||
1346 | { STB0899_TSTSELOUT , 0x00 }, | ||
1347 | { STB0899_TSYNC , 0x00 }, | ||
1348 | { STB0899_TSTERR , 0x00 }, | ||
1349 | { STB0899_TSTRAM1 , 0x00 }, | ||
1350 | { STB0899_TSTVSELOUT , 0x00 }, | ||
1351 | { STB0899_TSTFORCEIN , 0x00 }, | ||
1352 | { STB0899_TSTRS1 , 0x00 }, | ||
1353 | { STB0899_TSTRS2 , 0x00 }, | ||
1354 | { STB0899_TSTRS3 , 0x00 }, | ||
1355 | { STB0899_GHOSTREG , 0x81 }, | ||
1356 | { 0xffff , 0xff }, | ||
1357 | }; | ||
1358 | |||
1359 | #define KNC1_DVBS2_ESNO_AVE 3 | ||
1360 | #define KNC1_DVBS2_ESNO_QUANT 32 | ||
1361 | #define KNC1_DVBS2_AVFRAMES_COARSE 10 | ||
1362 | #define KNC1_DVBS2_AVFRAMES_FINE 20 | ||
1363 | #define KNC1_DVBS2_MISS_THRESHOLD 6 | ||
1364 | #define KNC1_DVBS2_UWP_THRESHOLD_ACQ 1125 | ||
1365 | #define KNC1_DVBS2_UWP_THRESHOLD_TRACK 758 | ||
1366 | #define KNC1_DVBS2_UWP_THRESHOLD_SOF 1350 | ||
1367 | #define KNC1_DVBS2_SOF_SEARCH_TIMEOUT 1664100 | ||
1368 | |||
1369 | #define KNC1_DVBS2_BTR_NCO_BITS 28 | ||
1370 | #define KNC1_DVBS2_BTR_GAIN_SHIFT_OFFSET 15 | ||
1371 | #define KNC1_DVBS2_CRL_NCO_BITS 30 | ||
1372 | #define KNC1_DVBS2_LDPC_MAX_ITER 70 | ||
1373 | |||
1374 | static int tda8261_get_frequency(struct dvb_frontend *fe, u32 *frequency) | ||
1375 | { | ||
1376 | struct dvb_frontend_ops *frontend_ops = NULL; | ||
1377 | struct dvb_tuner_ops *tuner_ops = NULL; | ||
1378 | struct tuner_state t_state; | ||
1379 | int err = 0; | ||
1380 | |||
1381 | if (&fe->ops) | ||
1382 | frontend_ops = &fe->ops; | ||
1383 | if (&frontend_ops->tuner_ops) | ||
1384 | tuner_ops = &frontend_ops->tuner_ops; | ||
1385 | if (tuner_ops->get_state) { | ||
1386 | if ((err = tuner_ops->get_state(fe, DVBFE_TUNER_FREQUENCY, &t_state)) < 0) { | ||
1387 | printk("%s: Invalid parameter\n", __func__); | ||
1388 | return err; | ||
1389 | } | ||
1390 | *frequency = t_state.frequency; | ||
1391 | printk("%s: Frequency=%d\n", __func__, t_state.frequency); | ||
1392 | } | ||
1393 | return 0; | ||
1394 | } | ||
1395 | |||
1396 | static int tda8261_set_frequency(struct dvb_frontend *fe, u32 frequency) | ||
1397 | { | ||
1398 | struct dvb_frontend_ops *frontend_ops = NULL; | ||
1399 | struct dvb_tuner_ops *tuner_ops = NULL; | ||
1400 | struct tuner_state t_state; | ||
1401 | int err = 0; | ||
1402 | |||
1403 | t_state.frequency = frequency; | ||
1404 | if (&fe->ops) | ||
1405 | frontend_ops = &fe->ops; | ||
1406 | if (&frontend_ops->tuner_ops) | ||
1407 | tuner_ops = &frontend_ops->tuner_ops; | ||
1408 | if (tuner_ops->set_state) { | ||
1409 | if ((err = tuner_ops->set_state(fe, DVBFE_TUNER_FREQUENCY, &t_state)) < 0) { | ||
1410 | printk("%s: Invalid parameter\n", __func__); | ||
1411 | return err; | ||
1412 | } | ||
1413 | } | ||
1414 | printk("%s: Frequency=%d\n", __func__, t_state.frequency); | ||
1415 | return 0; | ||
1416 | } | ||
1417 | |||
1418 | static int tda8261_get_bandwidth(struct dvb_frontend *fe, u32 *bandwidth) | ||
1419 | { | ||
1420 | struct dvb_frontend_ops *frontend_ops = &fe->ops; | ||
1421 | struct dvb_tuner_ops *tuner_ops = &frontend_ops->tuner_ops; | ||
1422 | struct tuner_state t_state; | ||
1423 | int err = 0; | ||
1424 | |||
1425 | if (&fe->ops) | ||
1426 | frontend_ops = &fe->ops; | ||
1427 | if (&frontend_ops->tuner_ops) | ||
1428 | tuner_ops = &frontend_ops->tuner_ops; | ||
1429 | if (tuner_ops->get_state) { | ||
1430 | if ((err = tuner_ops->get_state(fe, DVBFE_TUNER_BANDWIDTH, &t_state)) < 0) { | ||
1431 | printk("%s: Invalid parameter\n", __func__); | ||
1432 | return err; | ||
1433 | } | ||
1434 | *bandwidth = t_state.bandwidth; | ||
1435 | } | ||
1436 | printk("%s: Bandwidth=%d\n", __func__, t_state.bandwidth); | ||
1437 | return 0; | ||
1438 | } | ||
1439 | |||
1440 | /* STB0899 demodulator config for the KNC1 and clones */ | 1113 | /* STB0899 demodulator config for the KNC1 and clones */ |
1441 | static struct stb0899_config knc1_dvbs2_config = { | 1114 | static struct stb0899_config knc1_dvbs2_config = { |
1442 | .init_dev = knc1_stb0899_s1_init_1, | 1115 | .init_dev = knc1_stb0899_s1_init_1, |
1443 | .init_s2_demod = knc1_stb0899_s2_init_2, | 1116 | .init_s2_demod = stb0899_s2_init_2, |
1444 | .init_s1_demod = knc1_stb0899_s1_init_3, | 1117 | .init_s1_demod = knc1_stb0899_s1_init_3, |
1445 | .init_s2_fec = knc1_stb0899_s2_init_4, | 1118 | .init_s2_fec = stb0899_s2_init_4, |
1446 | .init_tst = knc1_stb0899_s1_init_5, | 1119 | .init_tst = stb0899_s1_init_5, |
1447 | 1120 | ||
1448 | .postproc = NULL, | 1121 | .postproc = NULL, |
1449 | 1122 | ||
@@ -1455,20 +1128,20 @@ static struct stb0899_config knc1_dvbs2_config = { | |||
1455 | .xtal_freq = 27000000, | 1128 | .xtal_freq = 27000000, |
1456 | .inversion = IQ_SWAP_OFF, /* 1 */ | 1129 | .inversion = IQ_SWAP_OFF, /* 1 */ |
1457 | 1130 | ||
1458 | .esno_ave = KNC1_DVBS2_ESNO_AVE, | 1131 | .esno_ave = STB0899_DVBS2_ESNO_AVE, |
1459 | .esno_quant = KNC1_DVBS2_ESNO_QUANT, | 1132 | .esno_quant = STB0899_DVBS2_ESNO_QUANT, |
1460 | .avframes_coarse = KNC1_DVBS2_AVFRAMES_COARSE, | 1133 | .avframes_coarse = STB0899_DVBS2_AVFRAMES_COARSE, |
1461 | .avframes_fine = KNC1_DVBS2_AVFRAMES_FINE, | 1134 | .avframes_fine = STB0899_DVBS2_AVFRAMES_FINE, |
1462 | .miss_threshold = KNC1_DVBS2_MISS_THRESHOLD, | 1135 | .miss_threshold = STB0899_DVBS2_MISS_THRESHOLD, |
1463 | .uwp_threshold_acq = KNC1_DVBS2_UWP_THRESHOLD_ACQ, | 1136 | .uwp_threshold_acq = STB0899_DVBS2_UWP_THRESHOLD_ACQ, |
1464 | .uwp_threshold_track = KNC1_DVBS2_UWP_THRESHOLD_TRACK, | 1137 | .uwp_threshold_track = STB0899_DVBS2_UWP_THRESHOLD_TRACK, |
1465 | .uwp_threshold_sof = KNC1_DVBS2_UWP_THRESHOLD_SOF, | 1138 | .uwp_threshold_sof = STB0899_DVBS2_UWP_THRESHOLD_SOF, |
1466 | .sof_search_timeout = KNC1_DVBS2_SOF_SEARCH_TIMEOUT, | 1139 | .sof_search_timeout = STB0899_DVBS2_SOF_SEARCH_TIMEOUT, |
1467 | 1140 | ||
1468 | .btr_nco_bits = KNC1_DVBS2_BTR_NCO_BITS, | 1141 | .btr_nco_bits = STB0899_DVBS2_BTR_NCO_BITS, |
1469 | .btr_gain_shift_offset = KNC1_DVBS2_BTR_GAIN_SHIFT_OFFSET, | 1142 | .btr_gain_shift_offset = STB0899_DVBS2_BTR_GAIN_SHIFT_OFFSET, |
1470 | .crl_nco_bits = KNC1_DVBS2_CRL_NCO_BITS, | 1143 | .crl_nco_bits = STB0899_DVBS2_CRL_NCO_BITS, |
1471 | .ldpc_max_iter = KNC1_DVBS2_LDPC_MAX_ITER, | 1144 | .ldpc_max_iter = STB0899_DVBS2_LDPC_MAX_ITER, |
1472 | 1145 | ||
1473 | .tuner_get_frequency = tda8261_get_frequency, | 1146 | .tuner_get_frequency = tda8261_get_frequency, |
1474 | .tuner_set_frequency = tda8261_set_frequency, | 1147 | .tuner_set_frequency = tda8261_set_frequency, |
diff --git a/drivers/media/dvb/ttpci/budget-ci.c b/drivers/media/dvb/ttpci/budget-ci.c index a317649bc254..5b6dbcc764cf 100644 --- a/drivers/media/dvb/ttpci/budget-ci.c +++ b/drivers/media/dvb/ttpci/budget-ci.c | |||
@@ -45,7 +45,9 @@ | |||
45 | #include "tda1004x.h" | 45 | #include "tda1004x.h" |
46 | #include "stb0899_drv.h" | 46 | #include "stb0899_drv.h" |
47 | #include "stb0899_reg.h" | 47 | #include "stb0899_reg.h" |
48 | #include "stb0899_cfg.h" | ||
48 | #include "stb6100.h" | 49 | #include "stb6100.h" |
50 | #include "stb6100_cfg.h" | ||
49 | #include "lnbp21.h" | 51 | #include "lnbp21.h" |
50 | #include "bsbe1.h" | 52 | #include "bsbe1.h" |
51 | #include "bsru6.h" | 53 | #include "bsru6.h" |
@@ -1164,189 +1166,6 @@ static const struct stb0899_s1_reg tt3200_stb0899_s1_init_1[] = { | |||
1164 | { 0xffff , 0xff }, | 1166 | { 0xffff , 0xff }, |
1165 | }; | 1167 | }; |
1166 | 1168 | ||
1167 | static const struct stb0899_s2_reg tt3200_stb0899_s2_init_2[] = { | ||
1168 | |||
1169 | { STB0899_OFF0_DMD_STATUS , STB0899_BASE_DMD_STATUS , 0x00000103 }, /* DMDSTATUS */ | ||
1170 | { STB0899_OFF0_CRL_FREQ , STB0899_BASE_CRL_FREQ , 0x3ed1da56 }, /* CRLFREQ */ | ||
1171 | { STB0899_OFF0_BTR_FREQ , STB0899_BASE_BTR_FREQ , 0x00004000 }, /* BTRFREQ */ | ||
1172 | { STB0899_OFF0_IF_AGC_GAIN , STB0899_BASE_IF_AGC_GAIN , 0x00002ade }, /* IFAGCGAIN */ | ||
1173 | { STB0899_OFF0_BB_AGC_GAIN , STB0899_BASE_BB_AGC_GAIN , 0x000001bc }, /* BBAGCGAIN */ | ||
1174 | { STB0899_OFF0_DC_OFFSET , STB0899_BASE_DC_OFFSET , 0x00000200 }, /* DCOFFSET */ | ||
1175 | { STB0899_OFF0_DMD_CNTRL , STB0899_BASE_DMD_CNTRL , 0x0000000f }, /* DMDCNTRL */ | ||
1176 | |||
1177 | { STB0899_OFF0_IF_AGC_CNTRL , STB0899_BASE_IF_AGC_CNTRL , 0x03fb4a20 }, /* IFAGCCNTRL */ | ||
1178 | { STB0899_OFF0_BB_AGC_CNTRL , STB0899_BASE_BB_AGC_CNTRL , 0x00200c97 }, /* BBAGCCNTRL */ | ||
1179 | |||
1180 | { STB0899_OFF0_CRL_CNTRL , STB0899_BASE_CRL_CNTRL , 0x00000016 }, /* CRLCNTRL */ | ||
1181 | { STB0899_OFF0_CRL_PHS_INIT , STB0899_BASE_CRL_PHS_INIT , 0x00000000 }, /* CRLPHSINIT */ | ||
1182 | { STB0899_OFF0_CRL_FREQ_INIT , STB0899_BASE_CRL_FREQ_INIT , 0x00000000 }, /* CRLFREQINIT */ | ||
1183 | { STB0899_OFF0_CRL_LOOP_GAIN , STB0899_BASE_CRL_LOOP_GAIN , 0x00000000 }, /* CRLLOOPGAIN */ | ||
1184 | { STB0899_OFF0_CRL_NOM_FREQ , STB0899_BASE_CRL_NOM_FREQ , 0x3ed097b6 }, /* CRLNOMFREQ */ | ||
1185 | { STB0899_OFF0_CRL_SWP_RATE , STB0899_BASE_CRL_SWP_RATE , 0x00000000 }, /* CRLSWPRATE */ | ||
1186 | { STB0899_OFF0_CRL_MAX_SWP , STB0899_BASE_CRL_MAX_SWP , 0x00000000 }, /* CRLMAXSWP */ | ||
1187 | { STB0899_OFF0_CRL_LK_CNTRL , STB0899_BASE_CRL_LK_CNTRL , 0x0f6cdc01 }, /* CRLLKCNTRL */ | ||
1188 | { STB0899_OFF0_DECIM_CNTRL , STB0899_BASE_DECIM_CNTRL , 0x00000000 }, /* DECIMCNTRL */ | ||
1189 | { STB0899_OFF0_BTR_CNTRL , STB0899_BASE_BTR_CNTRL , 0x00003993 }, /* BTRCNTRL */ | ||
1190 | { STB0899_OFF0_BTR_LOOP_GAIN , STB0899_BASE_BTR_LOOP_GAIN , 0x000d3c6f }, /* BTRLOOPGAIN */ | ||
1191 | { STB0899_OFF0_BTR_PHS_INIT , STB0899_BASE_BTR_PHS_INIT , 0x00000000 }, /* BTRPHSINIT */ | ||
1192 | { STB0899_OFF0_BTR_FREQ_INIT , STB0899_BASE_BTR_FREQ_INIT , 0x00000000 }, /* BTRFREQINIT */ | ||
1193 | { STB0899_OFF0_BTR_NOM_FREQ , STB0899_BASE_BTR_NOM_FREQ , 0x0238e38e }, /* BTRNOMFREQ */ | ||
1194 | { STB0899_OFF0_BTR_LK_CNTRL , STB0899_BASE_BTR_LK_CNTRL , 0x00000000 }, /* BTRLKCNTRL */ | ||
1195 | { STB0899_OFF0_DECN_CNTRL , STB0899_BASE_DECN_CNTRL , 0x00000000 }, /* DECNCNTRL */ | ||
1196 | { STB0899_OFF0_TP_CNTRL , STB0899_BASE_TP_CNTRL , 0x00000000 }, /* TPCNTRL */ | ||
1197 | { STB0899_OFF0_TP_BUF_STATUS , STB0899_BASE_TP_BUF_STATUS , 0x00000000 }, /* TPBUFSTATUS */ | ||
1198 | { STB0899_OFF0_DC_ESTIM , STB0899_BASE_DC_ESTIM , 0x00000000 }, /* DCESTIM */ | ||
1199 | { STB0899_OFF0_FLL_CNTRL , STB0899_BASE_FLL_CNTRL , 0x00000000 }, /* FLLCNTRL */ | ||
1200 | { STB0899_OFF0_FLL_FREQ_WD , STB0899_BASE_FLL_FREQ_WD , 0x40070000 }, /* FLLFREQWD */ | ||
1201 | { STB0899_OFF0_ANTI_ALIAS_SEL , STB0899_BASE_ANTI_ALIAS_SEL , 0x00000001 }, /* ANTIALIASSEL */ | ||
1202 | { STB0899_OFF0_RRC_ALPHA , STB0899_BASE_RRC_ALPHA , 0x00000002 }, /* RRCALPHA */ | ||
1203 | { STB0899_OFF0_DC_ADAPT_LSHFT , STB0899_BASE_DC_ADAPT_LSHFT , 0x00000000 }, /* DCADAPTISHFT */ | ||
1204 | { STB0899_OFF0_IMB_OFFSET , STB0899_BASE_IMB_OFFSET , 0x0000fe01 }, /* IMBOFFSET */ | ||
1205 | { STB0899_OFF0_IMB_ESTIMATE , STB0899_BASE_IMB_ESTIMATE , 0x00000000 }, /* IMBESTIMATE */ | ||
1206 | { STB0899_OFF0_IMB_CNTRL , STB0899_BASE_IMB_CNTRL , 0x00000001 }, /* IMBCNTRL */ | ||
1207 | { STB0899_OFF0_IF_AGC_CNTRL2 , STB0899_BASE_IF_AGC_CNTRL2 , 0x00005007 }, /* IFAGCCNTRL2 */ | ||
1208 | { STB0899_OFF0_DMD_CNTRL2 , STB0899_BASE_DMD_CNTRL2 , 0x00000002 }, /* DMDCNTRL2 */ | ||
1209 | { STB0899_OFF0_TP_BUFFER , STB0899_BASE_TP_BUFFER , 0x00000000 }, /* TPBUFFER */ | ||
1210 | { STB0899_OFF0_TP_BUFFER1 , STB0899_BASE_TP_BUFFER1 , 0x00000000 }, /* TPBUFFER1 */ | ||
1211 | { STB0899_OFF0_TP_BUFFER2 , STB0899_BASE_TP_BUFFER2 , 0x00000000 }, /* TPBUFFER2 */ | ||
1212 | { STB0899_OFF0_TP_BUFFER3 , STB0899_BASE_TP_BUFFER3 , 0x00000000 }, /* TPBUFFER3 */ | ||
1213 | { STB0899_OFF0_TP_BUFFER4 , STB0899_BASE_TP_BUFFER4 , 0x00000000 }, /* TPBUFFER4 */ | ||
1214 | { STB0899_OFF0_TP_BUFFER5 , STB0899_BASE_TP_BUFFER5 , 0x00000000 }, /* TPBUFFER5 */ | ||
1215 | { STB0899_OFF0_TP_BUFFER6 , STB0899_BASE_TP_BUFFER6 , 0x00000000 }, /* TPBUFFER6 */ | ||
1216 | { STB0899_OFF0_TP_BUFFER7 , STB0899_BASE_TP_BUFFER7 , 0x00000000 }, /* TPBUFFER7 */ | ||
1217 | { STB0899_OFF0_TP_BUFFER8 , STB0899_BASE_TP_BUFFER8 , 0x00000000 }, /* TPBUFFER8 */ | ||
1218 | { STB0899_OFF0_TP_BUFFER9 , STB0899_BASE_TP_BUFFER9 , 0x00000000 }, /* TPBUFFER9 */ | ||
1219 | { STB0899_OFF0_TP_BUFFER10 , STB0899_BASE_TP_BUFFER10 , 0x00000000 }, /* TPBUFFER10 */ | ||
1220 | { STB0899_OFF0_TP_BUFFER11 , STB0899_BASE_TP_BUFFER11 , 0x00000000 }, /* TPBUFFER11 */ | ||
1221 | { STB0899_OFF0_TP_BUFFER12 , STB0899_BASE_TP_BUFFER12 , 0x00000000 }, /* TPBUFFER12 */ | ||
1222 | { STB0899_OFF0_TP_BUFFER13 , STB0899_BASE_TP_BUFFER13 , 0x00000000 }, /* TPBUFFER13 */ | ||
1223 | { STB0899_OFF0_TP_BUFFER14 , STB0899_BASE_TP_BUFFER14 , 0x00000000 }, /* TPBUFFER14 */ | ||
1224 | { STB0899_OFF0_TP_BUFFER15 , STB0899_BASE_TP_BUFFER15 , 0x00000000 }, /* TPBUFFER15 */ | ||
1225 | { STB0899_OFF0_TP_BUFFER16 , STB0899_BASE_TP_BUFFER16 , 0x0000ff00 }, /* TPBUFFER16 */ | ||
1226 | { STB0899_OFF0_TP_BUFFER17 , STB0899_BASE_TP_BUFFER17 , 0x00000100 }, /* TPBUFFER17 */ | ||
1227 | { STB0899_OFF0_TP_BUFFER18 , STB0899_BASE_TP_BUFFER18 , 0x0000fe01 }, /* TPBUFFER18 */ | ||
1228 | { STB0899_OFF0_TP_BUFFER19 , STB0899_BASE_TP_BUFFER19 , 0x000004fe }, /* TPBUFFER19 */ | ||
1229 | { STB0899_OFF0_TP_BUFFER20 , STB0899_BASE_TP_BUFFER20 , 0x0000cfe7 }, /* TPBUFFER20 */ | ||
1230 | { STB0899_OFF0_TP_BUFFER21 , STB0899_BASE_TP_BUFFER21 , 0x0000bec6 }, /* TPBUFFER21 */ | ||
1231 | { STB0899_OFF0_TP_BUFFER22 , STB0899_BASE_TP_BUFFER22 , 0x0000c2bf }, /* TPBUFFER22 */ | ||
1232 | { STB0899_OFF0_TP_BUFFER23 , STB0899_BASE_TP_BUFFER23 , 0x0000c1c1 }, /* TPBUFFER23 */ | ||
1233 | { STB0899_OFF0_TP_BUFFER24 , STB0899_BASE_TP_BUFFER24 , 0x0000c1c1 }, /* TPBUFFER24 */ | ||
1234 | { STB0899_OFF0_TP_BUFFER25 , STB0899_BASE_TP_BUFFER25 , 0x0000c1c1 }, /* TPBUFFER25 */ | ||
1235 | { STB0899_OFF0_TP_BUFFER26 , STB0899_BASE_TP_BUFFER26 , 0x0000c1c1 }, /* TPBUFFER26 */ | ||
1236 | { STB0899_OFF0_TP_BUFFER27 , STB0899_BASE_TP_BUFFER27 , 0x0000c1c0 }, /* TPBUFFER27 */ | ||
1237 | { STB0899_OFF0_TP_BUFFER28 , STB0899_BASE_TP_BUFFER28 , 0x0000c0c0 }, /* TPBUFFER28 */ | ||
1238 | { STB0899_OFF0_TP_BUFFER29 , STB0899_BASE_TP_BUFFER29 , 0x0000c1c1 }, /* TPBUFFER29 */ | ||
1239 | { STB0899_OFF0_TP_BUFFER30 , STB0899_BASE_TP_BUFFER30 , 0x0000c1c1 }, /* TPBUFFER30 */ | ||
1240 | { STB0899_OFF0_TP_BUFFER31 , STB0899_BASE_TP_BUFFER31 , 0x0000c0c1 }, /* TPBUFFER31 */ | ||
1241 | { STB0899_OFF0_TP_BUFFER32 , STB0899_BASE_TP_BUFFER32 , 0x0000c0c1 }, /* TPBUFFER32 */ | ||
1242 | { STB0899_OFF0_TP_BUFFER33 , STB0899_BASE_TP_BUFFER33 , 0x0000c1c1 }, /* TPBUFFER33 */ | ||
1243 | { STB0899_OFF0_TP_BUFFER34 , STB0899_BASE_TP_BUFFER34 , 0x0000c1c1 }, /* TPBUFFER34 */ | ||
1244 | { STB0899_OFF0_TP_BUFFER35 , STB0899_BASE_TP_BUFFER35 , 0x0000c0c1 }, /* TPBUFFER35 */ | ||
1245 | { STB0899_OFF0_TP_BUFFER36 , STB0899_BASE_TP_BUFFER36 , 0x0000c1c1 }, /* TPBUFFER36 */ | ||
1246 | { STB0899_OFF0_TP_BUFFER37 , STB0899_BASE_TP_BUFFER37 , 0x0000c0c1 }, /* TPBUFFER37 */ | ||
1247 | { STB0899_OFF0_TP_BUFFER38 , STB0899_BASE_TP_BUFFER38 , 0x0000c1c1 }, /* TPBUFFER38 */ | ||
1248 | { STB0899_OFF0_TP_BUFFER39 , STB0899_BASE_TP_BUFFER39 , 0x0000c0c0 }, /* TPBUFFER39 */ | ||
1249 | { STB0899_OFF0_TP_BUFFER40 , STB0899_BASE_TP_BUFFER40 , 0x0000c1c0 }, /* TPBUFFER40 */ | ||
1250 | { STB0899_OFF0_TP_BUFFER41 , STB0899_BASE_TP_BUFFER41 , 0x0000c1c1 }, /* TPBUFFER41 */ | ||
1251 | { STB0899_OFF0_TP_BUFFER42 , STB0899_BASE_TP_BUFFER42 , 0x0000c0c0 }, /* TPBUFFER42 */ | ||
1252 | { STB0899_OFF0_TP_BUFFER43 , STB0899_BASE_TP_BUFFER43 , 0x0000c1c0 }, /* TPBUFFER43 */ | ||
1253 | { STB0899_OFF0_TP_BUFFER44 , STB0899_BASE_TP_BUFFER44 , 0x0000c0c1 }, /* TPBUFFER44 */ | ||
1254 | { STB0899_OFF0_TP_BUFFER45 , STB0899_BASE_TP_BUFFER45 , 0x0000c1be }, /* TPBUFFER45 */ | ||
1255 | { STB0899_OFF0_TP_BUFFER46 , STB0899_BASE_TP_BUFFER46 , 0x0000c1c9 }, /* TPBUFFER46 */ | ||
1256 | { STB0899_OFF0_TP_BUFFER47 , STB0899_BASE_TP_BUFFER47 , 0x0000c0da }, /* TPBUFFER47 */ | ||
1257 | { STB0899_OFF0_TP_BUFFER48 , STB0899_BASE_TP_BUFFER48 , 0x0000c0ba }, /* TPBUFFER48 */ | ||
1258 | { STB0899_OFF0_TP_BUFFER49 , STB0899_BASE_TP_BUFFER49 , 0x0000c1c4 }, /* TPBUFFER49 */ | ||
1259 | { STB0899_OFF0_TP_BUFFER50 , STB0899_BASE_TP_BUFFER50 , 0x0000c1bf }, /* TPBUFFER50 */ | ||
1260 | { STB0899_OFF0_TP_BUFFER51 , STB0899_BASE_TP_BUFFER51 , 0x0000c0c1 }, /* TPBUFFER51 */ | ||
1261 | { STB0899_OFF0_TP_BUFFER52 , STB0899_BASE_TP_BUFFER52 , 0x0000c1c0 }, /* TPBUFFER52 */ | ||
1262 | { STB0899_OFF0_TP_BUFFER53 , STB0899_BASE_TP_BUFFER53 , 0x0000c0c1 }, /* TPBUFFER53 */ | ||
1263 | { STB0899_OFF0_TP_BUFFER54 , STB0899_BASE_TP_BUFFER54 , 0x0000c1c1 }, /* TPBUFFER54 */ | ||
1264 | { STB0899_OFF0_TP_BUFFER55 , STB0899_BASE_TP_BUFFER55 , 0x0000c1c1 }, /* TPBUFFER55 */ | ||
1265 | { STB0899_OFF0_TP_BUFFER56 , STB0899_BASE_TP_BUFFER56 , 0x0000c1c1 }, /* TPBUFFER56 */ | ||
1266 | { STB0899_OFF0_TP_BUFFER57 , STB0899_BASE_TP_BUFFER57 , 0x0000c1c1 }, /* TPBUFFER57 */ | ||
1267 | { STB0899_OFF0_TP_BUFFER58 , STB0899_BASE_TP_BUFFER58 , 0x0000c1c1 }, /* TPBUFFER58 */ | ||
1268 | { STB0899_OFF0_TP_BUFFER59 , STB0899_BASE_TP_BUFFER59 , 0x0000c1c1 }, /* TPBUFFER59 */ | ||
1269 | { STB0899_OFF0_TP_BUFFER60 , STB0899_BASE_TP_BUFFER60 , 0x0000c1c1 }, /* TPBUFFER60 */ | ||
1270 | { STB0899_OFF0_TP_BUFFER61 , STB0899_BASE_TP_BUFFER61 , 0x0000c1c1 }, /* TPBUFFER61 */ | ||
1271 | { STB0899_OFF0_TP_BUFFER62 , STB0899_BASE_TP_BUFFER62 , 0x0000c1c1 }, /* TPBUFFER62 */ | ||
1272 | { STB0899_OFF0_TP_BUFFER63 , STB0899_BASE_TP_BUFFER63 , 0x0000c1c0 }, /* TPBUFFER63 */ | ||
1273 | { STB0899_OFF0_RESET_CNTRL , STB0899_BASE_RESET_CNTRL , 0x00000001 }, /* RESETCNTRL */ | ||
1274 | { STB0899_OFF0_ACM_ENABLE , STB0899_BASE_ACM_ENABLE , 0x00005654 }, /* ACMENABLE */ | ||
1275 | { STB0899_OFF0_DESCR_CNTRL , STB0899_BASE_DESCR_CNTRL , 0x00000000 }, /* DESCRCNTRL */ | ||
1276 | { STB0899_OFF0_CSM_CNTRL1 , STB0899_BASE_CSM_CNTRL1 , 0x00020019 }, /* CSMCNTRL1 */ | ||
1277 | { STB0899_OFF0_CSM_CNTRL2 , STB0899_BASE_CSM_CNTRL2 , 0x004b3237 }, /* CSMCNTRL2 */ | ||
1278 | { STB0899_OFF0_CSM_CNTRL3 , STB0899_BASE_CSM_CNTRL3 , 0x0003dd17 }, /* CSMCNTRL3 */ | ||
1279 | { STB0899_OFF0_CSM_CNTRL4 , STB0899_BASE_CSM_CNTRL4 , 0x00008008 }, /* CSMCNTRL4 */ | ||
1280 | { STB0899_OFF0_UWP_CNTRL1 , STB0899_BASE_UWP_CNTRL1 , 0x002a3106 }, /* UWPCNTRL1 */ | ||
1281 | { STB0899_OFF0_UWP_CNTRL2 , STB0899_BASE_UWP_CNTRL2 , 0x0006140a }, /* UWPCNTRL2 */ | ||
1282 | { STB0899_OFF0_UWP_STAT1 , STB0899_BASE_UWP_STAT1 , 0x00008000 }, /* UWPSTAT1 */ | ||
1283 | { STB0899_OFF0_UWP_STAT2 , STB0899_BASE_UWP_STAT2 , 0x00000000 }, /* UWPSTAT2 */ | ||
1284 | { STB0899_OFF0_DMD_STAT2 , STB0899_BASE_DMD_STAT2 , 0x00000000 }, /* DMDSTAT2 */ | ||
1285 | { STB0899_OFF0_FREQ_ADJ_SCALE , STB0899_BASE_FREQ_ADJ_SCALE , 0x00000471 }, /* FREQADJSCALE */ | ||
1286 | { STB0899_OFF0_UWP_CNTRL3 , STB0899_BASE_UWP_CNTRL3 , 0x017b0465 }, /* UWPCNTRL3 */ | ||
1287 | { STB0899_OFF0_SYM_CLK_SEL , STB0899_BASE_SYM_CLK_SEL , 0x00000002 }, /* SYMCLKSEL */ | ||
1288 | { STB0899_OFF0_SOF_SRCH_TO , STB0899_BASE_SOF_SRCH_TO , 0x00196464 }, /* SOFSRCHTO */ | ||
1289 | { STB0899_OFF0_ACQ_CNTRL1 , STB0899_BASE_ACQ_CNTRL1 , 0x00000603 }, /* ACQCNTRL1 */ | ||
1290 | { STB0899_OFF0_ACQ_CNTRL2 , STB0899_BASE_ACQ_CNTRL2 , 0x02046666 }, /* ACQCNTRL2 */ | ||
1291 | { STB0899_OFF0_ACQ_CNTRL3 , STB0899_BASE_ACQ_CNTRL3 , 0x10046583 }, /* ACQCNTRL3 */ | ||
1292 | { STB0899_OFF0_FE_SETTLE , STB0899_BASE_FE_SETTLE , 0x00010404 }, /* FESETTLE */ | ||
1293 | { STB0899_OFF0_AC_DWELL , STB0899_BASE_AC_DWELL , 0x0002aa8a }, /* ACDWELL */ | ||
1294 | { STB0899_OFF0_ACQUIRE_TRIG , STB0899_BASE_ACQUIRE_TRIG , 0x00000000 }, /* ACQUIRETRIG */ | ||
1295 | { STB0899_OFF0_LOCK_LOST , STB0899_BASE_LOCK_LOST , 0x00000001 }, /* LOCKLOST */ | ||
1296 | { STB0899_OFF0_ACQ_STAT1 , STB0899_BASE_ACQ_STAT1 , 0x00000500 }, /* ACQSTAT1 */ | ||
1297 | { STB0899_OFF0_ACQ_TIMEOUT , STB0899_BASE_ACQ_TIMEOUT , 0x0028a0a0 }, /* ACQTIMEOUT */ | ||
1298 | { STB0899_OFF0_ACQ_TIME , STB0899_BASE_ACQ_TIME , 0x00000000 }, /* ACQTIME */ | ||
1299 | { STB0899_OFF0_FINAL_AGC_CNTRL , STB0899_BASE_FINAL_AGC_CNTRL , 0x00800c17 }, /* FINALAGCCNTRL*/ | ||
1300 | { STB0899_OFF0_FINAL_AGC_GAIN , STB0899_BASE_FINAL_AGC_GAIN , 0x00000000 }, /* FINALAGCCGAIN*/ | ||
1301 | { STB0899_OFF0_EQUALIZER_INIT , STB0899_BASE_EQUALIZER_INIT , 0x00000000 }, /* EQUILIZERINIT*/ | ||
1302 | { STB0899_OFF0_EQ_CNTRL , STB0899_BASE_EQ_CNTRL , 0x00054802 }, /* EQCNTL */ | ||
1303 | { STB0899_OFF0_EQ_I_INIT_COEFF_0, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF0 */ | ||
1304 | { STB0899_OFF1_EQ_I_INIT_COEFF_1, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF1 */ | ||
1305 | { STB0899_OFF2_EQ_I_INIT_COEFF_2, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF2 */ | ||
1306 | { STB0899_OFF3_EQ_I_INIT_COEFF_3, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF3 */ | ||
1307 | { STB0899_OFF4_EQ_I_INIT_COEFF_4, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF4 */ | ||
1308 | { STB0899_OFF5_EQ_I_INIT_COEFF_5, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000400 }, /* EQIINITCOEFF5 */ | ||
1309 | { STB0899_OFF6_EQ_I_INIT_COEFF_6, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF6 */ | ||
1310 | { STB0899_OFF7_EQ_I_INIT_COEFF_7, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF7 */ | ||
1311 | { STB0899_OFF8_EQ_I_INIT_COEFF_8, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF8 */ | ||
1312 | { STB0899_OFF9_EQ_I_INIT_COEFF_9, STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF9 */ | ||
1313 | { STB0899_OFFa_EQ_I_INIT_COEFF_10,STB0899_BASE_EQ_I_INIT_COEFF_N, 0x00000000 }, /* EQIINITCOEFF10*/ | ||
1314 | { STB0899_OFF0_EQ_Q_INIT_COEFF_0, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF0 */ | ||
1315 | { STB0899_OFF1_EQ_Q_INIT_COEFF_1, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF1 */ | ||
1316 | { STB0899_OFF2_EQ_Q_INIT_COEFF_2, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF2 */ | ||
1317 | { STB0899_OFF3_EQ_Q_INIT_COEFF_3, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF3 */ | ||
1318 | { STB0899_OFF4_EQ_Q_INIT_COEFF_4, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF4 */ | ||
1319 | { STB0899_OFF5_EQ_Q_INIT_COEFF_5, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF5 */ | ||
1320 | { STB0899_OFF6_EQ_Q_INIT_COEFF_6, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF6 */ | ||
1321 | { STB0899_OFF7_EQ_Q_INIT_COEFF_7, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF7 */ | ||
1322 | { STB0899_OFF8_EQ_Q_INIT_COEFF_8, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF8 */ | ||
1323 | { STB0899_OFF9_EQ_Q_INIT_COEFF_9, STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF9 */ | ||
1324 | { STB0899_OFFa_EQ_Q_INIT_COEFF_10,STB0899_BASE_EQ_Q_INIT_COEFF_N, 0x00000000 }, /* EQQINITCOEFF10*/ | ||
1325 | { STB0899_OFF0_EQ_I_OUT_COEFF_0 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT0 */ | ||
1326 | { STB0899_OFF1_EQ_I_OUT_COEFF_1 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT1 */ | ||
1327 | { STB0899_OFF2_EQ_I_OUT_COEFF_2 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT2 */ | ||
1328 | { STB0899_OFF3_EQ_I_OUT_COEFF_3 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT3 */ | ||
1329 | { STB0899_OFF4_EQ_I_OUT_COEFF_4 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT4 */ | ||
1330 | { STB0899_OFF5_EQ_I_OUT_COEFF_5 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT5 */ | ||
1331 | { STB0899_OFF6_EQ_I_OUT_COEFF_6 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT6 */ | ||
1332 | { STB0899_OFF7_EQ_I_OUT_COEFF_7 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT7 */ | ||
1333 | { STB0899_OFF8_EQ_I_OUT_COEFF_8 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT8 */ | ||
1334 | { STB0899_OFF9_EQ_I_OUT_COEFF_9 , STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT9 */ | ||
1335 | { STB0899_OFFa_EQ_I_OUT_COEFF_10,STB0899_BASE_EQ_I_OUT_COEFF_N , 0x00000000 }, /* EQICOEFFSOUT10*/ | ||
1336 | { STB0899_OFF0_EQ_Q_OUT_COEFF_0 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT0 */ | ||
1337 | { STB0899_OFF1_EQ_Q_OUT_COEFF_1 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT1 */ | ||
1338 | { STB0899_OFF2_EQ_Q_OUT_COEFF_2 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT2 */ | ||
1339 | { STB0899_OFF3_EQ_Q_OUT_COEFF_3 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT3 */ | ||
1340 | { STB0899_OFF4_EQ_Q_OUT_COEFF_4 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT4 */ | ||
1341 | { STB0899_OFF5_EQ_Q_OUT_COEFF_5 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT5 */ | ||
1342 | { STB0899_OFF6_EQ_Q_OUT_COEFF_6 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT6 */ | ||
1343 | { STB0899_OFF7_EQ_Q_OUT_COEFF_7 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT7 */ | ||
1344 | { STB0899_OFF8_EQ_Q_OUT_COEFF_8 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT8 */ | ||
1345 | { STB0899_OFF9_EQ_Q_OUT_COEFF_9 , STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT9 */ | ||
1346 | { STB0899_OFFa_EQ_Q_OUT_COEFF_10, STB0899_BASE_EQ_Q_OUT_COEFF_N , 0x00000000 }, /* EQQCOEFFSOUT10*/ | ||
1347 | { 0xffff , 0xffffffff , 0xffffffff }, | ||
1348 | }; | ||
1349 | |||
1350 | static const struct stb0899_s1_reg tt3200_stb0899_s1_init_3[] = { | 1169 | static const struct stb0899_s1_reg tt3200_stb0899_s1_init_3[] = { |
1351 | { STB0899_DEMOD , 0x00 }, | 1170 | { STB0899_DEMOD , 0x00 }, |
1352 | { STB0899_RCOMPC , 0xc9 }, | 1171 | { STB0899_RCOMPC , 0xc9 }, |
@@ -1480,180 +1299,12 @@ static const struct stb0899_s1_reg tt3200_stb0899_s1_init_3[] = { | |||
1480 | { 0xffff , 0xff }, | 1299 | { 0xffff , 0xff }, |
1481 | }; | 1300 | }; |
1482 | 1301 | ||
1483 | static const struct stb0899_s2_reg tt3200_stb0899_s2_init_4[] = { | ||
1484 | { STB0899_OFF0_BLOCK_LNGTH , STB0899_BASE_BLOCK_LNGTH , 0x00000008 }, /* BLOCKLNGTH */ | ||
1485 | { STB0899_OFF0_ROW_STR , STB0899_BASE_ROW_STR , 0x000000b4 }, /* ROWSTR */ | ||
1486 | { STB0899_OFF0_BN_END_ADDR , STB0899_BASE_BN_END_ADDR , 0x000004b5 }, /* BNANDADDR */ | ||
1487 | { STB0899_OFF0_CN_END_ADDR , STB0899_BASE_CN_END_ADDR , 0x00000b4b }, /* CNANDADDR */ | ||
1488 | { STB0899_OFF0_INFO_LENGTH , STB0899_BASE_INFO_LENGTH , 0x00000078 }, /* INFOLENGTH */ | ||
1489 | { STB0899_OFF0_BOT_ADDR , STB0899_BASE_BOT_ADDR , 0x000001e0 }, /* BOT_ADDR */ | ||
1490 | { STB0899_OFF0_BCH_BLK_LN , STB0899_BASE_BCH_BLK_LN , 0x0000a8c0 }, /* BCHBLKLN */ | ||
1491 | { STB0899_OFF0_BCH_T , STB0899_BASE_BCH_T , 0x0000000c }, /* BCHT */ | ||
1492 | { STB0899_OFF0_CNFG_MODE , STB0899_BASE_CNFG_MODE , 0x00000001 }, /* CNFGMODE */ | ||
1493 | { STB0899_OFF0_LDPC_STAT , STB0899_BASE_LDPC_STAT , 0x0000000d }, /* LDPCSTAT */ | ||
1494 | { STB0899_OFF0_ITER_SCALE , STB0899_BASE_ITER_SCALE , 0x00000040 }, /* ITERSCALE */ | ||
1495 | { STB0899_OFF0_INPUT_MODE , STB0899_BASE_INPUT_MODE , 0x00000000 }, /* INPUTMODE */ | ||
1496 | { STB0899_OFF0_LDPCDECRST , STB0899_BASE_LDPCDECRST , 0x00000000 }, /* LDPCDECRST */ | ||
1497 | { STB0899_OFF0_CLK_PER_BYTE_RW , STB0899_BASE_CLK_PER_BYTE_RW , 0x00000008 }, /* CLKPERBYTE */ | ||
1498 | { STB0899_OFF0_BCH_ERRORS , STB0899_BASE_BCH_ERRORS , 0x00000000 }, /* BCHERRORS */ | ||
1499 | { STB0899_OFF0_LDPC_ERRORS , STB0899_BASE_LDPC_ERRORS , 0x00000000 }, /* LDPCERRORS */ | ||
1500 | { STB0899_OFF0_BCH_MODE , STB0899_BASE_BCH_MODE , 0x00000000 }, /* BCHMODE */ | ||
1501 | { STB0899_OFF0_ERR_ACC_PER , STB0899_BASE_ERR_ACC_PER , 0x00000008 }, /* ERRACCPER */ | ||
1502 | { STB0899_OFF0_BCH_ERR_ACC , STB0899_BASE_BCH_ERR_ACC , 0x00000000 }, /* BCHERRACC */ | ||
1503 | { STB0899_OFF0_FEC_TP_SEL , STB0899_BASE_FEC_TP_SEL , 0x00000000 }, /* FECTPSEL */ | ||
1504 | { 0xffff , 0xffffffff , 0xffffffff }, | ||
1505 | }; | ||
1506 | |||
1507 | static const struct stb0899_s1_reg tt3200_stb0899_s1_init_5[] = { | ||
1508 | { STB0899_TSTCK , 0x00 }, | ||
1509 | { STB0899_TSTRES , 0x00 }, | ||
1510 | { STB0899_TSTOUT , 0x00 }, | ||
1511 | { STB0899_TSTIN , 0x00 }, | ||
1512 | { STB0899_TSTSYS , 0x00 }, | ||
1513 | { STB0899_TSTCHIP , 0x00 }, | ||
1514 | { STB0899_TSTFREE , 0x00 }, | ||
1515 | { STB0899_TSTI2C , 0x00 }, | ||
1516 | { STB0899_BITSPEEDM , 0x00 }, | ||
1517 | { STB0899_BITSPEEDL , 0x00 }, | ||
1518 | { STB0899_TBUSBIT , 0x00 }, | ||
1519 | { STB0899_TSTDIS , 0x00 }, | ||
1520 | { STB0899_TSTDISRX , 0x00 }, | ||
1521 | { STB0899_TSTJETON , 0x00 }, | ||
1522 | { STB0899_TSTDCADJ , 0x00 }, | ||
1523 | { STB0899_TSTAGC1 , 0x00 }, | ||
1524 | { STB0899_TSTAGC1N , 0x00 }, | ||
1525 | { STB0899_TSTPOLYPH , 0x00 }, | ||
1526 | { STB0899_TSTR , 0x00 }, | ||
1527 | { STB0899_TSTAGC2 , 0x00 }, | ||
1528 | { STB0899_TSTCTL1 , 0x00 }, | ||
1529 | { STB0899_TSTCTL2 , 0x00 }, | ||
1530 | { STB0899_TSTCTL3 , 0x00 }, | ||
1531 | { STB0899_TSTDEMAP , 0x00 }, | ||
1532 | { STB0899_TSTDEMAP2 , 0x00 }, | ||
1533 | { STB0899_TSTDEMMON , 0x00 }, | ||
1534 | { STB0899_TSTRATE , 0x00 }, | ||
1535 | { STB0899_TSTSELOUT , 0x00 }, | ||
1536 | { STB0899_TSYNC , 0x00 }, | ||
1537 | { STB0899_TSTERR , 0x00 }, | ||
1538 | { STB0899_TSTRAM1 , 0x00 }, | ||
1539 | { STB0899_TSTVSELOUT , 0x00 }, | ||
1540 | { STB0899_TSTFORCEIN , 0x00 }, | ||
1541 | { STB0899_TSTRS1 , 0x00 }, | ||
1542 | { STB0899_TSTRS2 , 0x00 }, | ||
1543 | { STB0899_TSTRS3 , 0x00 }, | ||
1544 | { STB0899_GHOSTREG , 0x81 }, | ||
1545 | { 0xffff , 0xff }, | ||
1546 | }; | ||
1547 | |||
1548 | #define TT3200_DVBS2_ESNO_AVE 3 | ||
1549 | #define TT3200_DVBS2_ESNO_QUANT 32 | ||
1550 | #define TT3200_DVBS2_AVFRAMES_COARSE 10 | ||
1551 | #define TT3200_DVBS2_AVFRAMES_FINE 20 | ||
1552 | #define TT3200_DVBS2_MISS_THRESHOLD 6 | ||
1553 | #define TT3200_DVBS2_UWP_THRESHOLD_ACQ 1125 | ||
1554 | #define TT3200_DVBS2_UWP_THRESHOLD_TRACK 758 | ||
1555 | #define TT3200_DVBS2_UWP_THRESHOLD_SOF 1350 | ||
1556 | #define TT3200_DVBS2_SOF_SEARCH_TIMEOUT 1664100 | ||
1557 | |||
1558 | #define TT3200_DVBS2_BTR_NCO_BITS 28 | ||
1559 | #define TT3200_DVBS2_BTR_GAIN_SHIFT_OFFSET 15 | ||
1560 | #define TT3200_DVBS2_CRL_NCO_BITS 30 | ||
1561 | #define TT3200_DVBS2_LDPC_MAX_ITER 70 | ||
1562 | |||
1563 | static int stb6100_get_frequency(struct dvb_frontend *fe, u32 *frequency) | ||
1564 | { | ||
1565 | struct dvb_frontend_ops *frontend_ops = NULL; | ||
1566 | struct dvb_tuner_ops *tuner_ops = NULL; | ||
1567 | struct tuner_state t_state; | ||
1568 | int err = 0; | ||
1569 | |||
1570 | if (&fe->ops) | ||
1571 | frontend_ops = &fe->ops; | ||
1572 | if (&frontend_ops->tuner_ops) | ||
1573 | tuner_ops = &frontend_ops->tuner_ops; | ||
1574 | if (tuner_ops->get_state) { | ||
1575 | if ((err = tuner_ops->get_state(fe, DVBFE_TUNER_FREQUENCY, &t_state)) < 0) { | ||
1576 | printk("%s: Invalid parameter\n", __func__); | ||
1577 | return err; | ||
1578 | } | ||
1579 | *frequency = t_state.frequency; | ||
1580 | printk("%s: Frequency=%d\n", __func__, t_state.frequency); | ||
1581 | } | ||
1582 | return 0; | ||
1583 | } | ||
1584 | |||
1585 | static int stb6100_set_frequency(struct dvb_frontend *fe, u32 frequency) | ||
1586 | { | ||
1587 | struct dvb_frontend_ops *frontend_ops = NULL; | ||
1588 | struct dvb_tuner_ops *tuner_ops = NULL; | ||
1589 | struct tuner_state t_state; | ||
1590 | int err = 0; | ||
1591 | |||
1592 | t_state.frequency = frequency; | ||
1593 | if (&fe->ops) | ||
1594 | frontend_ops = &fe->ops; | ||
1595 | if (&frontend_ops->tuner_ops) | ||
1596 | tuner_ops = &frontend_ops->tuner_ops; | ||
1597 | if (tuner_ops->set_state) { | ||
1598 | if ((err = tuner_ops->set_state(fe, DVBFE_TUNER_FREQUENCY, &t_state)) < 0) { | ||
1599 | printk("%s: Invalid parameter\n", __func__); | ||
1600 | return err; | ||
1601 | } | ||
1602 | } | ||
1603 | printk("%s: Frequency=%d\n", __func__, t_state.frequency); | ||
1604 | return 0; | ||
1605 | } | ||
1606 | |||
1607 | static int stb6100_get_bandwidth(struct dvb_frontend *fe, u32 *bandwidth) | ||
1608 | { | ||
1609 | struct dvb_frontend_ops *frontend_ops = &fe->ops; | ||
1610 | struct dvb_tuner_ops *tuner_ops = &frontend_ops->tuner_ops; | ||
1611 | struct tuner_state t_state; | ||
1612 | int err = 0; | ||
1613 | |||
1614 | if (&fe->ops) | ||
1615 | frontend_ops = &fe->ops; | ||
1616 | if (&frontend_ops->tuner_ops) | ||
1617 | tuner_ops = &frontend_ops->tuner_ops; | ||
1618 | if (tuner_ops->get_state) { | ||
1619 | if ((err = tuner_ops->get_state(fe, DVBFE_TUNER_BANDWIDTH, &t_state)) < 0) { | ||
1620 | printk("%s: Invalid parameter\n", __func__); | ||
1621 | return err; | ||
1622 | } | ||
1623 | *bandwidth = t_state.bandwidth; | ||
1624 | } | ||
1625 | printk("%s: Bandwidth=%d\n", __func__, t_state.bandwidth); | ||
1626 | return 0; | ||
1627 | } | ||
1628 | |||
1629 | static int stb6100_set_bandwidth(struct dvb_frontend *fe, u32 bandwidth) | ||
1630 | { | ||
1631 | struct dvb_frontend_ops *frontend_ops = NULL; | ||
1632 | struct dvb_tuner_ops *tuner_ops = NULL; | ||
1633 | struct tuner_state t_state; | ||
1634 | int err = 0; | ||
1635 | |||
1636 | t_state.bandwidth = bandwidth; | ||
1637 | if (&fe->ops) | ||
1638 | frontend_ops = &fe->ops; | ||
1639 | if (&frontend_ops->tuner_ops) | ||
1640 | tuner_ops = &frontend_ops->tuner_ops; | ||
1641 | if (tuner_ops->set_state) { | ||
1642 | if ((err = tuner_ops->set_state(fe, DVBFE_TUNER_BANDWIDTH, &t_state)) < 0) { | ||
1643 | printk("%s: Invalid parameter\n", __func__); | ||
1644 | return err; | ||
1645 | } | ||
1646 | } | ||
1647 | printk("%s: Bandwidth=%d\n", __func__, t_state.bandwidth); | ||
1648 | return 0; | ||
1649 | } | ||
1650 | |||
1651 | static struct stb0899_config tt3200_config = { | 1302 | static struct stb0899_config tt3200_config = { |
1652 | .init_dev = tt3200_stb0899_s1_init_1, | 1303 | .init_dev = tt3200_stb0899_s1_init_1, |
1653 | .init_s2_demod = tt3200_stb0899_s2_init_2, | 1304 | .init_s2_demod = stb0899_s2_init_2, |
1654 | .init_s1_demod = tt3200_stb0899_s1_init_3, | 1305 | .init_s1_demod = tt3200_stb0899_s1_init_3, |
1655 | .init_s2_fec = tt3200_stb0899_s2_init_4, | 1306 | .init_s2_fec = stb0899_s2_init_4, |
1656 | .init_tst = tt3200_stb0899_s1_init_5, | 1307 | .init_tst = stb0899_s1_init_5, |
1657 | 1308 | ||
1658 | .postproc = NULL, | 1309 | .postproc = NULL, |
1659 | 1310 | ||
@@ -1662,20 +1313,20 @@ static struct stb0899_config tt3200_config = { | |||
1662 | .xtal_freq = 27000000, | 1313 | .xtal_freq = 27000000, |
1663 | .inversion = IQ_SWAP_ON, /* 1 */ | 1314 | .inversion = IQ_SWAP_ON, /* 1 */ |
1664 | 1315 | ||
1665 | .esno_ave = TT3200_DVBS2_ESNO_AVE, | 1316 | .esno_ave = STB0899_DVBS2_ESNO_AVE, |
1666 | .esno_quant = TT3200_DVBS2_ESNO_QUANT, | 1317 | .esno_quant = STB0899_DVBS2_ESNO_QUANT, |
1667 | .avframes_coarse = TT3200_DVBS2_AVFRAMES_COARSE, | 1318 | .avframes_coarse = STB0899_DVBS2_AVFRAMES_COARSE, |
1668 | .avframes_fine = TT3200_DVBS2_AVFRAMES_FINE, | 1319 | .avframes_fine = STB0899_DVBS2_AVFRAMES_FINE, |
1669 | .miss_threshold = TT3200_DVBS2_MISS_THRESHOLD, | 1320 | .miss_threshold = STB0899_DVBS2_MISS_THRESHOLD, |
1670 | .uwp_threshold_acq = TT3200_DVBS2_UWP_THRESHOLD_ACQ, | 1321 | .uwp_threshold_acq = STB0899_DVBS2_UWP_THRESHOLD_ACQ, |
1671 | .uwp_threshold_track = TT3200_DVBS2_UWP_THRESHOLD_TRACK, | 1322 | .uwp_threshold_track = STB0899_DVBS2_UWP_THRESHOLD_TRACK, |
1672 | .uwp_threshold_sof = TT3200_DVBS2_UWP_THRESHOLD_SOF, | 1323 | .uwp_threshold_sof = STB0899_DVBS2_UWP_THRESHOLD_SOF, |
1673 | .sof_search_timeout = TT3200_DVBS2_SOF_SEARCH_TIMEOUT, | 1324 | .sof_search_timeout = STB0899_DVBS2_SOF_SEARCH_TIMEOUT, |
1674 | 1325 | ||
1675 | .btr_nco_bits = TT3200_DVBS2_BTR_NCO_BITS, | 1326 | .btr_nco_bits = STB0899_DVBS2_BTR_NCO_BITS, |
1676 | .btr_gain_shift_offset = TT3200_DVBS2_BTR_GAIN_SHIFT_OFFSET, | 1327 | .btr_gain_shift_offset = STB0899_DVBS2_BTR_GAIN_SHIFT_OFFSET, |
1677 | .crl_nco_bits = TT3200_DVBS2_CRL_NCO_BITS, | 1328 | .crl_nco_bits = STB0899_DVBS2_CRL_NCO_BITS, |
1678 | .ldpc_max_iter = TT3200_DVBS2_LDPC_MAX_ITER, | 1329 | .ldpc_max_iter = STB0899_DVBS2_LDPC_MAX_ITER, |
1679 | 1330 | ||
1680 | .tuner_get_frequency = stb6100_get_frequency, | 1331 | .tuner_get_frequency = stb6100_get_frequency, |
1681 | .tuner_set_frequency = stb6100_set_frequency, | 1332 | .tuner_set_frequency = stb6100_set_frequency, |