Commit 6d42b218 authored by Antti Palosaari's avatar Antti Palosaari Committed by Mauro Carvalho Chehab
Browse files

[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: default avatarAntti Palosaari <crope@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 522fdf73
Loading
Loading
Loading
Loading
+9 −32
Original line number Diff line number Diff line
@@ -303,7 +303,8 @@ static int af9013_set_adc_ctrl(struct af9013_state *state)
	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;
@@ -325,36 +326,12 @@ static int af9013_set_freq_ctrl(struct af9013_state *state, fe_bandwidth_t bw)
		}

		adc_freq = state->config.adc_clock * 1000;
		if_sample_freq = state->config.tuner_if * 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;