Commit 4bd5d107 authored by Michael Krufky's avatar Michael Krufky Committed by Mauro Carvalho Chehab

V4L/DVB (7844): tda18271: add tda_fail macro to log error cases

Signed-off-by: default avatarMichael Krufky <mkrufky@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 10ed0bf4
...@@ -508,7 +508,7 @@ int tda18271_calc_main_pll(struct dvb_frontend *fe, u32 freq) ...@@ -508,7 +508,7 @@ int tda18271_calc_main_pll(struct dvb_frontend *fe, u32 freq)
u32 div; u32 div;
int ret = tda18271_lookup_pll_map(fe, MAIN_PLL, &freq, &pd, &d); int ret = tda18271_lookup_pll_map(fe, MAIN_PLL, &freq, &pd, &d);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
regs[R_MPD] = (0x77 & pd); regs[R_MPD] = (0x77 & pd);
...@@ -540,7 +540,7 @@ int tda18271_calc_cal_pll(struct dvb_frontend *fe, u32 freq) ...@@ -540,7 +540,7 @@ int tda18271_calc_cal_pll(struct dvb_frontend *fe, u32 freq)
u32 div; u32 div;
int ret = tda18271_lookup_pll_map(fe, CAL_PLL, &freq, &pd, &d); int ret = tda18271_lookup_pll_map(fe, CAL_PLL, &freq, &pd, &d);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
regs[R_CPD] = pd; regs[R_CPD] = pd;
...@@ -564,7 +564,7 @@ int tda18271_calc_bp_filter(struct dvb_frontend *fe, u32 *freq) ...@@ -564,7 +564,7 @@ int tda18271_calc_bp_filter(struct dvb_frontend *fe, u32 *freq)
u8 val; u8 val;
int ret = tda18271_lookup_map(fe, BP_FILTER, freq, &val); int ret = tda18271_lookup_map(fe, BP_FILTER, freq, &val);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
regs[R_EP1] &= ~0x07; /* clear bp filter bits */ regs[R_EP1] &= ~0x07; /* clear bp filter bits */
...@@ -581,7 +581,7 @@ int tda18271_calc_km(struct dvb_frontend *fe, u32 *freq) ...@@ -581,7 +581,7 @@ int tda18271_calc_km(struct dvb_frontend *fe, u32 *freq)
u8 val; u8 val;
int ret = tda18271_lookup_map(fe, RF_CAL_KMCO, freq, &val); int ret = tda18271_lookup_map(fe, RF_CAL_KMCO, freq, &val);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
regs[R_EB13] &= ~0x7c; /* clear k & m bits */ regs[R_EB13] &= ~0x7c; /* clear k & m bits */
...@@ -598,7 +598,7 @@ int tda18271_calc_rf_band(struct dvb_frontend *fe, u32 *freq) ...@@ -598,7 +598,7 @@ int tda18271_calc_rf_band(struct dvb_frontend *fe, u32 *freq)
u8 val; u8 val;
int ret = tda18271_lookup_map(fe, RF_BAND, freq, &val); int ret = tda18271_lookup_map(fe, RF_BAND, freq, &val);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
regs[R_EP2] &= ~0xe0; /* clear rf band bits */ regs[R_EP2] &= ~0xe0; /* clear rf band bits */
...@@ -615,7 +615,7 @@ int tda18271_calc_gain_taper(struct dvb_frontend *fe, u32 *freq) ...@@ -615,7 +615,7 @@ int tda18271_calc_gain_taper(struct dvb_frontend *fe, u32 *freq)
u8 val; u8 val;
int ret = tda18271_lookup_map(fe, GAIN_TAPER, freq, &val); int ret = tda18271_lookup_map(fe, GAIN_TAPER, freq, &val);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
regs[R_EP2] &= ~0x1f; /* clear gain taper bits */ regs[R_EP2] &= ~0x1f; /* clear gain taper bits */
...@@ -632,7 +632,7 @@ int tda18271_calc_ir_measure(struct dvb_frontend *fe, u32 *freq) ...@@ -632,7 +632,7 @@ int tda18271_calc_ir_measure(struct dvb_frontend *fe, u32 *freq)
u8 val; u8 val;
int ret = tda18271_lookup_map(fe, IR_MEASURE, freq, &val); int ret = tda18271_lookup_map(fe, IR_MEASURE, freq, &val);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
regs[R_EP5] &= ~0x07; regs[R_EP5] &= ~0x07;
......
...@@ -87,7 +87,7 @@ static int tda18271_channel_configuration(struct dvb_frontend *fe, ...@@ -87,7 +87,7 @@ static int tda18271_channel_configuration(struct dvb_frontend *fe,
regs[R_EB22] = 0x00; regs[R_EB22] = 0x00;
regs[R_EB22] |= map->rfagc_top; regs[R_EB22] |= map->rfagc_top;
ret = tda18271_write_regs(fe, R_EB22, 1); ret = tda18271_write_regs(fe, R_EB22, 1);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
/* --------------------------------------------------------------- */ /* --------------------------------------------------------------- */
...@@ -125,7 +125,7 @@ static int tda18271_channel_configuration(struct dvb_frontend *fe, ...@@ -125,7 +125,7 @@ static int tda18271_channel_configuration(struct dvb_frontend *fe,
regs[R_EB1] &= ~0x01; regs[R_EB1] &= ~0x01;
ret = tda18271_write_regs(fe, R_EB1, 1); ret = tda18271_write_regs(fe, R_EB1, 1);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
/* --------------------------------------------------------------- */ /* --------------------------------------------------------------- */
...@@ -147,7 +147,7 @@ static int tda18271_channel_configuration(struct dvb_frontend *fe, ...@@ -147,7 +147,7 @@ static int tda18271_channel_configuration(struct dvb_frontend *fe,
} }
ret = tda18271_write_regs(fe, R_TM, 7); ret = tda18271_write_regs(fe, R_TM, 7);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
/* force charge pump source */ /* force charge pump source */
...@@ -225,7 +225,7 @@ static int tda18271c2_rf_tracking_filters_correction(struct dvb_frontend *fe, ...@@ -225,7 +225,7 @@ static int tda18271c2_rf_tracking_filters_correction(struct dvb_frontend *fe,
/* power up */ /* power up */
ret = tda18271_set_standby_mode(fe, 0, 0, 0); ret = tda18271_set_standby_mode(fe, 0, 0, 0);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
/* read die current temperature */ /* read die current temperature */
...@@ -237,8 +237,8 @@ static int tda18271c2_rf_tracking_filters_correction(struct dvb_frontend *fe, ...@@ -237,8 +237,8 @@ static int tda18271c2_rf_tracking_filters_correction(struct dvb_frontend *fe,
rf_tab = regs[R_EB14]; rf_tab = regs[R_EB14];
i = tda18271_lookup_rf_band(fe, &freq, NULL); i = tda18271_lookup_rf_band(fe, &freq, NULL);
if (i < 0) if (tda_fail(i))
return -EINVAL; return i;
if ((0 == map[i].rf3) || (freq / 1000 < map[i].rf2)) { if ((0 == map[i].rf3) || (freq / 1000 < map[i].rf2)) {
approx = map[i].rf_a1 * approx = map[i].rf_a1 *
...@@ -273,20 +273,20 @@ static int tda18271_por(struct dvb_frontend *fe) ...@@ -273,20 +273,20 @@ static int tda18271_por(struct dvb_frontend *fe)
/* power up detector 1 */ /* power up detector 1 */
regs[R_EB12] &= ~0x20; regs[R_EB12] &= ~0x20;
ret = tda18271_write_regs(fe, R_EB12, 1); ret = tda18271_write_regs(fe, R_EB12, 1);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
regs[R_EB18] &= ~0x80; /* turn agc1 loop on */ regs[R_EB18] &= ~0x80; /* turn agc1 loop on */
regs[R_EB18] &= ~0x03; /* set agc1_gain to 6 dB */ regs[R_EB18] &= ~0x03; /* set agc1_gain to 6 dB */
ret = tda18271_write_regs(fe, R_EB18, 1); ret = tda18271_write_regs(fe, R_EB18, 1);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
regs[R_EB21] |= 0x03; /* set agc2_gain to -6 dB */ regs[R_EB21] |= 0x03; /* set agc2_gain to -6 dB */
/* POR mode */ /* POR mode */
ret = tda18271_set_standby_mode(fe, 1, 0, 0); ret = tda18271_set_standby_mode(fe, 1, 0, 0);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
/* disable 1.5 MHz low pass filter */ /* disable 1.5 MHz low pass filter */
...@@ -438,7 +438,7 @@ static int tda18271_powerscan(struct dvb_frontend *fe, ...@@ -438,7 +438,7 @@ static int tda18271_powerscan(struct dvb_frontend *fe,
/* read power detection info, stored in EB10 */ /* read power detection info, stored in EB10 */
ret = tda18271_read_extended(fe); ret = tda18271_read_extended(fe);
if (ret < 0) if (tda_fail(ret))
return ret; return ret;
/* algorithm initialization */ /* algorithm initialization */
...@@ -466,7 +466,7 @@ static int tda18271_powerscan(struct dvb_frontend *fe, ...@@ -466,7 +466,7 @@ static int tda18271_powerscan(struct dvb_frontend *fe,
/* read power detection info, stored in EB10 */ /* read power detection info, stored in EB10 */
ret = tda18271_read_extended(fe); ret = tda18271_read_extended(fe);
if (ret < 0) if (tda_fail(ret))
return ret; return ret;
count += 200; count += 200;
...@@ -511,12 +511,12 @@ static int tda18271_powerscan_init(struct dvb_frontend *fe) ...@@ -511,12 +511,12 @@ static int tda18271_powerscan_init(struct dvb_frontend *fe)
regs[R_EP4] &= ~0x1c; /* clear if level bits */ regs[R_EP4] &= ~0x1c; /* clear if level bits */
ret = tda18271_write_regs(fe, R_EP3, 2); ret = tda18271_write_regs(fe, R_EP3, 2);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
regs[R_EB18] &= ~0x03; /* set agc1_gain to 6 dB */ regs[R_EB18] &= ~0x03; /* set agc1_gain to 6 dB */
ret = tda18271_write_regs(fe, R_EB18, 1); ret = tda18271_write_regs(fe, R_EB18, 1);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
regs[R_EB21] &= ~0x03; /* set agc2_gain to -15 dB */ regs[R_EB21] &= ~0x03; /* set agc2_gain to -15 dB */
...@@ -546,7 +546,7 @@ static int tda18271_rf_tracking_filters_init(struct dvb_frontend *fe, u32 freq) ...@@ -546,7 +546,7 @@ static int tda18271_rf_tracking_filters_init(struct dvb_frontend *fe, u32 freq)
i = tda18271_lookup_rf_band(fe, &freq, NULL); i = tda18271_lookup_rf_band(fe, &freq, NULL);
if (i < 0) if (tda_fail(i))
return i; return i;
rf_default[RF1] = 1000 * map[i].rf1_def; rf_default[RF1] = 1000 * map[i].rf1_def;
...@@ -560,7 +560,7 @@ static int tda18271_rf_tracking_filters_init(struct dvb_frontend *fe, u32 freq) ...@@ -560,7 +560,7 @@ static int tda18271_rf_tracking_filters_init(struct dvb_frontend *fe, u32 freq)
/* look for optimized calibration frequency */ /* look for optimized calibration frequency */
bcal = tda18271_powerscan(fe, &rf_default[rf], &rf_freq[rf]); bcal = tda18271_powerscan(fe, &rf_default[rf], &rf_freq[rf]);
if (bcal < 0) if (tda_fail(bcal))
return bcal; return bcal;
tda18271_calc_rf_cal(fe, &rf_freq[rf]); tda18271_calc_rf_cal(fe, &rf_freq[rf]);
...@@ -610,7 +610,7 @@ static int tda18271_calc_rf_filter_curve(struct dvb_frontend *fe) ...@@ -610,7 +610,7 @@ static int tda18271_calc_rf_filter_curve(struct dvb_frontend *fe)
msleep(200); msleep(200);
ret = tda18271_powerscan_init(fe); ret = tda18271_powerscan_init(fe);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
/* rf band calibration */ /* rf band calibration */
...@@ -618,7 +618,7 @@ static int tda18271_calc_rf_filter_curve(struct dvb_frontend *fe) ...@@ -618,7 +618,7 @@ static int tda18271_calc_rf_filter_curve(struct dvb_frontend *fe)
ret = ret =
tda18271_rf_tracking_filters_init(fe, 1000 * tda18271_rf_tracking_filters_init(fe, 1000 *
priv->rf_cal_state[i].rfmax); priv->rf_cal_state[i].rfmax);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
} }
...@@ -643,11 +643,11 @@ static int tda18271c2_rf_cal_init(struct dvb_frontend *fe) ...@@ -643,11 +643,11 @@ static int tda18271c2_rf_cal_init(struct dvb_frontend *fe)
return 0; return 0;
ret = tda18271_calc_rf_filter_curve(fe); ret = tda18271_calc_rf_filter_curve(fe);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
ret = tda18271_por(fe); ret = tda18271_por(fe);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
tda_info("tda18271: RF tracking filter calibration complete\n"); tda_info("tda18271: RF tracking filter calibration complete\n");
...@@ -715,7 +715,7 @@ static int tda18271c1_rf_tracking_filter_calibration(struct dvb_frontend *fe, ...@@ -715,7 +715,7 @@ static int tda18271c1_rf_tracking_filter_calibration(struct dvb_frontend *fe,
tda18271_calc_main_pll(fe, N); tda18271_calc_main_pll(fe, N);
ret = tda18271_write_regs(fe, R_EP3, 11); ret = tda18271_write_regs(fe, R_EP3, 11);
if (ret < 0) if (tda_fail(ret))
return ret; return ret;
msleep(5); /* RF tracking filter calibration initialization */ msleep(5); /* RF tracking filter calibration initialization */
...@@ -768,7 +768,7 @@ static int tda18271_ir_cal_init(struct dvb_frontend *fe) ...@@ -768,7 +768,7 @@ static int tda18271_ir_cal_init(struct dvb_frontend *fe)
int ret; int ret;
ret = tda18271_read_regs(fe); ret = tda18271_read_regs(fe);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
/* test IR_CAL_OK to see if we need init */ /* test IR_CAL_OK to see if we need init */
...@@ -787,12 +787,12 @@ static int tda18271_init(struct dvb_frontend *fe) ...@@ -787,12 +787,12 @@ static int tda18271_init(struct dvb_frontend *fe)
/* power up */ /* power up */
ret = tda18271_set_standby_mode(fe, 0, 0, 0); ret = tda18271_set_standby_mode(fe, 0, 0, 0);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
/* initialization */ /* initialization */
ret = tda18271_ir_cal_init(fe); ret = tda18271_ir_cal_init(fe);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
if (priv->id == TDA18271HDC2) if (priv->id == TDA18271HDC2)
...@@ -813,7 +813,7 @@ static int tda18271_tune(struct dvb_frontend *fe, ...@@ -813,7 +813,7 @@ static int tda18271_tune(struct dvb_frontend *fe,
freq, map->if_freq, bw, map->agc_mode, map->std); freq, map->if_freq, bw, map->agc_mode, map->std);
ret = tda18271_init(fe); ret = tda18271_init(fe);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
mutex_lock(&priv->lock); mutex_lock(&priv->lock);
...@@ -894,7 +894,7 @@ static int tda18271_set_params(struct dvb_frontend *fe, ...@@ -894,7 +894,7 @@ static int tda18271_set_params(struct dvb_frontend *fe,
ret = tda18271_tune(fe, map, freq, bw); ret = tda18271_tune(fe, map, freq, bw);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
priv->frequency = freq; priv->frequency = freq;
...@@ -950,7 +950,7 @@ static int tda18271_set_analog_params(struct dvb_frontend *fe, ...@@ -950,7 +950,7 @@ static int tda18271_set_analog_params(struct dvb_frontend *fe,
ret = tda18271_tune(fe, map, freq, 0); ret = tda18271_tune(fe, map, freq, 0);
if (ret < 0) if (tda_fail(ret))
goto fail; goto fail;
priv->frequency = freq; priv->frequency = freq;
...@@ -1153,10 +1153,10 @@ struct dvb_frontend *tda18271_attach(struct dvb_frontend *fe, u8 addr, ...@@ -1153,10 +1153,10 @@ struct dvb_frontend *tda18271_attach(struct dvb_frontend *fe, u8 addr,
if (cfg) if (cfg)
priv->small_i2c = cfg->small_i2c; priv->small_i2c = cfg->small_i2c;
if (tda18271_get_id(fe) < 0) if (tda_fail(tda18271_get_id(fe)))
goto fail; goto fail;
if (tda18271_assign_map_layout(fe) < 0) if (tda_fail(tda18271_assign_map_layout(fe)))
goto fail; goto fail;
mutex_lock(&priv->lock); mutex_lock(&priv->lock);
......
...@@ -153,6 +153,15 @@ extern int tda18271_debug; ...@@ -153,6 +153,15 @@ extern int tda18271_debug;
#define tda_reg(fmt, arg...) dprintk(KERN_DEBUG, DBG_REG, fmt, ##arg) #define tda_reg(fmt, arg...) dprintk(KERN_DEBUG, DBG_REG, fmt, ##arg)
#define tda_cal(fmt, arg...) dprintk(KERN_DEBUG, DBG_CAL, fmt, ##arg) #define tda_cal(fmt, arg...) dprintk(KERN_DEBUG, DBG_CAL, fmt, ##arg)
#define tda_fail(ret) \
({ \
int __ret; \
__ret = (ret < 0); \
if (__ret) \
tda_printk(KERN_ERR, "error %d on line %d\n", ret, __LINE__);\
__ret; \
})
/*---------------------------------------------------------------------*/ /*---------------------------------------------------------------------*/
enum tda18271_map_type { enum tda18271_map_type {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment