Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[media] af9033: IT9135 v2 supported related changes

parent bc3c9e10
Loading
Loading
Loading
Loading
+28 −3
Original line number Diff line number Diff line
@@ -285,10 +285,29 @@ static int af9033_init(struct dvb_frontend *fe)
			goto err;
	}

	/*
	 * FIXME: These inits are logically property of demodulator driver
	 * (that driver), but currently in case of IT9135 those are done by
	 * tuner driver.
	 */

	/* load OFSM settings */
	dev_dbg(&state->i2c->dev, "%s: load ofsm settings\n", __func__);
	switch (state->cfg.tuner) {
	case AF9033_TUNER_IT9135_38:
	case AF9033_TUNER_IT9135_51:
	case AF9033_TUNER_IT9135_52:
	case AF9033_TUNER_IT9135_60:
	case AF9033_TUNER_IT9135_61:
	case AF9033_TUNER_IT9135_62:
		len = 0;
		break;
	default:
		len = ARRAY_SIZE(ofsm_init);
		init = ofsm_init;
		break;
	}

	for (i = 0; i < len; i++) {
		ret = af9033_wr_reg(state, init[i].reg, init[i].val);
		if (ret < 0)
@@ -424,7 +443,8 @@ static int af9033_sleep(struct dvb_frontend *fe)
static int af9033_get_tune_settings(struct dvb_frontend *fe,
		struct dvb_frontend_tune_settings *fesettings)
{
	fesettings->min_delay_ms = 800;
	/* 800 => 2000 because IT9135 v2 is slow to gain lock */
	fesettings->min_delay_ms = 2000;
	fesettings->step_size = 0;
	fesettings->max_drift = 0;

@@ -513,6 +533,11 @@ static int af9033_set_frontend(struct dvb_frontend *fe)
		buf[0] = (freq_cw >>  0) & 0xff;
		buf[1] = (freq_cw >>  8) & 0xff;
		buf[2] = (freq_cw >> 16) & 0x7f;

		/* FIXME: there seems to be calculation error here... */
		if (if_frequency == 0)
			buf[2] = 0;

		ret = af9033_wr_regs(state, 0x800029, buf, 3);
		if (ret < 0)
			goto err;