From 9a3cca9ddec155f7c751f0e0dbc2facb344f66d9 Mon Sep 17 00:00:00 2001 From: Michael Krufky Date: Sat, 19 Jan 2008 15:41:04 -0500 Subject: tda18271: when tuning digital, the analog demod must be tri-stated From: Michael Krufky Call analog_ops.standby during tda18271_set_params, to put the tda8295 in tri-state when tuning digital channels. Otherwise the tda8295 will interfere with the signal coming from the tda18271 into the digital demodulator. Signed-off-by: Michael Krufky --- linux/drivers/media/dvb/frontends/tda18271-fe.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'linux') diff --git a/linux/drivers/media/dvb/frontends/tda18271-fe.c b/linux/drivers/media/dvb/frontends/tda18271-fe.c index c0dbec28c..b9e857855 100644 --- a/linux/drivers/media/dvb/frontends/tda18271-fe.c +++ b/linux/drivers/media/dvb/frontends/tda18271-fe.c @@ -860,7 +860,6 @@ static int tda18271_set_params(struct dvb_frontend *fe, priv->mode = TDA18271_DIGITAL; - /* see table 22 */ if (fe->ops.info.type == FE_ATSC) { switch (params->u.vsb.modulation) { case VSB_8: @@ -908,6 +907,10 @@ static int tda18271_set_params(struct dvb_frontend *fe, return -EINVAL; } + /* When tuning digital, the analog demod must be tri-stated */ + if (fe->ops.analog_ops.standby) + fe->ops.analog_ops.standby(fe); + ret = tda18271_tune(fe, sgIF * 1000, freq, bw, std, 0); if (ret < 0) -- cgit v1.2.3