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>
This commit is contained in:
parent
3473e342d7
commit
ed73683f06
|
@ -836,7 +836,6 @@ static int tda18271_set_params(struct dvb_frontend *fe,
|
||||||
|
|
||||||
priv->mode = TDA18271_DIGITAL;
|
priv->mode = TDA18271_DIGITAL;
|
||||||
|
|
||||||
/* see table 22 */
|
|
||||||
if (fe->ops.info.type == FE_ATSC) {
|
if (fe->ops.info.type == FE_ATSC) {
|
||||||
switch (params->u.vsb.modulation) {
|
switch (params->u.vsb.modulation) {
|
||||||
case VSB_8:
|
case VSB_8:
|
||||||
|
@ -884,6 +883,10 @@ static int tda18271_set_params(struct dvb_frontend *fe,
|
||||||
return -EINVAL;
|
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);
|
ret = tda18271_tune(fe, sgIF * 1000, freq, bw, std, 0);
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
|
|
Loading…
Reference in a new issue