Commit 669b67d9 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

[media] mt2063: Convert it to the DVBv5 way for set_params()

parent d76f28f2
Loading
Loading
Loading
Loading
+17 −29
Original line number Diff line number Diff line
@@ -2051,9 +2051,9 @@ static int mt2063_set_analog_params(struct dvb_frontend *fe,
 */
#define MAX_SYMBOL_RATE_6MHz	5217391

static int mt2063_set_params(struct dvb_frontend *fe,
			     struct dvb_frontend_parameters *params)
static int mt2063_set_params(struct dvb_frontend *fe)
{
	struct dtv_frontend_properties *c = &fe->dtv_property_cache;
	struct mt2063_state *state = fe->tuner_priv;
	int status;
	s32 pict_car = 0;
@@ -2065,37 +2065,25 @@ static int mt2063_set_params(struct dvb_frontend *fe,
	s32 if_mid = 0;
	s32 rcvr_mode = 0;

	switch (fe->ops.info.type) {
	case FE_OFDM:
		switch (params->u.ofdm.bandwidth) {
		case BANDWIDTH_6_MHZ:
	if (c->bandwidth_hz == 0)
		return -EINVAL;
	if (c->bandwidth_hz <= 6000000)
		ch_bw = 6000000;
			break;
		case BANDWIDTH_7_MHZ:
	else if (c->bandwidth_hz <= 7000000)
		ch_bw = 7000000;
			break;
		case BANDWIDTH_8_MHZ:
	else
		ch_bw = 8000000;
			break;
		default:
			return -EINVAL;
		}

	switch (c->delivery_system) {
	case SYS_DVBT:
		rcvr_mode = MT2063_OFFAIR_COFDM;
		pict_car = 36125000;
		pict2chanb_vsb = -(ch_bw / 2);
		pict2snd1 = 0;
		pict2snd2 = 0;
		break;
	case FE_QAM:
		/*
		 * Using a 8MHz bandwidth sometimes fail
		 * with 6MHz-spaced channels, due to inter-carrier
		 * interference. So, it is better to narrow-down the filter
		 */
		if (params->u.qam.symbol_rate <= MAX_SYMBOL_RATE_6MHz)
			ch_bw = 6000000;
		else
			ch_bw = 8000000;
	case SYS_DVBC_ANNEX_A:
	case SYS_DVBC_ANNEX_C:
		rcvr_mode = MT2063_CABLE_QAM;
		pict_car = 36125000;
		pict2snd1 = 0;
@@ -2115,12 +2103,12 @@ static int mt2063_set_params(struct dvb_frontend *fe,
	if (status < 0)
		return status;

	status = MT2063_Tune(state, (params->frequency + (pict2chanb_vsb + (ch_bw / 2))));
	status = MT2063_Tune(state, (c->frequency + (pict2chanb_vsb + (ch_bw / 2))));

	if (status < 0)
		return status;

	state->frequency = params->frequency;
	state->frequency = c->frequency;
	return 0;
}