Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 173924
b: refs/heads/master
c: 3a6b49f
h: refs/heads/master
v: v3
  • Loading branch information
Michael Krufky authored and Mauro Carvalho Chehab committed Dec 5, 2009
1 parent 7b9520f commit f038e33
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 16 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 3986bd116f3c53d695aef1781e14b6c5670d4cdd
refs/heads/master: 3a6b49fef6cd18ce3de9de3db12bfbeacf39f9e9
21 changes: 11 additions & 10 deletions trunk/drivers/media/common/tuners/tda18271-fe.c
Original file line number Diff line number Diff line change
Expand Up @@ -256,8 +256,9 @@ static int tda18271c2_rf_tracking_filters_correction(struct dvb_frontend *fe,
struct tda18271_priv *priv = fe->tuner_priv;
struct tda18271_rf_tracking_filter_cal *map = priv->rf_cal_state;
unsigned char *regs = priv->tda18271_regs;
int tm_current, rfcal_comp, approx, i, ret;
u8 dc_over_dt, rf_tab;
int i, ret;
u8 tm_current, dc_over_dt, rf_tab;
s32 rfcal_comp, approx;

/* power up */
ret = tda18271_set_standby_mode(fe, 0, 0, 0);
Expand All @@ -277,11 +278,11 @@ static int tda18271c2_rf_tracking_filters_correction(struct dvb_frontend *fe,
return i;

if ((0 == map[i].rf3) || (freq / 1000 < map[i].rf2)) {
approx = map[i].rf_a1 *
(freq / 1000 - map[i].rf1) + map[i].rf_b1 + rf_tab;
approx = map[i].rf_a1 * (s32)(freq / 1000 - map[i].rf1) +
map[i].rf_b1 + rf_tab;
} else {
approx = map[i].rf_a2 *
(freq / 1000 - map[i].rf2) + map[i].rf_b2 + rf_tab;
approx = map[i].rf_a2 * (s32)(freq / 1000 - map[i].rf2) +
map[i].rf_b2 + rf_tab;
}

if (approx < 0)
Expand All @@ -292,9 +293,9 @@ static int tda18271c2_rf_tracking_filters_correction(struct dvb_frontend *fe,
tda18271_lookup_map(fe, RF_CAL_DC_OVER_DT, &freq, &dc_over_dt);

/* calculate temperature compensation */
rfcal_comp = dc_over_dt * (tm_current - priv->tm_rfcal) / 1000;
rfcal_comp = dc_over_dt * (s32)(tm_current - priv->tm_rfcal) / 1000;

regs[R_EB14] = approx + rfcal_comp;
regs[R_EB14] = (unsigned char)(approx + rfcal_comp);
ret = tda18271_write_regs(fe, R_EB14, 1);
fail:
return ret;
Expand Down Expand Up @@ -611,7 +612,7 @@ static int tda18271_rf_tracking_filters_init(struct dvb_frontend *fe, u32 freq)
switch (rf) {
case RF1:
map[i].rf_a1 = 0;
map[i].rf_b1 = prog_cal[RF1] - prog_tab[RF1];
map[i].rf_b1 = (s32)(prog_cal[RF1] - prog_tab[RF1]);
map[i].rf1 = rf_freq[RF1] / 1000;
break;
case RF2:
Expand All @@ -626,7 +627,7 @@ static int tda18271_rf_tracking_filters_init(struct dvb_frontend *fe, u32 freq)
(s32)(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 = prog_cal[RF2] - prog_tab[RF2];
map[i].rf_b2 = (s32)(prog_cal[RF2] - prog_tab[RF2]);
map[i].rf3 = rf_freq[RF3] / 1000;
break;
default:
Expand Down
11 changes: 6 additions & 5 deletions trunk/drivers/media/common/tuners/tda18271-priv.h
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,10 @@ struct tda18271_rf_tracking_filter_cal {
u32 rf1;
u32 rf2;
u32 rf3;
int rf_a1;
int rf_b1;
int rf_a2;
int rf_b2;
s32 rf_a1;
s32 rf_b1;
s32 rf_a2;
s32 rf_b2;
};

enum tda18271_pll {
Expand Down Expand Up @@ -111,10 +111,11 @@ struct tda18271_priv {
enum tda18271_output_options output_opt;

unsigned int config; /* interface to saa713x / tda829x */
unsigned int tm_rfcal;
unsigned int cal_initialized:1;
unsigned int small_i2c:1;

u8 tm_rfcal;

struct tda18271_map_layout *maps;
struct tda18271_std_map std;
struct tda18271_rf_tracking_filter_cal rf_cal_state[8];
Expand Down

0 comments on commit f038e33

Please sign in to comment.