diff options
Diffstat (limited to 'drivers/media/common/tuners/tda18271-fe.c')
| -rw-r--r-- | drivers/media/common/tuners/tda18271-fe.c | 21 | 
1 files changed, 11 insertions, 10 deletions
diff --git a/drivers/media/common/tuners/tda18271-fe.c b/drivers/media/common/tuners/tda18271-fe.c index 9ad4454a148..d884f5eee73 100644 --- a/drivers/media/common/tuners/tda18271-fe.c +++ b/drivers/media/common/tuners/tda18271-fe.c @@ -579,8 +579,8 @@ static int tda18271_rf_tracking_filters_init(struct dvb_frontend *fe, u32 freq)  #define RF3 2  	u32 rf_default[3];  	u32 rf_freq[3]; -	u8 prog_cal[3]; -	u8 prog_tab[3]; +	s32 prog_cal[3]; +	s32 prog_tab[3];  	i = tda18271_lookup_rf_band(fe, &freq, NULL); @@ -602,32 +602,33 @@ static int tda18271_rf_tracking_filters_init(struct dvb_frontend *fe, u32 freq)  			return bcal;  		tda18271_calc_rf_cal(fe, &rf_freq[rf]); -		prog_tab[rf] = regs[R_EB14]; +		prog_tab[rf] = (s32)regs[R_EB14];  		if (1 == bcal) -			prog_cal[rf] = tda18271_calibrate_rf(fe, rf_freq[rf]); +			prog_cal[rf] = +				(s32)tda18271_calibrate_rf(fe, rf_freq[rf]);  		else  			prog_cal[rf] = prog_tab[rf];  		switch (rf) {  		case RF1:  			map[i].rf_a1 = 0; -			map[i].rf_b1 = (s32)(prog_cal[RF1] - prog_tab[RF1]); +			map[i].rf_b1 = (prog_cal[RF1] - prog_tab[RF1]);  			map[i].rf1   = rf_freq[RF1] / 1000;  			break;  		case RF2: -			dividend = (s32)(prog_cal[RF2] - prog_tab[RF2]) - -				   (s32)(prog_cal[RF1] + prog_tab[RF1]); +			dividend = (prog_cal[RF2] - prog_tab[RF2] - +				    prog_cal[RF1] + prog_tab[RF1]);  			divisor = (s32)(rf_freq[RF2] - rf_freq[RF1]) / 1000;  			map[i].rf_a1 = (dividend / divisor);  			map[i].rf2   = rf_freq[RF2] / 1000;  			break;  		case RF3: -			dividend = (s32)(prog_cal[RF3] - prog_tab[RF3]) - -				   (s32)(prog_cal[RF2] + prog_tab[RF2]); +			dividend = (prog_cal[RF3] - prog_tab[RF3] - +				    prog_cal[RF2] + prog_tab[RF2]);  			divisor = (s32)(rf_freq[RF3] - rf_freq[RF2]) / 1000;  			map[i].rf_a2 = (dividend / divisor); -			map[i].rf_b2 = (s32)(prog_cal[RF2] - prog_tab[RF2]); +			map[i].rf_b2 = (prog_cal[RF2] - prog_tab[RF2]);  			map[i].rf3   = rf_freq[RF3] / 1000;  			break;  		default:  |