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

Commit 43385c8a authored by Igor M. Liplianin's avatar Igor M. Liplianin Committed by Mauro Carvalho Chehab
Browse files

[media] ds3000: lock led procedure added



TeVii s660 and others have LED for lock indication.
Let's use it in right order.

Signed-off-by: default avatarIgor M. Liplianin <liplianin@me.by>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 38f7889c
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -460,6 +460,9 @@ static int ds3000_read_status(struct dvb_frontend *fe, fe_status_t* status)
		return 1;
	}

	if (state->config->set_lock_led)
		state->config->set_lock_led(fe, *status == 0 ? 0 : 1);

	dprintk("%s: status = 0x%02x\n", __func__, lock);

	return 0;
@@ -809,6 +812,10 @@ static int ds3000_diseqc_send_burst(struct dvb_frontend *fe,
static void ds3000_release(struct dvb_frontend *fe)
{
	struct ds3000_state *state = fe->demodulator_priv;

	if (state->config->set_lock_led)
		state->config->set_lock_led(fe, 0);

	dprintk("%s\n", __func__);
	kfree(state);
}
@@ -1037,6 +1044,11 @@ static int ds3000_tune(struct dvb_frontend *fe,

static enum dvbfe_algo ds3000_get_algo(struct dvb_frontend *fe)
{
	struct ds3000_state *state = fe->demodulator_priv;

	if (state->config->set_lock_led)
		state->config->set_lock_led(fe, 0);

	dprintk("%s()\n", __func__);
	return DVBFE_ALGO_HW;
}
+2 −0
Original line number Diff line number Diff line
@@ -30,6 +30,8 @@ struct ds3000_config {
	u8 ci_mode;
	/* Set device param to start dma */
	int (*set_ts_params)(struct dvb_frontend *fe, int is_punctured);
	/* Hook for Lock LED */
	void (*set_lock_led)(struct dvb_frontend *fe, int offon);
};

#if defined(CONFIG_DVB_DS3000) || \
+6 −1
Original line number Diff line number Diff line
@@ -955,6 +955,11 @@ static struct ts2020_config dw2104_ts2020_config = {
	.tuner_address = 0x60,
};

static struct ds3000_config s660_ds3000_config = {
	.demod_address = 0x68,
	.set_lock_led = dw210x_led_ctrl,
};

static struct stv0900_config dw2104a_stv0900_config = {
	.demod_address = 0x6a,
	.demod_mode = 0,
@@ -1200,7 +1205,7 @@ static int ds3000_frontend_attach(struct dvb_usb_adapter *d)
	struct s6x0_state *st = (struct s6x0_state *)d->dev->priv;
	u8 obuf[] = {7, 1};

	d->fe_adap[0].fe = dvb_attach(ds3000_attach, &dw2104_ds3000_config,
	d->fe_adap[0].fe = dvb_attach(ds3000_attach, &s660_ds3000_config,
			&d->dev->i2c_adap);

	if (d->fe_adap[0].fe == NULL)