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

Commit b5c7cfd1 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

[media] av7110: convert set_fontend to use DVBv5 parameters



Instead of using dvb_frontend_parameters struct, that were
designed for a subset of the supported standards, use the DVBv5
cache information.

Also, fill the supported delivery systems at dvb_frontend_ops
struct.

Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 31b4f32c
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -1985,15 +1985,14 @@ static int av7110_fe_lock_fix(struct av7110* av7110, fe_status_t status)
	return ret;
}

static int av7110_fe_set_frontend(struct dvb_frontend* fe, struct dvb_frontend_parameters* params)
static int av7110_fe_set_frontend(struct dvb_frontend *fe)
{
	struct av7110* av7110 = fe->dvb->priv;

	int ret = av7110_fe_lock_fix(av7110, 0);
	if (!ret) {
		av7110->saved_fe_params = *params;
		ret = av7110->fe_set_frontend(fe, params);
	}
	if (!ret)
		ret = av7110->fe_set_frontend(fe);

	return ret;
}

@@ -2102,7 +2101,7 @@ static void dvb_s_recover(struct av7110* av7110)
	msleep(20);
	av7110_fe_set_tone(av7110->fe, av7110->saved_tone);

	av7110_fe_set_frontend(av7110->fe, &av7110->saved_fe_params);
	av7110_fe_set_frontend(av7110->fe);
}

static u8 read_pwm(struct av7110* av7110)
@@ -2297,7 +2296,7 @@ static int frontend_init(struct av7110 *av7110)
		FE_FUNC_OVERRIDE(av7110->fe->ops.set_tone, av7110->fe_set_tone, av7110_fe_set_tone);
		FE_FUNC_OVERRIDE(av7110->fe->ops.set_voltage, av7110->fe_set_voltage, av7110_fe_set_voltage);
		FE_FUNC_OVERRIDE(av7110->fe->ops.dishnetwork_send_legacy_command, av7110->fe_dishnetwork_send_legacy_command, av7110_fe_dishnetwork_send_legacy_command);
		FE_FUNC_OVERRIDE(av7110->fe->ops.set_frontend_legacy, av7110->fe_set_frontend, av7110_fe_set_frontend);
		FE_FUNC_OVERRIDE(av7110->fe->ops.set_frontend, av7110->fe_set_frontend, av7110_fe_set_frontend);

		ret = dvb_register_frontend(&av7110->dvb_adapter, av7110->fe);
		if (ret < 0) {
+1 −2
Original line number Diff line number Diff line
@@ -272,7 +272,6 @@ struct av7110 {

	/* crash recovery */
	void				(*recover)(struct av7110* av7110);
	struct dvb_frontend_parameters	saved_fe_params;
	fe_sec_voltage_t		saved_voltage;
	fe_sec_tone_mode_t		saved_tone;
	struct dvb_diseqc_master_cmd	saved_master_cmd;
@@ -286,7 +285,7 @@ struct av7110 {
	int (*fe_set_tone)(struct dvb_frontend* fe, fe_sec_tone_mode_t tone);
	int (*fe_set_voltage)(struct dvb_frontend* fe, fe_sec_voltage_t voltage);
	int (*fe_dishnetwork_send_legacy_command)(struct dvb_frontend* fe, unsigned long cmd);
	int (*fe_set_frontend)(struct dvb_frontend* fe, struct dvb_frontend_parameters* params);
	int (*fe_set_frontend)(struct dvb_frontend *fe);
};