diff options
author | Manu Abraham <abraham.manu@gmail.com> | 2006-06-24 10:18:58 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-06-26 08:20:49 -0400 |
commit | d772bd03bc38794c84811be9d2537c225e08c9b8 (patch) | |
tree | b1f763fbc8937bc980edf8cdae278133c14fe364 /drivers/media/dvb | |
parent | fcc18e83e1f6fd9fa6b333735bf0fcd530655511 (diff) |
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>
Diffstat (limited to 'drivers/media/dvb')
-rw-r--r-- | drivers/media/dvb/dvb-core/dvb_frontend.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c index 3152a54a2539..9be41e4c2fda 100644 --- a/drivers/media/dvb/dvb-core/dvb_frontend.c +++ b/drivers/media/dvb/dvb-core/dvb_frontend.c | |||
@@ -556,21 +556,23 @@ static int dvb_frontend_thread(void *data) | |||
556 | } | 556 | } |
557 | 557 | ||
558 | /* do an iteration of the tuning loop */ | 558 | /* do an iteration of the tuning loop */ |
559 | if (fe->ops.get_frontend_algo(fe) == FE_ALGO_HW) { | 559 | if (fe->ops.get_frontend_algo) { |
560 | /* have we been asked to retune? */ | 560 | if (fe->ops.get_frontend_algo(fe) == FE_ALGO_HW) { |
561 | params = NULL; | 561 | /* have we been asked to retune? */ |
562 | if (fepriv->state & FESTATE_RETUNE) { | 562 | params = NULL; |
563 | params = &fepriv->parameters; | 563 | if (fepriv->state & FESTATE_RETUNE) { |
564 | fepriv->state = FESTATE_TUNED; | 564 | params = &fepriv->parameters; |
565 | } | 565 | fepriv->state = FESTATE_TUNED; |
566 | } | ||
566 | 567 | ||
567 | fe->ops.tune(fe, params, fepriv->tune_mode_flags, &fepriv->delay, &s); | 568 | fe->ops.tune(fe, params, fepriv->tune_mode_flags, &fepriv->delay, &s); |
568 | if (s != fepriv->status) { | 569 | if (s != fepriv->status) { |
569 | dvb_frontend_add_event(fe, s); | 570 | dvb_frontend_add_event(fe, s); |
570 | fepriv->status = s; | 571 | fepriv->status = s; |
572 | } | ||
573 | } else { | ||
574 | dvb_frontend_swzigzag(fe); | ||
571 | } | 575 | } |
572 | } else { | ||
573 | dvb_frontend_swzigzag(fe); | ||
574 | } | 576 | } |
575 | } | 577 | } |
576 | 578 | ||