[media] tda827x: improve recection with limit frequencies
tda827x is currently taking the demod IF frequency into account while seeking for the proper tuner range. This is wrong, as the demod IF frequency has nothing to do with the tuner PLL. Signed-off-by: Jose Alberto Reguero <jareguero@telefonica.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
d1520c58eb
commit
2d84ca215f
1 changed files with 6 additions and 2 deletions
|
@ -176,7 +176,7 @@ static int tda827xo_set_params(struct dvb_frontend *fe,
|
|||
if_freq = 5000000;
|
||||
break;
|
||||
}
|
||||
tuner_freq = params->frequency + if_freq;
|
||||
tuner_freq = params->frequency;
|
||||
|
||||
i = 0;
|
||||
while (tda827x_table[i].lomax < tuner_freq) {
|
||||
|
@ -185,6 +185,8 @@ static int tda827xo_set_params(struct dvb_frontend *fe,
|
|||
i++;
|
||||
}
|
||||
|
||||
tuner_freq += if_freq;
|
||||
|
||||
N = ((tuner_freq + 125000) / 250000) << (tda827x_table[i].spd + 2);
|
||||
buf[0] = 0;
|
||||
buf[1] = (N>>8) | 0x40;
|
||||
|
@ -540,7 +542,7 @@ static int tda827xa_set_params(struct dvb_frontend *fe,
|
|||
if_freq = 5000000;
|
||||
break;
|
||||
}
|
||||
tuner_freq = params->frequency + if_freq;
|
||||
tuner_freq = params->frequency;
|
||||
|
||||
if (fe->ops.info.type == FE_QAM) {
|
||||
dprintk("%s select tda827xa_dvbc\n", __func__);
|
||||
|
@ -554,6 +556,8 @@ static int tda827xa_set_params(struct dvb_frontend *fe,
|
|||
i++;
|
||||
}
|
||||
|
||||
tuner_freq += if_freq;
|
||||
|
||||
N = ((tuner_freq + 31250) / 62500) << frequency_map[i].spd;
|
||||
buf[0] = 0; // subaddress
|
||||
buf[1] = N >> 8;
|
||||
|
|
Loading…
Reference in a new issue