summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@linuxtv.org>2008-05-04 22:54:23 +0200
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-05-14 07:54:04 +0200
commitc151c32fd7d8f5ca7dcd35430f2e625181c48d66 (patch)
tree8f2fa8ff952c83b7d2fb09b4ecfe66b519de7cd4
parentV4L/DVB (7838): tda18271: fix error handling in tda18271c2_rf_cal_init path (diff)
downloadlinux-c151c32fd7d8f5ca7dcd35430f2e625181c48d66.tar.xz
linux-c151c32fd7d8f5ca7dcd35430f2e625181c48d66.zip
V4L/DVB (7839): tda18271: abort rf band calibration loop on errors
Abort rf band calibration loop for the TDA18271HD/C2 if an error is detected. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--drivers/media/common/tuners/tda18271-fe.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/media/common/tuners/tda18271-fe.c b/drivers/media/common/tuners/tda18271-fe.c
index d4fdcd4a0e06..3f7ca45bba9b 100644
--- a/drivers/media/common/tuners/tda18271-fe.c
+++ b/drivers/media/common/tuners/tda18271-fe.c
@@ -605,9 +605,13 @@ static int tda18271_calc_rf_filter_curve(struct dvb_frontend *fe)
goto fail;
/* rf band calibration */
- for (i = 0; priv->rf_cal_state[i].rfmax != 0; i++)
+ for (i = 0; priv->rf_cal_state[i].rfmax != 0; i++) {
+ ret =
tda18271_rf_tracking_filters_init(fe, 1000 *
priv->rf_cal_state[i].rfmax);
+ if (ret < 0)
+ goto fail;
+ }
priv->tm_rfcal = tda18271_read_thermometer(fe);
fail:
@@ -640,7 +644,10 @@ static int tda18271c2_rf_cal_init(struct dvb_frontend *fe)
tda_info("tda18271: RF tracking filter calibration complete\n");
priv->cal_initialized = true;
+ goto end;
fail:
+ tda_info("tda18271: RF tracking filter calibration failed!\n");
+end:
return ret;
}