V4L/DVB (4211): Fix an Oops for all fe that have get_frontend_algo == NULL

Thanks to Johannes Stezenbach for pointing it out

Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
Manu Abraham 2006-06-24 11:18:58 -03:00 committed by Mauro Carvalho Chehab
parent fcc18e83e1
commit d772bd03bc
1 changed files with 15 additions and 13 deletions

View File

@ -556,21 +556,23 @@ static int dvb_frontend_thread(void *data)
}
/* do an iteration of the tuning loop */
if (fe->ops.get_frontend_algo(fe) == FE_ALGO_HW) {
/* have we been asked to retune? */
params = NULL;
if (fepriv->state & FESTATE_RETUNE) {
params = &fepriv->parameters;
fepriv->state = FESTATE_TUNED;
}
if (fe->ops.get_frontend_algo) {
if (fe->ops.get_frontend_algo(fe) == FE_ALGO_HW) {
/* have we been asked to retune? */
params = NULL;
if (fepriv->state & FESTATE_RETUNE) {
params = &fepriv->parameters;
fepriv->state = FESTATE_TUNED;
}
fe->ops.tune(fe, params, fepriv->tune_mode_flags, &fepriv->delay, &s);
if (s != fepriv->status) {
dvb_frontend_add_event(fe, s);
fepriv->status = s;
fe->ops.tune(fe, params, fepriv->tune_mode_flags, &fepriv->delay, &s);
if (s != fepriv->status) {
dvb_frontend_add_event(fe, s);
fepriv->status = s;
}
} else {
dvb_frontend_swzigzag(fe);
}
} else {
dvb_frontend_swzigzag(fe);
}
}