diff options
author | Michael Krufky <mkrufky@linuxtv.org> | 2008-01-19 15:41:04 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-01-25 16:05:09 -0500 |
commit | ed73683f06475531fb39e7ae9afe3011e4c5f8c1 (patch) | |
tree | 202af49a3ba7bb90942b05ba8c38d7d3c2d5f306 /drivers | |
parent | 3473e342d79be938497a31caedd3c4e8d562485f (diff) |
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 <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/media/dvb/frontends/tda18271-fe.c | 5 |
1 files changed, 4 insertions, 1 deletions
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, | |||
836 | 836 | ||
837 | priv->mode = TDA18271_DIGITAL; | 837 | priv->mode = TDA18271_DIGITAL; |
838 | 838 | ||
839 | /* see table 22 */ | ||
840 | if (fe->ops.info.type == FE_ATSC) { | 839 | if (fe->ops.info.type == FE_ATSC) { |
841 | switch (params->u.vsb.modulation) { | 840 | switch (params->u.vsb.modulation) { |
842 | case VSB_8: | 841 | case VSB_8: |
@@ -884,6 +883,10 @@ static int tda18271_set_params(struct dvb_frontend *fe, | |||
884 | return -EINVAL; | 883 | return -EINVAL; |
885 | } | 884 | } |
886 | 885 | ||
886 | /* When tuning digital, the analog demod must be tri-stated */ | ||
887 | if (fe->ops.analog_ops.standby) | ||
888 | fe->ops.analog_ops.standby(fe); | ||
889 | |||
887 | ret = tda18271_tune(fe, sgIF * 1000, freq, bw, std, 0); | 890 | ret = tda18271_tune(fe, sgIF * 1000, freq, bw, std, 0); |
888 | 891 | ||
889 | if (ret < 0) | 892 | if (ret < 0) |