diff options
Diffstat (limited to 'drivers/media/dvb/frontends/dvb-pll.c')
-rw-r--r-- | drivers/media/dvb/frontends/dvb-pll.c | 85 |
1 files changed, 81 insertions, 4 deletions
diff --git a/drivers/media/dvb/frontends/dvb-pll.c b/drivers/media/dvb/frontends/dvb-pll.c index f73b5f48e235..5afeaa9b43b4 100644 --- a/drivers/media/dvb/frontends/dvb-pll.c +++ b/drivers/media/dvb/frontends/dvb-pll.c | |||
@@ -55,7 +55,7 @@ struct dvb_pll_desc dvb_pll_thomson_dtt7610 = { | |||
55 | }; | 55 | }; |
56 | EXPORT_SYMBOL(dvb_pll_thomson_dtt7610); | 56 | EXPORT_SYMBOL(dvb_pll_thomson_dtt7610); |
57 | 57 | ||
58 | static void thomson_dtt759x_bw(u8 *buf, int bandwidth) | 58 | static void thomson_dtt759x_bw(u8 *buf, u32 freq, int bandwidth) |
59 | { | 59 | { |
60 | if (BANDWIDTH_7_MHZ == bandwidth) | 60 | if (BANDWIDTH_7_MHZ == bandwidth) |
61 | buf[3] |= 0x10; | 61 | buf[3] |= 0x10; |
@@ -93,6 +93,32 @@ struct dvb_pll_desc dvb_pll_lg_z201 = { | |||
93 | }; | 93 | }; |
94 | EXPORT_SYMBOL(dvb_pll_lg_z201); | 94 | EXPORT_SYMBOL(dvb_pll_lg_z201); |
95 | 95 | ||
96 | struct dvb_pll_desc dvb_pll_microtune_4042 = { | ||
97 | .name = "Microtune 4042 FI5", | ||
98 | .min = 57000000, | ||
99 | .max = 858000000, | ||
100 | .count = 3, | ||
101 | .entries = { | ||
102 | { 162000000, 44000000, 62500, 0x8e, 0xa1 }, | ||
103 | { 457000000, 44000000, 62500, 0x8e, 0x91 }, | ||
104 | { 999999999, 44000000, 62500, 0x8e, 0x31 }, | ||
105 | }, | ||
106 | }; | ||
107 | EXPORT_SYMBOL(dvb_pll_microtune_4042); | ||
108 | |||
109 | struct dvb_pll_desc dvb_pll_thomson_dtt7611 = { | ||
110 | .name = "Thomson dtt7611", | ||
111 | .min = 44000000, | ||
112 | .max = 958000000, | ||
113 | .count = 3, | ||
114 | .entries = { | ||
115 | { 157250000, 44000000, 62500, 0x8e, 0x39 }, | ||
116 | { 454000000, 44000000, 62500, 0x8e, 0x3a }, | ||
117 | { 999999999, 44000000, 62500, 0x8e, 0x3c }, | ||
118 | }, | ||
119 | }; | ||
120 | EXPORT_SYMBOL(dvb_pll_thomson_dtt7611); | ||
121 | |||
96 | struct dvb_pll_desc dvb_pll_unknown_1 = { | 122 | struct dvb_pll_desc dvb_pll_unknown_1 = { |
97 | .name = "unknown 1", /* used by dntv live dvb-t */ | 123 | .name = "unknown 1", /* used by dntv live dvb-t */ |
98 | .min = 174000000, | 124 | .min = 174000000, |
@@ -146,7 +172,7 @@ EXPORT_SYMBOL(dvb_pll_env57h1xd5); | |||
146 | /* Philips TDA6650/TDA6651 | 172 | /* Philips TDA6650/TDA6651 |
147 | * used in Panasonic ENV77H11D5 | 173 | * used in Panasonic ENV77H11D5 |
148 | */ | 174 | */ |
149 | static void tda665x_bw(u8 *buf, int bandwidth) | 175 | static void tda665x_bw(u8 *buf, u32 freq, int bandwidth) |
150 | { | 176 | { |
151 | if (bandwidth == BANDWIDTH_8_MHZ) | 177 | if (bandwidth == BANDWIDTH_8_MHZ) |
152 | buf[3] |= 0x08; | 178 | buf[3] |= 0x08; |
@@ -178,7 +204,7 @@ EXPORT_SYMBOL(dvb_pll_tda665x); | |||
178 | /* Infineon TUA6034 | 204 | /* Infineon TUA6034 |
179 | * used in LG TDTP E102P | 205 | * used in LG TDTP E102P |
180 | */ | 206 | */ |
181 | static void tua6034_bw(u8 *buf, int bandwidth) | 207 | static void tua6034_bw(u8 *buf, u32 freq, int bandwidth) |
182 | { | 208 | { |
183 | if (BANDWIDTH_7_MHZ != bandwidth) | 209 | if (BANDWIDTH_7_MHZ != bandwidth) |
184 | buf[3] |= 0x08; | 210 | buf[3] |= 0x08; |
@@ -198,6 +224,57 @@ struct dvb_pll_desc dvb_pll_tua6034 = { | |||
198 | }; | 224 | }; |
199 | EXPORT_SYMBOL(dvb_pll_tua6034); | 225 | EXPORT_SYMBOL(dvb_pll_tua6034); |
200 | 226 | ||
227 | /* Philips FMD1216ME | ||
228 | * used in Medion Hybrid PCMCIA card and USB Box | ||
229 | */ | ||
230 | static void fmd1216me_bw(u8 *buf, u32 freq, int bandwidth) | ||
231 | { | ||
232 | if (bandwidth == BANDWIDTH_8_MHZ && freq >= 158870000) | ||
233 | buf[3] |= 0x08; | ||
234 | } | ||
235 | |||
236 | struct dvb_pll_desc dvb_pll_fmd1216me = { | ||
237 | .name = "Philips FMD1216ME", | ||
238 | .min = 50870000, | ||
239 | .max = 858000000, | ||
240 | .setbw = fmd1216me_bw, | ||
241 | .count = 7, | ||
242 | .entries = { | ||
243 | { 143870000, 36213333, 166667, 0xbc, 0x41 }, | ||
244 | { 158870000, 36213333, 166667, 0xf4, 0x41 }, | ||
245 | { 329870000, 36213333, 166667, 0xbc, 0x42 }, | ||
246 | { 441870000, 36213333, 166667, 0xf4, 0x42 }, | ||
247 | { 625870000, 36213333, 166667, 0xbc, 0x44 }, | ||
248 | { 803870000, 36213333, 166667, 0xf4, 0x44 }, | ||
249 | { 999999999, 36213333, 166667, 0xfc, 0x44 }, | ||
250 | } | ||
251 | }; | ||
252 | EXPORT_SYMBOL(dvb_pll_fmd1216me); | ||
253 | |||
254 | /* ALPS TDED4 | ||
255 | * used in Nebula-Cards and USB boxes | ||
256 | */ | ||
257 | static void tded4_bw(u8 *buf, u32 freq, int bandwidth) | ||
258 | { | ||
259 | if (bandwidth == BANDWIDTH_8_MHZ) | ||
260 | buf[3] |= 0x04; | ||
261 | } | ||
262 | |||
263 | struct dvb_pll_desc dvb_pll_tded4 = { | ||
264 | .name = "ALPS TDED4", | ||
265 | .min = 47000000, | ||
266 | .max = 863000000, | ||
267 | .setbw = tded4_bw, | ||
268 | .count = 4, | ||
269 | .entries = { | ||
270 | { 153000000, 36166667, 166667, 0x85, 0x01 }, | ||
271 | { 470000000, 36166667, 166667, 0x85, 0x02 }, | ||
272 | { 823000000, 36166667, 166667, 0x85, 0x08 }, | ||
273 | { 999999999, 36166667, 166667, 0x85, 0x88 }, | ||
274 | } | ||
275 | }; | ||
276 | EXPORT_SYMBOL(dvb_pll_tded4); | ||
277 | |||
201 | /* ----------------------------------------------------------- */ | 278 | /* ----------------------------------------------------------- */ |
202 | /* code */ | 279 | /* code */ |
203 | 280 | ||
@@ -231,7 +308,7 @@ int dvb_pll_configure(struct dvb_pll_desc *desc, u8 *buf, | |||
231 | buf[3] = desc->entries[i].cb2; | 308 | buf[3] = desc->entries[i].cb2; |
232 | 309 | ||
233 | if (desc->setbw) | 310 | if (desc->setbw) |
234 | desc->setbw(buf, bandwidth); | 311 | desc->setbw(buf, freq, bandwidth); |
235 | 312 | ||
236 | if (debug) | 313 | if (debug) |
237 | printk("pll: %s: div=%d | buf=0x%02x,0x%02x,0x%02x,0x%02x\n", | 314 | printk("pll: %s: div=%d | buf=0x%02x,0x%02x,0x%02x,0x%02x\n", |