aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/common
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2008-12-07 22:49:33 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-12-30 06:38:18 -0500
commit92d90f1a57dcb6c6ab5a7b9ad949bdb7531931a4 (patch)
tree9d68e63f845049a5b0f903a35f399c7f48f257cd /drivers/media/common
parente5218eedaef39ed5f1ebc84ab9510dd9b99acadf (diff)
V4L/DVB (9774): tda827x: fix returned frequency
Probably due to a removed code, tda827x were doing some wrong calculus at the returned frequency. I suspect that the original idea were to return the programmed divisor converted into frequency again. However, the current code is sometimes multiplying the programmed frequency by 62500, and, on other cases, like radio, it dividing it by 1000. Instead of doing such math, let's just store the frequency value as requested by the caller module. Cc: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/common')
-rw-r--r--drivers/media/common/tuners/tda827x.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/media/common/tuners/tda827x.c b/drivers/media/common/tuners/tda827x.c
index f221cee4c687..f4d931f14fad 100644
--- a/drivers/media/common/tuners/tda827x.c
+++ b/drivers/media/common/tuners/tda827x.c
@@ -200,7 +200,7 @@ static int tda827xo_set_params(struct dvb_frontend *fe,
200 fe->ops.i2c_gate_ctrl(fe, 1); 200 fe->ops.i2c_gate_ctrl(fe, 1);
201 i2c_transfer(priv->i2c_adap, &msg, 1); 201 i2c_transfer(priv->i2c_adap, &msg, 1);
202 202
203 priv->frequency = tuner_freq - if_freq; // FIXME 203 priv->frequency = params->frequency;
204 priv->bandwidth = (fe->ops.info.type == FE_OFDM) ? params->u.ofdm.bandwidth : 0; 204 priv->bandwidth = (fe->ops.info.type == FE_OFDM) ? params->u.ofdm.bandwidth : 0;
205 205
206 return 0; 206 return 0;
@@ -305,7 +305,7 @@ static int tda827xo_set_analog_params(struct dvb_frontend *fe,
305 reg2[1] = 0x08; /* Vsync en */ 305 reg2[1] = 0x08; /* Vsync en */
306 i2c_transfer(priv->i2c_adap, &msg, 1); 306 i2c_transfer(priv->i2c_adap, &msg, 1);
307 307
308 priv->frequency = freq * 62500; 308 priv->frequency = params->frequency;
309 309
310 return 0; 310 return 0;
311} 311}
@@ -592,7 +592,7 @@ static int tda827xa_set_params(struct dvb_frontend *fe,
592 fe->ops.i2c_gate_ctrl(fe, 1); 592 fe->ops.i2c_gate_ctrl(fe, 1);
593 i2c_transfer(priv->i2c_adap, &msg, 1); 593 i2c_transfer(priv->i2c_adap, &msg, 1);
594 594
595 priv->frequency = tuner_freq - if_freq; // FIXME 595 priv->frequency = params->frequency;
596 priv->bandwidth = (fe->ops.info.type == FE_OFDM) ? params->u.ofdm.bandwidth : 0; 596 priv->bandwidth = (fe->ops.info.type == FE_OFDM) ? params->u.ofdm.bandwidth : 0;
597 597
598 return 0; 598 return 0;
@@ -692,7 +692,7 @@ static int tda827xa_set_analog_params(struct dvb_frontend *fe,
692 tuner_reg[1] = 0x19 + (priv->lpsel << 1); 692 tuner_reg[1] = 0x19 + (priv->lpsel << 1);
693 i2c_transfer(priv->i2c_adap, &msg, 1); 693 i2c_transfer(priv->i2c_adap, &msg, 1);
694 694
695 priv->frequency = freq * 62500; 695 priv->frequency = params->frequency;
696 696
697 return 0; 697 return 0;
698} 698}