aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Pascoe <c.pascoe@itee.uq.edu.au>2006-08-10 02:17:16 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2006-09-26 11:30:32 -0400
commit8fb957841b2f4311e6418dcbef24564e4cebb87d (patch)
treefabf278b240514ba7c430c8f9352a95d387f92e7
parentb5b168d7b9e28e0569ed4fe2c0a44fae71df30b5 (diff)
V4L/DVB (4495): Fix "no data from ZL10353 based USB tuner" problem
Force parallel transport stream output on the ZL10353 attached to a bluebird device. Addresses the problem where a frontend lock was observed, but no MPEG transport data was received. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--drivers/media/dvb/dvb-usb/cxusb.c1
-rw-r--r--drivers/media/dvb/frontends/zl10353.c5
-rw-r--r--drivers/media/dvb/frontends/zl10353.h3
3 files changed, 8 insertions, 1 deletions
diff --git a/drivers/media/dvb/dvb-usb/cxusb.c b/drivers/media/dvb/dvb-usb/cxusb.c
index ac72e7ed9fcc..c710c0176e07 100644
--- a/drivers/media/dvb/dvb-usb/cxusb.c
+++ b/drivers/media/dvb/dvb-usb/cxusb.c
@@ -349,6 +349,7 @@ static struct mt352_config cxusb_dee1601_config = {
349 349
350static struct zl10353_config cxusb_zl10353_dee1601_config = { 350static struct zl10353_config cxusb_zl10353_dee1601_config = {
351 .demod_address = 0x0f, 351 .demod_address = 0x0f,
352 .parallel_ts = 1,
352}; 353};
353 354
354static struct mt352_config cxusb_mt352_config = { 355static struct mt352_config cxusb_mt352_config = {
diff --git a/drivers/media/dvb/frontends/zl10353.c b/drivers/media/dvb/frontends/zl10353.c
index 953fb55d87b6..84abbaf362fb 100644
--- a/drivers/media/dvb/frontends/zl10353.c
+++ b/drivers/media/dvb/frontends/zl10353.c
@@ -243,9 +243,12 @@ static int zl10353_init(struct dvb_frontend *fe)
243 243
244 if (debug_regs) 244 if (debug_regs)
245 zl10353_dump_regs(fe); 245 zl10353_dump_regs(fe);
246 if (state->config.parallel_ts)
247 zl10353_reset_attach[2] &= ~0x20;
246 248
247 /* Do a "hard" reset if not already done */ 249 /* Do a "hard" reset if not already done */
248 if (zl10353_read_register(state, 0x50) != 0x03) { 250 if (zl10353_read_register(state, 0x50) != zl10353_reset_attach[1] ||
251 zl10353_read_register(state, 0x51) != zl10353_reset_attach[2]) {
249 rc = zl10353_write(fe, zl10353_reset_attach, 252 rc = zl10353_write(fe, zl10353_reset_attach,
250 sizeof(zl10353_reset_attach)); 253 sizeof(zl10353_reset_attach));
251 if (debug_regs) 254 if (debug_regs)
diff --git a/drivers/media/dvb/frontends/zl10353.h b/drivers/media/dvb/frontends/zl10353.h
index 6aec655d8814..79a947215c4d 100644
--- a/drivers/media/dvb/frontends/zl10353.h
+++ b/drivers/media/dvb/frontends/zl10353.h
@@ -31,6 +31,9 @@ struct zl10353_config
31 31
32 /* set if no pll is connected to the secondary i2c bus */ 32 /* set if no pll is connected to the secondary i2c bus */
33 int no_tuner; 33 int no_tuner;
34
35 /* set if parallel ts output is required */
36 int parallel_ts;
34}; 37};
35 38
36#if defined(CONFIG_DVB_ZL10353) || defined(CONFIG_DVB_ZL10353_MODULE) 39#if defined(CONFIG_DVB_ZL10353) || defined(CONFIG_DVB_ZL10353_MODULE)