diff options
author | Chris Pascoe <c.pascoe@itee.uq.edu.au> | 2006-08-10 16:17:16 +1000 |
---|---|---|
committer | Chris Pascoe <c.pascoe@itee.uq.edu.au> | 2006-08-10 16:17:16 +1000 |
commit | 8dc45646a3e2d0c595f491a0772da77893dafb6a (patch) | |
tree | 7af3bab6b9e9e25e3e200a6ca6b44d212e7bf859 | |
parent | fedb78d416ebfda50eb774e52c78ddb3830ac234 (diff) | |
download | mediapointer-dvb-s2-8dc45646a3e2d0c595f491a0772da77893dafb6a.tar.gz mediapointer-dvb-s2-8dc45646a3e2d0c595f491a0772da77893dafb6a.tar.bz2 |
Fix "no data from ZL10353 based USB tuner" problem
From: Chris Pascoe <c.pascoe@itee.uq.edu.au>
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>
-rw-r--r-- | linux/drivers/media/dvb/dvb-usb/cxusb.c | 1 | ||||
-rw-r--r-- | linux/drivers/media/dvb/frontends/zl10353.c | 5 | ||||
-rw-r--r-- | linux/drivers/media/dvb/frontends/zl10353.h | 3 |
3 files changed, 8 insertions, 1 deletions
diff --git a/linux/drivers/media/dvb/dvb-usb/cxusb.c b/linux/drivers/media/dvb/dvb-usb/cxusb.c index addc51391..3ec6232bc 100644 --- a/linux/drivers/media/dvb/dvb-usb/cxusb.c +++ b/linux/drivers/media/dvb/dvb-usb/cxusb.c @@ -349,6 +349,7 @@ static struct mt352_config cxusb_dee1601_config = { static struct zl10353_config cxusb_zl10353_dee1601_config = { .demod_address = 0x0f, + .parallel_ts = 1, }; static struct mt352_config cxusb_mt352_config = { diff --git a/linux/drivers/media/dvb/frontends/zl10353.c b/linux/drivers/media/dvb/frontends/zl10353.c index 1d22d53dc..d8313b9d7 100644 --- a/linux/drivers/media/dvb/frontends/zl10353.c +++ b/linux/drivers/media/dvb/frontends/zl10353.c @@ -251,9 +251,12 @@ static int zl10353_init(struct dvb_frontend *fe) if (debug_regs) zl10353_dump_regs(fe); #endif + if (state->config.parallel_ts) + zl10353_reset_attach[2] &= ~0x20; /* Do a "hard" reset if not already done */ - if (zl10353_read_register(state, 0x50) != 0x03) { + if (zl10353_read_register(state, 0x50) != zl10353_reset_attach[1] || + zl10353_read_register(state, 0x51) != zl10353_reset_attach[2]) { rc = zl10353_write(fe, zl10353_reset_attach, sizeof(zl10353_reset_attach)); #if 1 diff --git a/linux/drivers/media/dvb/frontends/zl10353.h b/linux/drivers/media/dvb/frontends/zl10353.h index 6aec655d8..79a947215 100644 --- a/linux/drivers/media/dvb/frontends/zl10353.h +++ b/linux/drivers/media/dvb/frontends/zl10353.h @@ -31,6 +31,9 @@ struct zl10353_config /* set if no pll is connected to the secondary i2c bus */ int no_tuner; + + /* set if parallel ts output is required */ + int parallel_ts; }; #if defined(CONFIG_DVB_ZL10353) || defined(CONFIG_DVB_ZL10353_MODULE) |