From: Michael Krufky Date: Sat, 19 Jan 2008 20:41:04 +0000 (-0300) Subject: V4L/DVB (7052): tda18271: when tuning digital, the analog demod must be tri-stated X-Git-Tag: v2.6.25-rc1~1235^2~22 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=ed73683f06475531fb39e7ae9afe3011e4c5f8c1;p=karo-tx-linux.git V4L/DVB (7052): tda18271: when tuning digital, the analog demod must be tri-stated 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 Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/dvb/frontends/tda18271-fe.c b/drivers/media/dvb/frontends/tda18271-fe.c index dd3657e459b1..dfe72aaec380 100644 --- a/drivers/media/dvb/frontends/tda18271-fe.c +++ b/drivers/media/dvb/frontends/tda18271-fe.c @@ -836,7 +836,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: @@ -884,6 +883,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)