[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:
Родитель
d1520c58eb
Коммит
2d84ca215f
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче