diff options
author | Trent Piepho <xyzzy@speakeasy.org> | 2007-03-19 01:24:04 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-04-27 14:44:56 -0400 |
commit | df78cb0a1870703b7622fe8c63e5bcb6563197fd (patch) | |
tree | 9ed472d6be1e4576735f1cb8cba4f1871eaf2625 | |
parent | 0fd17d6da8154e1a6391440a268b0620ab339122 (diff) |
V4L/DVB (5456): Dvb-pll: Move IF frequency from per-band data to per-tuner data
The IF frequency was specified for each band, but it's not something that
changes from band to band. None of the tuner definitions had a different
IF frequency (called offset) from one band to another.
Acked-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r-- | drivers/media/dvb/frontends/dvb-pll.c | 227 | ||||
-rw-r--r-- | drivers/media/dvb/frontends/dvb-pll.h | 2 |
2 files changed, 124 insertions, 105 deletions
diff --git a/drivers/media/dvb/frontends/dvb-pll.c b/drivers/media/dvb/frontends/dvb-pll.c index 35973e7faac3..c6651a12eb67 100644 --- a/drivers/media/dvb/frontends/dvb-pll.c +++ b/drivers/media/dvb/frontends/dvb-pll.c | |||
@@ -42,13 +42,14 @@ struct dvb_pll_desc dvb_pll_thomson_dtt7579 = { | |||
42 | .name = "Thomson dtt7579", | 42 | .name = "Thomson dtt7579", |
43 | .min = 177000000, | 43 | .min = 177000000, |
44 | .max = 858000000, | 44 | .max = 858000000, |
45 | .iffreq= 36166667, | ||
45 | .count = 5, | 46 | .count = 5, |
46 | .entries = { | 47 | .entries = { |
47 | { 0, 36166667, 166667, 0xb4, 0x03 }, /* go sleep */ | 48 | { 0, 166667, 0xb4, 0x03 }, /* go sleep */ |
48 | { 443250000, 36166667, 166667, 0xb4, 0x02 }, | 49 | { 443250000, 166667, 0xb4, 0x02 }, |
49 | { 542000000, 36166667, 166667, 0xb4, 0x08 }, | 50 | { 542000000, 166667, 0xb4, 0x08 }, |
50 | { 771000000, 36166667, 166667, 0xbc, 0x08 }, | 51 | { 771000000, 166667, 0xbc, 0x08 }, |
51 | { 999999999, 36166667, 166667, 0xf4, 0x08 }, | 52 | { 999999999, 166667, 0xf4, 0x08 }, |
52 | }, | 53 | }, |
53 | }; | 54 | }; |
54 | EXPORT_SYMBOL(dvb_pll_thomson_dtt7579); | 55 | EXPORT_SYMBOL(dvb_pll_thomson_dtt7579); |
@@ -57,11 +58,12 @@ struct dvb_pll_desc dvb_pll_thomson_dtt7610 = { | |||
57 | .name = "Thomson dtt7610", | 58 | .name = "Thomson dtt7610", |
58 | .min = 44000000, | 59 | .min = 44000000, |
59 | .max = 958000000, | 60 | .max = 958000000, |
61 | .iffreq= 44000000, | ||
60 | .count = 3, | 62 | .count = 3, |
61 | .entries = { | 63 | .entries = { |
62 | { 157250000, 44000000, 62500, 0x8e, 0x39 }, | 64 | { 157250000, 62500, 0x8e, 0x39 }, |
63 | { 454000000, 44000000, 62500, 0x8e, 0x3a }, | 65 | { 454000000, 62500, 0x8e, 0x3a }, |
64 | { 999999999, 44000000, 62500, 0x8e, 0x3c }, | 66 | { 999999999, 62500, 0x8e, 0x3c }, |
65 | }, | 67 | }, |
66 | }; | 68 | }; |
67 | EXPORT_SYMBOL(dvb_pll_thomson_dtt7610); | 69 | EXPORT_SYMBOL(dvb_pll_thomson_dtt7610); |
@@ -77,14 +79,15 @@ struct dvb_pll_desc dvb_pll_thomson_dtt759x = { | |||
77 | .min = 177000000, | 79 | .min = 177000000, |
78 | .max = 896000000, | 80 | .max = 896000000, |
79 | .setbw = thomson_dtt759x_bw, | 81 | .setbw = thomson_dtt759x_bw, |
82 | .iffreq= 36166667, | ||
80 | .count = 6, | 83 | .count = 6, |
81 | .entries = { | 84 | .entries = { |
82 | { 0, 36166667, 166667, 0x84, 0x03 }, | 85 | { 0, 166667, 0x84, 0x03 }, |
83 | { 264000000, 36166667, 166667, 0xb4, 0x02 }, | 86 | { 264000000, 166667, 0xb4, 0x02 }, |
84 | { 470000000, 36166667, 166667, 0xbc, 0x02 }, | 87 | { 470000000, 166667, 0xbc, 0x02 }, |
85 | { 735000000, 36166667, 166667, 0xbc, 0x08 }, | 88 | { 735000000, 166667, 0xbc, 0x08 }, |
86 | { 835000000, 36166667, 166667, 0xf4, 0x08 }, | 89 | { 835000000, 166667, 0xf4, 0x08 }, |
87 | { 999999999, 36166667, 166667, 0xfc, 0x08 }, | 90 | { 999999999, 166667, 0xfc, 0x08 }, |
88 | }, | 91 | }, |
89 | }; | 92 | }; |
90 | EXPORT_SYMBOL(dvb_pll_thomson_dtt759x); | 93 | EXPORT_SYMBOL(dvb_pll_thomson_dtt759x); |
@@ -93,14 +96,15 @@ struct dvb_pll_desc dvb_pll_lg_z201 = { | |||
93 | .name = "LG z201", | 96 | .name = "LG z201", |
94 | .min = 174000000, | 97 | .min = 174000000, |
95 | .max = 862000000, | 98 | .max = 862000000, |
99 | .iffreq= 36166667, | ||
96 | .count = 6, | 100 | .count = 6, |
97 | .entries = { | 101 | .entries = { |
98 | { 0, 36166667, 166667, 0xbc, 0x03 }, | 102 | { 0, 166667, 0xbc, 0x03 }, |
99 | { 157500000, 36166667, 166667, 0xbc, 0x01 }, | 103 | { 157500000, 166667, 0xbc, 0x01 }, |
100 | { 443250000, 36166667, 166667, 0xbc, 0x02 }, | 104 | { 443250000, 166667, 0xbc, 0x02 }, |
101 | { 542000000, 36166667, 166667, 0xbc, 0x04 }, | 105 | { 542000000, 166667, 0xbc, 0x04 }, |
102 | { 830000000, 36166667, 166667, 0xf4, 0x04 }, | 106 | { 830000000, 166667, 0xf4, 0x04 }, |
103 | { 999999999, 36166667, 166667, 0xfc, 0x04 }, | 107 | { 999999999, 166667, 0xfc, 0x04 }, |
104 | }, | 108 | }, |
105 | }; | 109 | }; |
106 | EXPORT_SYMBOL(dvb_pll_lg_z201); | 110 | EXPORT_SYMBOL(dvb_pll_lg_z201); |
@@ -109,11 +113,12 @@ struct dvb_pll_desc dvb_pll_microtune_4042 = { | |||
109 | .name = "Microtune 4042 FI5", | 113 | .name = "Microtune 4042 FI5", |
110 | .min = 57000000, | 114 | .min = 57000000, |
111 | .max = 858000000, | 115 | .max = 858000000, |
116 | .iffreq= 44000000, | ||
112 | .count = 3, | 117 | .count = 3, |
113 | .entries = { | 118 | .entries = { |
114 | { 162000000, 44000000, 62500, 0x8e, 0xa1 }, | 119 | { 162000000, 62500, 0x8e, 0xa1 }, |
115 | { 457000000, 44000000, 62500, 0x8e, 0x91 }, | 120 | { 457000000, 62500, 0x8e, 0x91 }, |
116 | { 999999999, 44000000, 62500, 0x8e, 0x31 }, | 121 | { 999999999, 62500, 0x8e, 0x31 }, |
117 | }, | 122 | }, |
118 | }; | 123 | }; |
119 | EXPORT_SYMBOL(dvb_pll_microtune_4042); | 124 | EXPORT_SYMBOL(dvb_pll_microtune_4042); |
@@ -123,12 +128,13 @@ struct dvb_pll_desc dvb_pll_thomson_dtt761x = { | |||
123 | .name = "Thomson dtt761x", | 128 | .name = "Thomson dtt761x", |
124 | .min = 57000000, | 129 | .min = 57000000, |
125 | .max = 863000000, | 130 | .max = 863000000, |
131 | .iffreq= 44000000, | ||
126 | .count = 3, | 132 | .count = 3, |
127 | .initdata = tua603x_agc103, | 133 | .initdata = tua603x_agc103, |
128 | .entries = { | 134 | .entries = { |
129 | { 147000000, 44000000, 62500, 0x8e, 0x39 }, | 135 | { 147000000, 62500, 0x8e, 0x39 }, |
130 | { 417000000, 44000000, 62500, 0x8e, 0x3a }, | 136 | { 417000000, 62500, 0x8e, 0x3a }, |
131 | { 999999999, 44000000, 62500, 0x8e, 0x3c }, | 137 | { 999999999, 62500, 0x8e, 0x3c }, |
132 | }, | 138 | }, |
133 | }; | 139 | }; |
134 | EXPORT_SYMBOL(dvb_pll_thomson_dtt761x); | 140 | EXPORT_SYMBOL(dvb_pll_thomson_dtt761x); |
@@ -137,17 +143,18 @@ struct dvb_pll_desc dvb_pll_unknown_1 = { | |||
137 | .name = "unknown 1", /* used by dntv live dvb-t */ | 143 | .name = "unknown 1", /* used by dntv live dvb-t */ |
138 | .min = 174000000, | 144 | .min = 174000000, |
139 | .max = 862000000, | 145 | .max = 862000000, |
146 | .iffreq= 36166667, | ||
140 | .count = 9, | 147 | .count = 9, |
141 | .entries = { | 148 | .entries = { |
142 | { 150000000, 36166667, 166667, 0xb4, 0x01 }, | 149 | { 150000000, 166667, 0xb4, 0x01 }, |
143 | { 173000000, 36166667, 166667, 0xbc, 0x01 }, | 150 | { 173000000, 166667, 0xbc, 0x01 }, |
144 | { 250000000, 36166667, 166667, 0xb4, 0x02 }, | 151 | { 250000000, 166667, 0xb4, 0x02 }, |
145 | { 400000000, 36166667, 166667, 0xbc, 0x02 }, | 152 | { 400000000, 166667, 0xbc, 0x02 }, |
146 | { 420000000, 36166667, 166667, 0xf4, 0x02 }, | 153 | { 420000000, 166667, 0xf4, 0x02 }, |
147 | { 470000000, 36166667, 166667, 0xfc, 0x02 }, | 154 | { 470000000, 166667, 0xfc, 0x02 }, |
148 | { 600000000, 36166667, 166667, 0xbc, 0x08 }, | 155 | { 600000000, 166667, 0xbc, 0x08 }, |
149 | { 730000000, 36166667, 166667, 0xf4, 0x08 }, | 156 | { 730000000, 166667, 0xf4, 0x08 }, |
150 | { 999999999, 36166667, 166667, 0xfc, 0x08 }, | 157 | { 999999999, 166667, 0xfc, 0x08 }, |
151 | }, | 158 | }, |
152 | }; | 159 | }; |
153 | EXPORT_SYMBOL(dvb_pll_unknown_1); | 160 | EXPORT_SYMBOL(dvb_pll_unknown_1); |
@@ -159,11 +166,12 @@ struct dvb_pll_desc dvb_pll_tua6010xs = { | |||
159 | .name = "Infineon TUA6010XS", | 166 | .name = "Infineon TUA6010XS", |
160 | .min = 44250000, | 167 | .min = 44250000, |
161 | .max = 858000000, | 168 | .max = 858000000, |
169 | .iffreq= 36125000, | ||
162 | .count = 3, | 170 | .count = 3, |
163 | .entries = { | 171 | .entries = { |
164 | { 115750000, 36125000, 62500, 0x8e, 0x03 }, | 172 | { 115750000, 62500, 0x8e, 0x03 }, |
165 | { 403250000, 36125000, 62500, 0x8e, 0x06 }, | 173 | { 403250000, 62500, 0x8e, 0x06 }, |
166 | { 999999999, 36125000, 62500, 0x8e, 0x85 }, | 174 | { 999999999, 62500, 0x8e, 0x85 }, |
167 | }, | 175 | }, |
168 | }; | 176 | }; |
169 | EXPORT_SYMBOL(dvb_pll_tua6010xs); | 177 | EXPORT_SYMBOL(dvb_pll_tua6010xs); |
@@ -173,12 +181,13 @@ struct dvb_pll_desc dvb_pll_env57h1xd5 = { | |||
173 | .name = "Panasonic ENV57H1XD5", | 181 | .name = "Panasonic ENV57H1XD5", |
174 | .min = 44250000, | 182 | .min = 44250000, |
175 | .max = 858000000, | 183 | .max = 858000000, |
184 | .iffreq= 36125000, | ||
176 | .count = 4, | 185 | .count = 4, |
177 | .entries = { | 186 | .entries = { |
178 | { 153000000, 36125000, 166667, 0xc2, 0x41 }, | 187 | { 153000000, 166667, 0xc2, 0x41 }, |
179 | { 470000000, 36125000, 166667, 0xc2, 0x42 }, | 188 | { 470000000, 166667, 0xc2, 0x42 }, |
180 | { 526000000, 36125000, 166667, 0xc2, 0x84 }, | 189 | { 526000000, 166667, 0xc2, 0x84 }, |
181 | { 999999999, 36125000, 166667, 0xc2, 0xa4 }, | 190 | { 999999999, 166667, 0xc2, 0xa4 }, |
182 | }, | 191 | }, |
183 | }; | 192 | }; |
184 | EXPORT_SYMBOL(dvb_pll_env57h1xd5); | 193 | EXPORT_SYMBOL(dvb_pll_env57h1xd5); |
@@ -197,20 +206,21 @@ struct dvb_pll_desc dvb_pll_tda665x = { | |||
197 | .min = 44250000, | 206 | .min = 44250000, |
198 | .max = 858000000, | 207 | .max = 858000000, |
199 | .setbw = tda665x_bw, | 208 | .setbw = tda665x_bw, |
209 | .iffreq= 36166667, | ||
200 | .count = 12, | 210 | .count = 12, |
201 | .entries = { | 211 | .entries = { |
202 | { 93834000, 36166667, 166667, 0xca, 0x61 /* 011 0 0 0 01 */ }, | 212 | { 93834000, 166667, 0xca, 0x61 /* 011 0 0 0 01 */ }, |
203 | { 123834000, 36166667, 166667, 0xca, 0xa1 /* 101 0 0 0 01 */ }, | 213 | { 123834000, 166667, 0xca, 0xa1 /* 101 0 0 0 01 */ }, |
204 | { 161000000, 36166667, 166667, 0xca, 0xa1 /* 101 0 0 0 01 */ }, | 214 | { 161000000, 166667, 0xca, 0xa1 /* 101 0 0 0 01 */ }, |
205 | { 163834000, 36166667, 166667, 0xca, 0xc2 /* 110 0 0 0 10 */ }, | 215 | { 163834000, 166667, 0xca, 0xc2 /* 110 0 0 0 10 */ }, |
206 | { 253834000, 36166667, 166667, 0xca, 0x62 /* 011 0 0 0 10 */ }, | 216 | { 253834000, 166667, 0xca, 0x62 /* 011 0 0 0 10 */ }, |
207 | { 383834000, 36166667, 166667, 0xca, 0xa2 /* 101 0 0 0 10 */ }, | 217 | { 383834000, 166667, 0xca, 0xa2 /* 101 0 0 0 10 */ }, |
208 | { 443834000, 36166667, 166667, 0xca, 0xc2 /* 110 0 0 0 10 */ }, | 218 | { 443834000, 166667, 0xca, 0xc2 /* 110 0 0 0 10 */ }, |
209 | { 444000000, 36166667, 166667, 0xca, 0xc4 /* 110 0 0 1 00 */ }, | 219 | { 444000000, 166667, 0xca, 0xc4 /* 110 0 0 1 00 */ }, |
210 | { 583834000, 36166667, 166667, 0xca, 0x64 /* 011 0 0 1 00 */ }, | 220 | { 583834000, 166667, 0xca, 0x64 /* 011 0 0 1 00 */ }, |
211 | { 793834000, 36166667, 166667, 0xca, 0xa4 /* 101 0 0 1 00 */ }, | 221 | { 793834000, 166667, 0xca, 0xa4 /* 101 0 0 1 00 */ }, |
212 | { 444834000, 36166667, 166667, 0xca, 0xc4 /* 110 0 0 1 00 */ }, | 222 | { 444834000, 166667, 0xca, 0xc4 /* 110 0 0 1 00 */ }, |
213 | { 861000000, 36166667, 166667, 0xca, 0xe4 /* 111 0 0 1 00 */ }, | 223 | { 861000000, 166667, 0xca, 0xe4 /* 111 0 0 1 00 */ }, |
214 | } | 224 | } |
215 | }; | 225 | }; |
216 | EXPORT_SYMBOL(dvb_pll_tda665x); | 226 | EXPORT_SYMBOL(dvb_pll_tda665x); |
@@ -228,12 +238,13 @@ struct dvb_pll_desc dvb_pll_tua6034 = { | |||
228 | .name = "Infineon TUA6034", | 238 | .name = "Infineon TUA6034", |
229 | .min = 44250000, | 239 | .min = 44250000, |
230 | .max = 858000000, | 240 | .max = 858000000, |
241 | .iffreq= 36166667, | ||
231 | .count = 3, | 242 | .count = 3, |
232 | .setbw = tua6034_bw, | 243 | .setbw = tua6034_bw, |
233 | .entries = { | 244 | .entries = { |
234 | { 174500000, 36166667, 62500, 0xce, 0x01 }, | 245 | { 174500000, 62500, 0xce, 0x01 }, |
235 | { 230000000, 36166667, 62500, 0xce, 0x02 }, | 246 | { 230000000, 62500, 0xce, 0x02 }, |
236 | { 999999999, 36166667, 62500, 0xce, 0x04 }, | 247 | { 999999999, 62500, 0xce, 0x04 }, |
237 | }, | 248 | }, |
238 | }; | 249 | }; |
239 | EXPORT_SYMBOL(dvb_pll_tua6034); | 250 | EXPORT_SYMBOL(dvb_pll_tua6034); |
@@ -245,12 +256,13 @@ struct dvb_pll_desc dvb_pll_lg_tdvs_h06xf = { | |||
245 | .name = "LG TDVS-H06xF", | 256 | .name = "LG TDVS-H06xF", |
246 | .min = 54000000, | 257 | .min = 54000000, |
247 | .max = 863000000, | 258 | .max = 863000000, |
259 | .iffreq= 44000000, | ||
248 | .initdata = tua603x_agc103, | 260 | .initdata = tua603x_agc103, |
249 | .count = 3, | 261 | .count = 3, |
250 | .entries = { | 262 | .entries = { |
251 | { 165000000, 44000000, 62500, 0xce, 0x01 }, | 263 | { 165000000, 62500, 0xce, 0x01 }, |
252 | { 450000000, 44000000, 62500, 0xce, 0x02 }, | 264 | { 450000000, 62500, 0xce, 0x02 }, |
253 | { 999999999, 44000000, 62500, 0xce, 0x04 }, | 265 | { 999999999, 62500, 0xce, 0x04 }, |
254 | }, | 266 | }, |
255 | }; | 267 | }; |
256 | EXPORT_SYMBOL(dvb_pll_lg_tdvs_h06xf); | 268 | EXPORT_SYMBOL(dvb_pll_lg_tdvs_h06xf); |
@@ -268,16 +280,17 @@ struct dvb_pll_desc dvb_pll_fmd1216me = { | |||
268 | .name = "Philips FMD1216ME", | 280 | .name = "Philips FMD1216ME", |
269 | .min = 50870000, | 281 | .min = 50870000, |
270 | .max = 858000000, | 282 | .max = 858000000, |
283 | .iffreq= 36125000, | ||
271 | .setbw = fmd1216me_bw, | 284 | .setbw = fmd1216me_bw, |
272 | .count = 7, | 285 | .count = 7, |
273 | .entries = { | 286 | .entries = { |
274 | { 143870000, 36125000, 166667, 0xbc, 0x41 }, | 287 | { 143870000, 166667, 0xbc, 0x41 }, |
275 | { 158870000, 36125000, 166667, 0xf4, 0x41 }, | 288 | { 158870000, 166667, 0xf4, 0x41 }, |
276 | { 329870000, 36125000, 166667, 0xbc, 0x42 }, | 289 | { 329870000, 166667, 0xbc, 0x42 }, |
277 | { 441870000, 36125000, 166667, 0xf4, 0x42 }, | 290 | { 441870000, 166667, 0xf4, 0x42 }, |
278 | { 625870000, 36125000, 166667, 0xbc, 0x44 }, | 291 | { 625870000, 166667, 0xbc, 0x44 }, |
279 | { 803870000, 36125000, 166667, 0xf4, 0x44 }, | 292 | { 803870000, 166667, 0xf4, 0x44 }, |
280 | { 999999999, 36125000, 166667, 0xfc, 0x44 }, | 293 | { 999999999, 166667, 0xfc, 0x44 }, |
281 | } | 294 | } |
282 | }; | 295 | }; |
283 | EXPORT_SYMBOL(dvb_pll_fmd1216me); | 296 | EXPORT_SYMBOL(dvb_pll_fmd1216me); |
@@ -295,13 +308,14 @@ struct dvb_pll_desc dvb_pll_tded4 = { | |||
295 | .name = "ALPS TDED4", | 308 | .name = "ALPS TDED4", |
296 | .min = 47000000, | 309 | .min = 47000000, |
297 | .max = 863000000, | 310 | .max = 863000000, |
311 | .iffreq= 36166667, | ||
298 | .setbw = tded4_bw, | 312 | .setbw = tded4_bw, |
299 | .count = 4, | 313 | .count = 4, |
300 | .entries = { | 314 | .entries = { |
301 | { 153000000, 36166667, 166667, 0x85, 0x01 }, | 315 | { 153000000, 166667, 0x85, 0x01 }, |
302 | { 470000000, 36166667, 166667, 0x85, 0x02 }, | 316 | { 470000000, 166667, 0x85, 0x02 }, |
303 | { 823000000, 36166667, 166667, 0x85, 0x08 }, | 317 | { 823000000, 166667, 0x85, 0x08 }, |
304 | { 999999999, 36166667, 166667, 0x85, 0x88 }, | 318 | { 999999999, 166667, 0x85, 0x88 }, |
305 | } | 319 | } |
306 | }; | 320 | }; |
307 | EXPORT_SYMBOL(dvb_pll_tded4); | 321 | EXPORT_SYMBOL(dvb_pll_tded4); |
@@ -313,12 +327,13 @@ struct dvb_pll_desc dvb_pll_tdhu2 = { | |||
313 | .name = "ALPS TDHU2", | 327 | .name = "ALPS TDHU2", |
314 | .min = 54000000, | 328 | .min = 54000000, |
315 | .max = 864000000, | 329 | .max = 864000000, |
330 | .iffreq= 44000000, | ||
316 | .count = 4, | 331 | .count = 4, |
317 | .entries = { | 332 | .entries = { |
318 | { 162000000, 44000000, 62500, 0x85, 0x01 }, | 333 | { 162000000, 62500, 0x85, 0x01 }, |
319 | { 426000000, 44000000, 62500, 0x85, 0x02 }, | 334 | { 426000000, 62500, 0x85, 0x02 }, |
320 | { 782000000, 44000000, 62500, 0x85, 0x08 }, | 335 | { 782000000, 62500, 0x85, 0x08 }, |
321 | { 999999999, 44000000, 62500, 0x85, 0x88 }, | 336 | { 999999999, 62500, 0x85, 0x88 }, |
322 | } | 337 | } |
323 | }; | 338 | }; |
324 | EXPORT_SYMBOL(dvb_pll_tdhu2); | 339 | EXPORT_SYMBOL(dvb_pll_tdhu2); |
@@ -330,11 +345,12 @@ struct dvb_pll_desc dvb_pll_tuv1236d = { | |||
330 | .name = "Philips TUV1236D", | 345 | .name = "Philips TUV1236D", |
331 | .min = 54000000, | 346 | .min = 54000000, |
332 | .max = 864000000, | 347 | .max = 864000000, |
348 | .iffreq= 44000000, | ||
333 | .count = 3, | 349 | .count = 3, |
334 | .entries = { | 350 | .entries = { |
335 | { 157250000, 44000000, 62500, 0xc6, 0x41 }, | 351 | { 157250000, 62500, 0xc6, 0x41 }, |
336 | { 454000000, 44000000, 62500, 0xc6, 0x42 }, | 352 | { 454000000, 62500, 0xc6, 0x42 }, |
337 | { 999999999, 44000000, 62500, 0xc6, 0x44 }, | 353 | { 999999999, 62500, 0xc6, 0x44 }, |
338 | }, | 354 | }, |
339 | }; | 355 | }; |
340 | EXPORT_SYMBOL(dvb_pll_tuv1236d); | 356 | EXPORT_SYMBOL(dvb_pll_tuv1236d); |
@@ -346,14 +362,15 @@ struct dvb_pll_desc dvb_pll_samsung_tbmv = { | |||
346 | .name = "Samsung TBMV30111IN / TBMV30712IN1", | 362 | .name = "Samsung TBMV30111IN / TBMV30712IN1", |
347 | .min = 54000000, | 363 | .min = 54000000, |
348 | .max = 860000000, | 364 | .max = 860000000, |
365 | .iffreq= 44000000, | ||
349 | .count = 6, | 366 | .count = 6, |
350 | .entries = { | 367 | .entries = { |
351 | { 172000000, 44000000, 166667, 0xb4, 0x01 }, | 368 | { 172000000, 166667, 0xb4, 0x01 }, |
352 | { 214000000, 44000000, 166667, 0xb4, 0x02 }, | 369 | { 214000000, 166667, 0xb4, 0x02 }, |
353 | { 467000000, 44000000, 166667, 0xbc, 0x02 }, | 370 | { 467000000, 166667, 0xbc, 0x02 }, |
354 | { 721000000, 44000000, 166667, 0xbc, 0x08 }, | 371 | { 721000000, 166667, 0xbc, 0x08 }, |
355 | { 841000000, 44000000, 166667, 0xf4, 0x08 }, | 372 | { 841000000, 166667, 0xf4, 0x08 }, |
356 | { 999999999, 44000000, 166667, 0xfc, 0x02 }, | 373 | { 999999999, 166667, 0xfc, 0x02 }, |
357 | } | 374 | } |
358 | }; | 375 | }; |
359 | EXPORT_SYMBOL(dvb_pll_samsung_tbmv); | 376 | EXPORT_SYMBOL(dvb_pll_samsung_tbmv); |
@@ -365,13 +382,13 @@ struct dvb_pll_desc dvb_pll_philips_sd1878_tda8261 = { | |||
365 | .name = "Philips SD1878", | 382 | .name = "Philips SD1878", |
366 | .min = 950000, | 383 | .min = 950000, |
367 | .max = 2150000, | 384 | .max = 2150000, |
385 | .iffreq= 249, /* zero-IF, offset 249 is to round up */ | ||
368 | .count = 4, | 386 | .count = 4, |
369 | .entries = { | 387 | .entries = { |
370 | /* zero-IF, offset 249 is to round up */ | 388 | { 1250000, 500, 0xc4, 0x00}, |
371 | { 1250000, 249, 500, 0xc4, 0x00}, | 389 | { 1550000, 500, 0xc4, 0x40}, |
372 | { 1550000, 249, 500, 0xc4, 0x40}, | 390 | { 2050000, 500, 0xc4, 0x80}, |
373 | { 2050000, 249, 500, 0xc4, 0x80}, | 391 | { 2150000, 500, 0xc4, 0xc0}, |
374 | { 2150000, 249, 500, 0xc4, 0xc0}, | ||
375 | }, | 392 | }, |
376 | }; | 393 | }; |
377 | EXPORT_SYMBOL(dvb_pll_philips_sd1878_tda8261); | 394 | EXPORT_SYMBOL(dvb_pll_philips_sd1878_tda8261); |
@@ -402,18 +419,19 @@ struct dvb_pll_desc dvb_pll_philips_td1316 = { | |||
402 | .name = "Philips TD1316", | 419 | .name = "Philips TD1316", |
403 | .min = 87000000, | 420 | .min = 87000000, |
404 | .max = 895000000, | 421 | .max = 895000000, |
422 | .iffreq= 36166667, | ||
405 | .setbw = td1316_bw, | 423 | .setbw = td1316_bw, |
406 | .count = 9, | 424 | .count = 9, |
407 | .entries = { | 425 | .entries = { |
408 | { 93834000, 36166667, 166667, 0xca, 0x60}, | 426 | { 93834000, 166667, 0xca, 0x60}, |
409 | { 123834000, 36166667, 166667, 0xca, 0xa0}, | 427 | { 123834000, 166667, 0xca, 0xa0}, |
410 | { 163834000, 36166667, 166667, 0xca, 0xc0}, | 428 | { 163834000, 166667, 0xca, 0xc0}, |
411 | { 253834000, 36166667, 166667, 0xca, 0x60}, | 429 | { 253834000, 166667, 0xca, 0x60}, |
412 | { 383834000, 36166667, 166667, 0xca, 0xa0}, | 430 | { 383834000, 166667, 0xca, 0xa0}, |
413 | { 443834000, 36166667, 166667, 0xca, 0xc0}, | 431 | { 443834000, 166667, 0xca, 0xc0}, |
414 | { 583834000, 36166667, 166667, 0xca, 0x60}, | 432 | { 583834000, 166667, 0xca, 0x60}, |
415 | { 793834000, 36166667, 166667, 0xca, 0xa0}, | 433 | { 793834000, 166667, 0xca, 0xa0}, |
416 | { 858834000, 36166667, 166667, 0xca, 0xe0}, | 434 | { 858834000, 166667, 0xca, 0xe0}, |
417 | }, | 435 | }, |
418 | }; | 436 | }; |
419 | EXPORT_SYMBOL(dvb_pll_philips_td1316); | 437 | EXPORT_SYMBOL(dvb_pll_philips_td1316); |
@@ -423,12 +441,13 @@ struct dvb_pll_desc dvb_pll_thomson_fe6600 = { | |||
423 | .name = "Thomson FE6600", | 441 | .name = "Thomson FE6600", |
424 | .min = 44250000, | 442 | .min = 44250000, |
425 | .max = 858000000, | 443 | .max = 858000000, |
444 | .iffreq= 36125000, | ||
426 | .count = 4, | 445 | .count = 4, |
427 | .entries = { | 446 | .entries = { |
428 | { 250000000, 36125000, 166667, 0xb4, 0x12 }, | 447 | { 250000000, 166667, 0xb4, 0x12 }, |
429 | { 455000000, 36125000, 166667, 0xfe, 0x11 }, | 448 | { 455000000, 166667, 0xfe, 0x11 }, |
430 | { 775500000, 36125000, 166667, 0xbc, 0x18 }, | 449 | { 775500000, 166667, 0xbc, 0x18 }, |
431 | { 999999999, 36125000, 166667, 0xf4, 0x18 }, | 450 | { 999999999, 166667, 0xf4, 0x18 }, |
432 | } | 451 | } |
433 | }; | 452 | }; |
434 | EXPORT_SYMBOL(dvb_pll_thomson_fe6600); | 453 | EXPORT_SYMBOL(dvb_pll_thomson_fe6600); |
@@ -473,7 +492,7 @@ int dvb_pll_configure(struct dvb_pll_desc *desc, u8 *buf, | |||
473 | if (i == desc->count) | 492 | if (i == desc->count) |
474 | return -EINVAL; | 493 | return -EINVAL; |
475 | 494 | ||
476 | div = (freq + desc->entries[i].offset + desc->entries[i].stepsize/2) / | 495 | div = (freq + desc->iffreq + desc->entries[i].stepsize/2) / |
477 | desc->entries[i].stepsize; | 496 | desc->entries[i].stepsize; |
478 | buf[0] = div >> 8; | 497 | buf[0] = div >> 8; |
479 | buf[1] = div & 0xff; | 498 | buf[1] = div & 0xff; |
@@ -488,7 +507,7 @@ int dvb_pll_configure(struct dvb_pll_desc *desc, u8 *buf, | |||
488 | desc->name, div, buf[0], buf[1], buf[2], buf[3]); | 507 | desc->name, div, buf[0], buf[1], buf[2], buf[3]); |
489 | 508 | ||
490 | // calculate the frequency we set it to | 509 | // calculate the frequency we set it to |
491 | return (div * desc->entries[i].stepsize) - desc->entries[i].offset; | 510 | return (div * desc->entries[i].stepsize) - desc->iffreq; |
492 | } | 511 | } |
493 | EXPORT_SYMBOL(dvb_pll_configure); | 512 | EXPORT_SYMBOL(dvb_pll_configure); |
494 | 513 | ||
diff --git a/drivers/media/dvb/frontends/dvb-pll.h b/drivers/media/dvb/frontends/dvb-pll.h index bb79a78151f5..40b2dca1bd51 100644 --- a/drivers/media/dvb/frontends/dvb-pll.h +++ b/drivers/media/dvb/frontends/dvb-pll.h | |||
@@ -12,12 +12,12 @@ struct dvb_pll_desc { | |||
12 | char *name; | 12 | char *name; |
13 | u32 min; | 13 | u32 min; |
14 | u32 max; | 14 | u32 max; |
15 | u32 iffreq; | ||
15 | void (*setbw)(u8 *buf, u32 freq, int bandwidth); | 16 | void (*setbw)(u8 *buf, u32 freq, int bandwidth); |
16 | u8 *initdata; | 17 | u8 *initdata; |
17 | int count; | 18 | int count; |
18 | struct { | 19 | struct { |
19 | u32 limit; | 20 | u32 limit; |
20 | u32 offset; | ||
21 | u32 stepsize; | 21 | u32 stepsize; |
22 | u8 config; | 22 | u8 config; |
23 | u8 cb; | 23 | u8 cb; |