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

Commit e7ac4646 authored by Manu Abraham's avatar Manu Abraham Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB (3389): Fix broken IF-OUT Relay handling



Fixed broken IF-OUT on pinnacle sat board.
Thanks to Edgar Toernig

Signed-off-by: default avatarManu Abraham <manu@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 1e7eb89b
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -239,6 +239,20 @@ static int cx24108_pll_set(struct dvb_frontend* fe, struct dvb_frontend_paramete

static int pinnsat_pll_init(struct dvb_frontend* fe)
{
	struct dvb_bt8xx_card *card = fe->dvb->priv;

	bttv_gpio_enable(card->bttv_nr, 1, 1);  /* output */
	bttv_write_gpio(card->bttv_nr, 1, 1);   /* relay on */
	
	return 0;
}

static int pinnsat_pll_sleep(struct dvb_frontend* fe)
{
	struct dvb_bt8xx_card *card = fe->dvb->priv;

	bttv_write_gpio(card->bttv_nr, 1, 0);   /* relay off */

	return 0;
}

@@ -246,6 +260,7 @@ static struct cx24110_config pctvsat_config = {
	.demod_address = 0x55,
	.pll_init = pinnsat_pll_init,
	.pll_set = cx24108_pll_set,
	.pll_sleep = pinnsat_pll_sleep,
};

static int microtune_mt7202dtf_pll_set(struct dvb_frontend* fe, struct dvb_frontend_parameters* params)
+10 −0
Original line number Diff line number Diff line
@@ -371,6 +371,15 @@ static int cx24110_initfe(struct dvb_frontend* fe)
	return 0;
}

static int cx24110_sleep(struct dvb_frontend *fe)
{
	struct cx24110_state *state = fe->demodulator_priv;

	if (state->config->pll_sleep)
		  return state->config->pll_sleep(fe);
	return 0;
}

static int cx24110_set_voltage (struct dvb_frontend* fe, fe_sec_voltage_t voltage)
{
	struct cx24110_state *state = fe->demodulator_priv;
@@ -642,6 +651,7 @@ static struct dvb_frontend_ops cx24110_ops = {
	.release = cx24110_release,

	.init = cx24110_initfe,
	.sleep = cx24110_sleep,
	.set_frontend = cx24110_set_frontend,
	.get_frontend = cx24110_get_frontend,
	.read_status = cx24110_read_status,
+1 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ struct cx24110_config
	/* PLL maintenance */
	int (*pll_init)(struct dvb_frontend* fe);
	int (*pll_set)(struct dvb_frontend* fe, struct dvb_frontend_parameters* params);
	int (*pll_sleep)(struct dvb_frontend* fe);
};

extern struct dvb_frontend* cx24110_attach(const struct cx24110_config* config,