diff options
Diffstat (limited to 'drivers/media/dvb/frontends/zl10353.c')
-rw-r--r-- | drivers/media/dvb/frontends/zl10353.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/media/dvb/frontends/zl10353.c b/drivers/media/dvb/frontends/zl10353.c index 2b95e8b6cd39..0e9b59af271e 100644 --- a/drivers/media/dvb/frontends/zl10353.c +++ b/drivers/media/dvb/frontends/zl10353.c | |||
@@ -140,6 +140,8 @@ static int zl10353_set_parameters(struct dvb_frontend *fe, | |||
140 | zl10353_single_write(fe, 0x5E, 0x00); | 140 | zl10353_single_write(fe, 0x5E, 0x00); |
141 | zl10353_single_write(fe, 0x65, 0x5A); | 141 | zl10353_single_write(fe, 0x65, 0x5A); |
142 | zl10353_single_write(fe, 0x66, 0xE9); | 142 | zl10353_single_write(fe, 0x66, 0xE9); |
143 | zl10353_single_write(fe, 0x6C, 0xCD); | ||
144 | zl10353_single_write(fe, 0x6D, 0x7E); | ||
143 | zl10353_single_write(fe, 0x62, 0x0A); | 145 | zl10353_single_write(fe, 0x62, 0x0A); |
144 | 146 | ||
145 | // if there is no attached secondary tuner, we call set_params to program | 147 | // if there is no attached secondary tuner, we call set_params to program |
@@ -168,6 +170,7 @@ static int zl10353_set_parameters(struct dvb_frontend *fe, | |||
168 | // even if there isn't a PLL attached to the secondary bus | 170 | // even if there isn't a PLL attached to the secondary bus |
169 | zl10353_write(fe, pllbuf, sizeof(pllbuf)); | 171 | zl10353_write(fe, pllbuf, sizeof(pllbuf)); |
170 | 172 | ||
173 | zl10353_single_write(fe, 0x5F, 0x13); | ||
171 | zl10353_single_write(fe, 0x70, 0x01); | 174 | zl10353_single_write(fe, 0x70, 0x01); |
172 | udelay(250); | 175 | udelay(250); |
173 | zl10353_single_write(fe, 0xE4, 0x00); | 176 | zl10353_single_write(fe, 0xE4, 0x00); |
@@ -243,9 +246,12 @@ static int zl10353_init(struct dvb_frontend *fe) | |||
243 | 246 | ||
244 | if (debug_regs) | 247 | if (debug_regs) |
245 | zl10353_dump_regs(fe); | 248 | zl10353_dump_regs(fe); |
249 | if (state->config.parallel_ts) | ||
250 | zl10353_reset_attach[2] &= ~0x20; | ||
246 | 251 | ||
247 | /* Do a "hard" reset if not already done */ | 252 | /* Do a "hard" reset if not already done */ |
248 | if (zl10353_read_register(state, 0x50) != 0x03) { | 253 | if (zl10353_read_register(state, 0x50) != zl10353_reset_attach[1] || |
254 | zl10353_read_register(state, 0x51) != zl10353_reset_attach[2]) { | ||
249 | rc = zl10353_write(fe, zl10353_reset_attach, | 255 | rc = zl10353_write(fe, zl10353_reset_attach, |
250 | sizeof(zl10353_reset_attach)); | 256 | sizeof(zl10353_reset_attach)); |
251 | if (debug_regs) | 257 | if (debug_regs) |
@@ -258,7 +264,6 @@ static int zl10353_init(struct dvb_frontend *fe) | |||
258 | static void zl10353_release(struct dvb_frontend *fe) | 264 | static void zl10353_release(struct dvb_frontend *fe) |
259 | { | 265 | { |
260 | struct zl10353_state *state = fe->demodulator_priv; | 266 | struct zl10353_state *state = fe->demodulator_priv; |
261 | |||
262 | kfree(state); | 267 | kfree(state); |
263 | } | 268 | } |
264 | 269 | ||
@@ -314,6 +319,7 @@ static struct dvb_frontend_ops zl10353_ops = { | |||
314 | 319 | ||
315 | .init = zl10353_init, | 320 | .init = zl10353_init, |
316 | .sleep = zl10353_sleep, | 321 | .sleep = zl10353_sleep, |
322 | .write = zl10353_write, | ||
317 | 323 | ||
318 | .set_frontend = zl10353_set_parameters, | 324 | .set_frontend = zl10353_set_parameters, |
319 | .get_tune_settings = zl10353_get_tune_settings, | 325 | .get_tune_settings = zl10353_get_tune_settings, |
@@ -330,4 +336,3 @@ MODULE_AUTHOR("Chris Pascoe"); | |||
330 | MODULE_LICENSE("GPL"); | 336 | MODULE_LICENSE("GPL"); |
331 | 337 | ||
332 | EXPORT_SYMBOL(zl10353_attach); | 338 | EXPORT_SYMBOL(zl10353_attach); |
333 | EXPORT_SYMBOL(zl10353_write); | ||