summaryrefslogtreecommitdiff
path: root/linux/drivers
diff options
context:
space:
mode:
authorManu Abraham <manu@linuxtv.org>2006-06-24 18:18:58 +0400
committerManu Abraham <manu@linuxtv.org>2006-06-24 18:18:58 +0400
commit6c9a1ff458d27546b0417368fe92a1442a0a609d (patch)
tree8acfa161efcf1650e22016aaafa72bade405593e /linux/drivers
parent81d3af21e291c984f3e302fe4b142eb066ad5e44 (diff)
downloadmediapointer-dvb-s2-6c9a1ff458d27546b0417368fe92a1442a0a609d.tar.gz
mediapointer-dvb-s2-6c9a1ff458d27546b0417368fe92a1442a0a609d.tar.bz2
Fix an Oops for all fe that have get_frontend_algo == NULL
Thanks to Johannes Stezenbach for pointing it out From: Manu Abraham <abraham.manu@gmail.com> Signed-off-by: Manu Abraham <manu@linuxtv.org>
Diffstat (limited to 'linux/drivers')
-rw-r--r--linux/drivers/media/dvb/dvb-core/dvb_frontend.c28
1 files changed, 15 insertions, 13 deletions
diff --git a/linux/drivers/media/dvb/dvb-core/dvb_frontend.c b/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
index ce5e60e7a..32c7f42c7 100644
--- a/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ b/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
@@ -562,21 +562,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);
}
}