diff options
Diffstat (limited to 'drivers/media/common')
-rw-r--r-- | drivers/media/common/tuners/tda18271-common.c | 14 | ||||
-rw-r--r-- | drivers/media/common/tuners/tda18271-fe.c | 56 | ||||
-rw-r--r-- | drivers/media/common/tuners/tda18271-priv.h | 9 |
3 files changed, 44 insertions, 35 deletions
diff --git a/drivers/media/common/tuners/tda18271-common.c b/drivers/media/common/tuners/tda18271-common.c index d6938fc2c4c6..42b5f5d4bfe6 100644 --- a/drivers/media/common/tuners/tda18271-common.c +++ b/drivers/media/common/tuners/tda18271-common.c | |||
@@ -508,7 +508,7 @@ int tda18271_calc_main_pll(struct dvb_frontend *fe, u32 freq) | |||
508 | u32 div; | 508 | u32 div; |
509 | 509 | ||
510 | int ret = tda18271_lookup_pll_map(fe, MAIN_PLL, &freq, &pd, &d); | 510 | int ret = tda18271_lookup_pll_map(fe, MAIN_PLL, &freq, &pd, &d); |
511 | if (ret < 0) | 511 | if (tda_fail(ret)) |
512 | goto fail; | 512 | goto fail; |
513 | 513 | ||
514 | regs[R_MPD] = (0x77 & pd); | 514 | regs[R_MPD] = (0x77 & pd); |
@@ -540,7 +540,7 @@ int tda18271_calc_cal_pll(struct dvb_frontend *fe, u32 freq) | |||
540 | u32 div; | 540 | u32 div; |
541 | 541 | ||
542 | int ret = tda18271_lookup_pll_map(fe, CAL_PLL, &freq, &pd, &d); | 542 | int ret = tda18271_lookup_pll_map(fe, CAL_PLL, &freq, &pd, &d); |
543 | if (ret < 0) | 543 | if (tda_fail(ret)) |
544 | goto fail; | 544 | goto fail; |
545 | 545 | ||
546 | regs[R_CPD] = pd; | 546 | regs[R_CPD] = pd; |
@@ -564,7 +564,7 @@ int tda18271_calc_bp_filter(struct dvb_frontend *fe, u32 *freq) | |||
564 | u8 val; | 564 | u8 val; |
565 | 565 | ||
566 | int ret = tda18271_lookup_map(fe, BP_FILTER, freq, &val); | 566 | int ret = tda18271_lookup_map(fe, BP_FILTER, freq, &val); |
567 | if (ret < 0) | 567 | if (tda_fail(ret)) |
568 | goto fail; | 568 | goto fail; |
569 | 569 | ||
570 | regs[R_EP1] &= ~0x07; /* clear bp filter bits */ | 570 | regs[R_EP1] &= ~0x07; /* clear bp filter bits */ |
@@ -581,7 +581,7 @@ int tda18271_calc_km(struct dvb_frontend *fe, u32 *freq) | |||
581 | u8 val; | 581 | u8 val; |
582 | 582 | ||
583 | int ret = tda18271_lookup_map(fe, RF_CAL_KMCO, freq, &val); | 583 | int ret = tda18271_lookup_map(fe, RF_CAL_KMCO, freq, &val); |
584 | if (ret < 0) | 584 | if (tda_fail(ret)) |
585 | goto fail; | 585 | goto fail; |
586 | 586 | ||
587 | regs[R_EB13] &= ~0x7c; /* clear k & m bits */ | 587 | regs[R_EB13] &= ~0x7c; /* clear k & m bits */ |
@@ -598,7 +598,7 @@ int tda18271_calc_rf_band(struct dvb_frontend *fe, u32 *freq) | |||
598 | u8 val; | 598 | u8 val; |
599 | 599 | ||
600 | int ret = tda18271_lookup_map(fe, RF_BAND, freq, &val); | 600 | int ret = tda18271_lookup_map(fe, RF_BAND, freq, &val); |
601 | if (ret < 0) | 601 | if (tda_fail(ret)) |
602 | goto fail; | 602 | goto fail; |
603 | 603 | ||
604 | regs[R_EP2] &= ~0xe0; /* clear rf band bits */ | 604 | regs[R_EP2] &= ~0xe0; /* clear rf band bits */ |
@@ -615,7 +615,7 @@ int tda18271_calc_gain_taper(struct dvb_frontend *fe, u32 *freq) | |||
615 | u8 val; | 615 | u8 val; |
616 | 616 | ||
617 | int ret = tda18271_lookup_map(fe, GAIN_TAPER, freq, &val); | 617 | int ret = tda18271_lookup_map(fe, GAIN_TAPER, freq, &val); |
618 | if (ret < 0) | 618 | if (tda_fail(ret)) |
619 | goto fail; | 619 | goto fail; |
620 | 620 | ||
621 | regs[R_EP2] &= ~0x1f; /* clear gain taper bits */ | 621 | regs[R_EP2] &= ~0x1f; /* clear gain taper bits */ |
@@ -632,7 +632,7 @@ int tda18271_calc_ir_measure(struct dvb_frontend *fe, u32 *freq) | |||
632 | u8 val; | 632 | u8 val; |
633 | 633 | ||
634 | int ret = tda18271_lookup_map(fe, IR_MEASURE, freq, &val); | 634 | int ret = tda18271_lookup_map(fe, IR_MEASURE, freq, &val); |
635 | if (ret < 0) | 635 | if (tda_fail(ret)) |
636 | goto fail; | 636 | goto fail; |
637 | 637 | ||
638 | regs[R_EP5] &= ~0x07; | 638 | regs[R_EP5] &= ~0x07; |
diff --git a/drivers/media/common/tuners/tda18271-fe.c b/drivers/media/common/tuners/tda18271-fe.c index 13d651c987a3..89c01fb1f859 100644 --- a/drivers/media/common/tuners/tda18271-fe.c +++ b/drivers/media/common/tuners/tda18271-fe.c | |||
@@ -87,7 +87,7 @@ static int tda18271_channel_configuration(struct dvb_frontend *fe, | |||
87 | regs[R_EB22] = 0x00; | 87 | regs[R_EB22] = 0x00; |
88 | regs[R_EB22] |= map->rfagc_top; | 88 | regs[R_EB22] |= map->rfagc_top; |
89 | ret = tda18271_write_regs(fe, R_EB22, 1); | 89 | ret = tda18271_write_regs(fe, R_EB22, 1); |
90 | if (ret < 0) | 90 | if (tda_fail(ret)) |
91 | goto fail; | 91 | goto fail; |
92 | 92 | ||
93 | /* --------------------------------------------------------------- */ | 93 | /* --------------------------------------------------------------- */ |
@@ -125,7 +125,7 @@ static int tda18271_channel_configuration(struct dvb_frontend *fe, | |||
125 | regs[R_EB1] &= ~0x01; | 125 | regs[R_EB1] &= ~0x01; |
126 | 126 | ||
127 | ret = tda18271_write_regs(fe, R_EB1, 1); | 127 | ret = tda18271_write_regs(fe, R_EB1, 1); |
128 | if (ret < 0) | 128 | if (tda_fail(ret)) |
129 | goto fail; | 129 | goto fail; |
130 | 130 | ||
131 | /* --------------------------------------------------------------- */ | 131 | /* --------------------------------------------------------------- */ |
@@ -147,7 +147,7 @@ static int tda18271_channel_configuration(struct dvb_frontend *fe, | |||
147 | } | 147 | } |
148 | 148 | ||
149 | ret = tda18271_write_regs(fe, R_TM, 7); | 149 | ret = tda18271_write_regs(fe, R_TM, 7); |
150 | if (ret < 0) | 150 | if (tda_fail(ret)) |
151 | goto fail; | 151 | goto fail; |
152 | 152 | ||
153 | /* force charge pump source */ | 153 | /* force charge pump source */ |
@@ -225,7 +225,7 @@ static int tda18271c2_rf_tracking_filters_correction(struct dvb_frontend *fe, | |||
225 | 225 | ||
226 | /* power up */ | 226 | /* power up */ |
227 | ret = tda18271_set_standby_mode(fe, 0, 0, 0); | 227 | ret = tda18271_set_standby_mode(fe, 0, 0, 0); |
228 | if (ret < 0) | 228 | if (tda_fail(ret)) |
229 | goto fail; | 229 | goto fail; |
230 | 230 | ||
231 | /* read die current temperature */ | 231 | /* read die current temperature */ |
@@ -237,8 +237,8 @@ static int tda18271c2_rf_tracking_filters_correction(struct dvb_frontend *fe, | |||
237 | rf_tab = regs[R_EB14]; | 237 | rf_tab = regs[R_EB14]; |
238 | 238 | ||
239 | i = tda18271_lookup_rf_band(fe, &freq, NULL); | 239 | i = tda18271_lookup_rf_band(fe, &freq, NULL); |
240 | if (i < 0) | 240 | if (tda_fail(i)) |
241 | return -EINVAL; | 241 | return i; |
242 | 242 | ||
243 | if ((0 == map[i].rf3) || (freq / 1000 < map[i].rf2)) { | 243 | if ((0 == map[i].rf3) || (freq / 1000 < map[i].rf2)) { |
244 | approx = map[i].rf_a1 * | 244 | approx = map[i].rf_a1 * |
@@ -273,20 +273,20 @@ static int tda18271_por(struct dvb_frontend *fe) | |||
273 | /* power up detector 1 */ | 273 | /* power up detector 1 */ |
274 | regs[R_EB12] &= ~0x20; | 274 | regs[R_EB12] &= ~0x20; |
275 | ret = tda18271_write_regs(fe, R_EB12, 1); | 275 | ret = tda18271_write_regs(fe, R_EB12, 1); |
276 | if (ret < 0) | 276 | if (tda_fail(ret)) |
277 | goto fail; | 277 | goto fail; |
278 | 278 | ||
279 | regs[R_EB18] &= ~0x80; /* turn agc1 loop on */ | 279 | regs[R_EB18] &= ~0x80; /* turn agc1 loop on */ |
280 | regs[R_EB18] &= ~0x03; /* set agc1_gain to 6 dB */ | 280 | regs[R_EB18] &= ~0x03; /* set agc1_gain to 6 dB */ |
281 | ret = tda18271_write_regs(fe, R_EB18, 1); | 281 | ret = tda18271_write_regs(fe, R_EB18, 1); |
282 | if (ret < 0) | 282 | if (tda_fail(ret)) |
283 | goto fail; | 283 | goto fail; |
284 | 284 | ||
285 | regs[R_EB21] |= 0x03; /* set agc2_gain to -6 dB */ | 285 | regs[R_EB21] |= 0x03; /* set agc2_gain to -6 dB */ |
286 | 286 | ||
287 | /* POR mode */ | 287 | /* POR mode */ |
288 | ret = tda18271_set_standby_mode(fe, 1, 0, 0); | 288 | ret = tda18271_set_standby_mode(fe, 1, 0, 0); |
289 | if (ret < 0) | 289 | if (tda_fail(ret)) |
290 | goto fail; | 290 | goto fail; |
291 | 291 | ||
292 | /* disable 1.5 MHz low pass filter */ | 292 | /* disable 1.5 MHz low pass filter */ |
@@ -438,7 +438,7 @@ static int tda18271_powerscan(struct dvb_frontend *fe, | |||
438 | 438 | ||
439 | /* read power detection info, stored in EB10 */ | 439 | /* read power detection info, stored in EB10 */ |
440 | ret = tda18271_read_extended(fe); | 440 | ret = tda18271_read_extended(fe); |
441 | if (ret < 0) | 441 | if (tda_fail(ret)) |
442 | return ret; | 442 | return ret; |
443 | 443 | ||
444 | /* algorithm initialization */ | 444 | /* algorithm initialization */ |
@@ -466,7 +466,7 @@ static int tda18271_powerscan(struct dvb_frontend *fe, | |||
466 | 466 | ||
467 | /* read power detection info, stored in EB10 */ | 467 | /* read power detection info, stored in EB10 */ |
468 | ret = tda18271_read_extended(fe); | 468 | ret = tda18271_read_extended(fe); |
469 | if (ret < 0) | 469 | if (tda_fail(ret)) |
470 | return ret; | 470 | return ret; |
471 | 471 | ||
472 | count += 200; | 472 | count += 200; |
@@ -511,12 +511,12 @@ static int tda18271_powerscan_init(struct dvb_frontend *fe) | |||
511 | regs[R_EP4] &= ~0x1c; /* clear if level bits */ | 511 | regs[R_EP4] &= ~0x1c; /* clear if level bits */ |
512 | 512 | ||
513 | ret = tda18271_write_regs(fe, R_EP3, 2); | 513 | ret = tda18271_write_regs(fe, R_EP3, 2); |
514 | if (ret < 0) | 514 | if (tda_fail(ret)) |
515 | goto fail; | 515 | goto fail; |
516 | 516 | ||
517 | regs[R_EB18] &= ~0x03; /* set agc1_gain to 6 dB */ | 517 | regs[R_EB18] &= ~0x03; /* set agc1_gain to 6 dB */ |
518 | ret = tda18271_write_regs(fe, R_EB18, 1); | 518 | ret = tda18271_write_regs(fe, R_EB18, 1); |
519 | if (ret < 0) | 519 | if (tda_fail(ret)) |
520 | goto fail; | 520 | goto fail; |
521 | 521 | ||
522 | regs[R_EB21] &= ~0x03; /* set agc2_gain to -15 dB */ | 522 | 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 | 546 | ||
547 | i = tda18271_lookup_rf_band(fe, &freq, NULL); | 547 | i = tda18271_lookup_rf_band(fe, &freq, NULL); |
548 | 548 | ||
549 | if (i < 0) | 549 | if (tda_fail(i)) |
550 | return i; | 550 | return i; |
551 | 551 | ||
552 | rf_default[RF1] = 1000 * map[i].rf1_def; | 552 | 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 | 560 | ||
561 | /* look for optimized calibration frequency */ | 561 | /* look for optimized calibration frequency */ |
562 | bcal = tda18271_powerscan(fe, &rf_default[rf], &rf_freq[rf]); | 562 | bcal = tda18271_powerscan(fe, &rf_default[rf], &rf_freq[rf]); |
563 | if (bcal < 0) | 563 | if (tda_fail(bcal)) |
564 | return bcal; | 564 | return bcal; |
565 | 565 | ||
566 | tda18271_calc_rf_cal(fe, &rf_freq[rf]); | 566 | tda18271_calc_rf_cal(fe, &rf_freq[rf]); |
@@ -610,7 +610,7 @@ static int tda18271_calc_rf_filter_curve(struct dvb_frontend *fe) | |||
610 | msleep(200); | 610 | msleep(200); |
611 | 611 | ||
612 | ret = tda18271_powerscan_init(fe); | 612 | ret = tda18271_powerscan_init(fe); |
613 | if (ret < 0) | 613 | if (tda_fail(ret)) |
614 | goto fail; | 614 | goto fail; |
615 | 615 | ||
616 | /* rf band calibration */ | 616 | /* rf band calibration */ |
@@ -618,7 +618,7 @@ static int tda18271_calc_rf_filter_curve(struct dvb_frontend *fe) | |||
618 | ret = | 618 | ret = |
619 | tda18271_rf_tracking_filters_init(fe, 1000 * | 619 | tda18271_rf_tracking_filters_init(fe, 1000 * |
620 | priv->rf_cal_state[i].rfmax); | 620 | priv->rf_cal_state[i].rfmax); |
621 | if (ret < 0) | 621 | if (tda_fail(ret)) |
622 | goto fail; | 622 | goto fail; |
623 | } | 623 | } |
624 | 624 | ||
@@ -643,11 +643,11 @@ static int tda18271c2_rf_cal_init(struct dvb_frontend *fe) | |||
643 | return 0; | 643 | return 0; |
644 | 644 | ||
645 | ret = tda18271_calc_rf_filter_curve(fe); | 645 | ret = tda18271_calc_rf_filter_curve(fe); |
646 | if (ret < 0) | 646 | if (tda_fail(ret)) |
647 | goto fail; | 647 | goto fail; |
648 | 648 | ||
649 | ret = tda18271_por(fe); | 649 | ret = tda18271_por(fe); |
650 | if (ret < 0) | 650 | if (tda_fail(ret)) |
651 | goto fail; | 651 | goto fail; |
652 | 652 | ||
653 | tda_info("tda18271: RF tracking filter calibration complete\n"); | 653 | 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 | tda18271_calc_main_pll(fe, N); | 715 | tda18271_calc_main_pll(fe, N); |
716 | 716 | ||
717 | ret = tda18271_write_regs(fe, R_EP3, 11); | 717 | ret = tda18271_write_regs(fe, R_EP3, 11); |
718 | if (ret < 0) | 718 | if (tda_fail(ret)) |
719 | return ret; | 719 | return ret; |
720 | 720 | ||
721 | msleep(5); /* RF tracking filter calibration initialization */ | 721 | msleep(5); /* RF tracking filter calibration initialization */ |
@@ -768,7 +768,7 @@ static int tda18271_ir_cal_init(struct dvb_frontend *fe) | |||
768 | int ret; | 768 | int ret; |
769 | 769 | ||
770 | ret = tda18271_read_regs(fe); | 770 | ret = tda18271_read_regs(fe); |
771 | if (ret < 0) | 771 | if (tda_fail(ret)) |
772 | goto fail; | 772 | goto fail; |
773 | 773 | ||
774 | /* test IR_CAL_OK to see if we need init */ | 774 | /* test IR_CAL_OK to see if we need init */ |
@@ -787,12 +787,12 @@ static int tda18271_init(struct dvb_frontend *fe) | |||
787 | 787 | ||
788 | /* power up */ | 788 | /* power up */ |
789 | ret = tda18271_set_standby_mode(fe, 0, 0, 0); | 789 | ret = tda18271_set_standby_mode(fe, 0, 0, 0); |
790 | if (ret < 0) | 790 | if (tda_fail(ret)) |
791 | goto fail; | 791 | goto fail; |
792 | 792 | ||
793 | /* initialization */ | 793 | /* initialization */ |
794 | ret = tda18271_ir_cal_init(fe); | 794 | ret = tda18271_ir_cal_init(fe); |
795 | if (ret < 0) | 795 | if (tda_fail(ret)) |
796 | goto fail; | 796 | goto fail; |
797 | 797 | ||
798 | if (priv->id == TDA18271HDC2) | 798 | if (priv->id == TDA18271HDC2) |
@@ -813,7 +813,7 @@ static int tda18271_tune(struct dvb_frontend *fe, | |||
813 | freq, map->if_freq, bw, map->agc_mode, map->std); | 813 | freq, map->if_freq, bw, map->agc_mode, map->std); |
814 | 814 | ||
815 | ret = tda18271_init(fe); | 815 | ret = tda18271_init(fe); |
816 | if (ret < 0) | 816 | if (tda_fail(ret)) |
817 | goto fail; | 817 | goto fail; |
818 | 818 | ||
819 | mutex_lock(&priv->lock); | 819 | mutex_lock(&priv->lock); |
@@ -894,7 +894,7 @@ static int tda18271_set_params(struct dvb_frontend *fe, | |||
894 | 894 | ||
895 | ret = tda18271_tune(fe, map, freq, bw); | 895 | ret = tda18271_tune(fe, map, freq, bw); |
896 | 896 | ||
897 | if (ret < 0) | 897 | if (tda_fail(ret)) |
898 | goto fail; | 898 | goto fail; |
899 | 899 | ||
900 | priv->frequency = freq; | 900 | priv->frequency = freq; |
@@ -950,7 +950,7 @@ static int tda18271_set_analog_params(struct dvb_frontend *fe, | |||
950 | 950 | ||
951 | ret = tda18271_tune(fe, map, freq, 0); | 951 | ret = tda18271_tune(fe, map, freq, 0); |
952 | 952 | ||
953 | if (ret < 0) | 953 | if (tda_fail(ret)) |
954 | goto fail; | 954 | goto fail; |
955 | 955 | ||
956 | priv->frequency = freq; | 956 | priv->frequency = freq; |
@@ -1153,10 +1153,10 @@ struct dvb_frontend *tda18271_attach(struct dvb_frontend *fe, u8 addr, | |||
1153 | if (cfg) | 1153 | if (cfg) |
1154 | priv->small_i2c = cfg->small_i2c; | 1154 | priv->small_i2c = cfg->small_i2c; |
1155 | 1155 | ||
1156 | if (tda18271_get_id(fe) < 0) | 1156 | if (tda_fail(tda18271_get_id(fe))) |
1157 | goto fail; | 1157 | goto fail; |
1158 | 1158 | ||
1159 | if (tda18271_assign_map_layout(fe) < 0) | 1159 | if (tda_fail(tda18271_assign_map_layout(fe))) |
1160 | goto fail; | 1160 | goto fail; |
1161 | 1161 | ||
1162 | mutex_lock(&priv->lock); | 1162 | mutex_lock(&priv->lock); |
diff --git a/drivers/media/common/tuners/tda18271-priv.h b/drivers/media/common/tuners/tda18271-priv.h index 2bc5eb368ea2..81a739365f8c 100644 --- a/drivers/media/common/tuners/tda18271-priv.h +++ b/drivers/media/common/tuners/tda18271-priv.h | |||
@@ -153,6 +153,15 @@ extern int tda18271_debug; | |||
153 | #define tda_reg(fmt, arg...) dprintk(KERN_DEBUG, DBG_REG, fmt, ##arg) | 153 | #define tda_reg(fmt, arg...) dprintk(KERN_DEBUG, DBG_REG, fmt, ##arg) |
154 | #define tda_cal(fmt, arg...) dprintk(KERN_DEBUG, DBG_CAL, fmt, ##arg) | 154 | #define tda_cal(fmt, arg...) dprintk(KERN_DEBUG, DBG_CAL, fmt, ##arg) |
155 | 155 | ||
156 | #define tda_fail(ret) \ | ||
157 | ({ \ | ||
158 | int __ret; \ | ||
159 | __ret = (ret < 0); \ | ||
160 | if (__ret) \ | ||
161 | tda_printk(KERN_ERR, "error %d on line %d\n", ret, __LINE__);\ | ||
162 | __ret; \ | ||
163 | }) | ||
164 | |||
156 | /*---------------------------------------------------------------------*/ | 165 | /*---------------------------------------------------------------------*/ |
157 | 166 | ||
158 | enum tda18271_map_type { | 167 | enum tda18271_map_type { |