Commit 71b6aaaf authored by Luis Alves's avatar Luis Alves Committed by Mauro Carvalho Chehab
Browse files

[media] cx24117: Fix LNB set_voltage function



This patch should fix/enhance the set_voltage function for
the cx24117 demodulator.

Signed-off-by: default avatarLuis Alves <ljalvs@gmail.com>
Signed-off-by: default avatarMichael Krufky <mkrufky@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
parent 9fa7c419
Loading
Loading
Loading
Loading
+18 −15
Original line number Diff line number Diff line
@@ -917,22 +917,15 @@ static int cx24117_set_voltage(struct dvb_frontend *fe,
		voltage == SEC_VOLTAGE_18 ? "SEC_VOLTAGE_18" :
		"SEC_VOLTAGE_OFF");

	/* Set GPIO direction */
	cmd.args[0] = CMD_SET_GPIODIR;
	cmd.args[1] = reg;
	cmd.args[2] = reg;
	/* Prepare a set GPIO logic level CMD */
	cmd.args[0] = CMD_SET_GPIOOUT;
	cmd.args[2] = reg; /* mask */
	cmd.len = 3;
	ret = cx24117_cmd_execute(fe, &cmd);
	if (ret)
		return ret;

	if ((voltage == SEC_VOLTAGE_13) ||
	    (voltage == SEC_VOLTAGE_18)) {
		/* Set GPIO logic level */
		cmd.args[0] = CMD_SET_GPIOOUT;
		/* power on LNB */
		cmd.args[1] = reg;
		cmd.args[2] = reg;
		cmd.len = 3;
		ret = cx24117_cmd_execute(fe, &cmd);
		if (ret != 0)
			return ret;
@@ -949,17 +942,17 @@ static int cx24117_set_voltage(struct dvb_frontend *fe,
		cmd.args[1] = state->demod ? 0 : 1;
		cmd.args[2] = (voltage == SEC_VOLTAGE_18 ? 0x01 : 0x00);
		cmd.len = 3;
		ret = cx24117_cmd_execute(fe, &cmd);

		/* Min delay time before DiSEqC send */
		msleep(20);
	} else {
		cmd.args[0] = CMD_SET_GPIOOUT;
		/* power off LNB */
		cmd.args[1] = 0x00;
		cmd.args[2] = reg;
		cmd.len = 3;
		ret = cx24117_cmd_execute(fe, &cmd);
	}

	return cx24117_cmd_execute(fe, &cmd);
	return ret;
}

static int cx24117_set_tone(struct dvb_frontend *fe,
@@ -1277,6 +1270,16 @@ static int cx24117_initfe(struct dvb_frontend *fe)
	cmd.args[2] = CX24117_OCC;
	cmd.len = 3;
	ret = cx24117_cmd_execute_nolock(fe, &cmd);
	if (ret != 0)
		goto exit;

	/* Set GPIO direction */
	/* Set as output - controls LNB power on/off */
	cmd.args[0] = CMD_SET_GPIODIR;
	cmd.args[1] = 0x30;
	cmd.args[2] = 0x30;
	cmd.len = 3;
	ret = cx24117_cmd_execute_nolock(fe, &cmd);

exit:
	mutex_unlock(&state->priv->fe_lock);