media: m88rs2000: handle the case where tuner doesn't have get_frequency
If the tuner doesn't have get_frequency() callback, the current code will place a random value as the frequency offset. That doesn't seem right! The better is to just assume that, on such case, the tuner was able to set the exact frequency that was requested. Fixes a smatch warning: drivers/media/dvb-frontends/m88rs2000.c:639 m88rs2000_set_frontend() error: uninitialized symbol 'tuner_freq'. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
Родитель
e639c86955
Коммит
74a6799ca9
|
@ -630,13 +630,16 @@ static int m88rs2000_set_frontend(struct dvb_frontend *fe)
|
|||
if (ret < 0)
|
||||
return -ENODEV;
|
||||
|
||||
if (fe->ops.tuner_ops.get_frequency)
|
||||
if (fe->ops.tuner_ops.get_frequency) {
|
||||
ret = fe->ops.tuner_ops.get_frequency(fe, &tuner_freq);
|
||||
|
||||
if (ret < 0)
|
||||
return -ENODEV;
|
||||
if (ret < 0)
|
||||
return -ENODEV;
|
||||
|
||||
offset = (s16)((s32)tuner_freq - c->frequency);
|
||||
offset = (s16)((s32)tuner_freq - c->frequency);
|
||||
} else {
|
||||
offset = 0;
|
||||
}
|
||||
|
||||
/* default mclk value 96.4285 * 2 * 1000 = 192857 */
|
||||
if (((c->frequency % 192857) >= (192857 - 3000)) ||
|
||||
|
|
Загрузка…
Ссылка в новой задаче