summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntti Palosaari <crope@iki.fi>2011-11-13 00:26:17 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-11-24 17:52:39 -0200
commit6d42b218b43f300d0787df7984c8f789de24c6e7 (patch)
treec1309c1b1928d0c0f5d02e6881eee52cec95fe16
parent522fdf731946301ab7a5ecf854cbe89462397b81 (diff)
downloadop-kernel-dev-6d42b218b43f300d0787df7984c8f789de24c6e7.zip
op-kernel-dev-6d42b218b43f300d0787df7984c8f789de24c6e7.tar.gz
[media] af9013: use .get_if_frequency() when possible
Get IF frequency from tuner if tuner provides it. Remove TDA18271 and TDA18218 IF frequency hacks since both tuners provides .get_if_frequency(). Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/dvb/frontends/af9013.c41
1 files changed, 9 insertions, 32 deletions
diff --git a/drivers/media/dvb/frontends/af9013.c b/drivers/media/dvb/frontends/af9013.c
index 345311c..f4276e4 100644
--- a/drivers/media/dvb/frontends/af9013.c
+++ b/drivers/media/dvb/frontends/af9013.c
@@ -303,7 +303,8 @@ error:
return ret;
}
-static int af9013_set_freq_ctrl(struct af9013_state *state, fe_bandwidth_t bw)
+static int af9013_set_freq_ctrl(struct af9013_state *state,
+ struct dvb_frontend *fe)
{
int ret;
u16 addr;
@@ -324,37 +325,13 @@ static int af9013_set_freq_ctrl(struct af9013_state *state, fe_bandwidth_t bw)
bfs_spec_inv = state->config.rf_spec_inv ? 1 : -1;
}
- adc_freq = state->config.adc_clock * 1000;
- if_sample_freq = state->config.tuner_if * 1000;
+ adc_freq = state->config.adc_clock * 1000;
- /* TDA18271 uses different sampling freq for every bw */
- if (state->config.tuner == AF9013_TUNER_TDA18271) {
- switch (bw) {
- case BANDWIDTH_6_MHZ:
- if_sample_freq = 3300000; /* 3.3 MHz */
- break;
- case BANDWIDTH_7_MHZ:
- if_sample_freq = 3500000; /* 3.5 MHz */
- break;
- case BANDWIDTH_8_MHZ:
- default:
- if_sample_freq = 4000000; /* 4.0 MHz */
- break;
- }
- } else if (state->config.tuner == AF9013_TUNER_TDA18218) {
- switch (bw) {
- case BANDWIDTH_6_MHZ:
- if_sample_freq = 3000000; /* 3 MHz */
- break;
- case BANDWIDTH_7_MHZ:
- if_sample_freq = 3500000; /* 3.5 MHz */
- break;
- case BANDWIDTH_8_MHZ:
- default:
- if_sample_freq = 4000000; /* 4 MHz */
- break;
- }
- }
+ /* get used IF frequency */
+ if (fe->ops.tuner_ops.get_if_frequency)
+ fe->ops.tuner_ops.get_if_frequency(fe, &if_sample_freq);
+ else
+ if_sample_freq = state->config.tuner_if * 1000;
while (if_sample_freq > (adc_freq / 2))
if_sample_freq = if_sample_freq - adc_freq;
@@ -639,7 +616,7 @@ static int af9013_set_frontend(struct dvb_frontend *fe,
goto error;
/* program frequency control */
- ret = af9013_set_freq_ctrl(state, params->u.ofdm.bandwidth);
+ ret = af9013_set_freq_ctrl(state, fe);
if (ret)
goto error;
OpenPOWER on IntegriCloud