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

Commit ad12f07b authored by Akihiro Tsukada's avatar Akihiro Tsukada Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB (13293): dvb-usb-friio: return the correct DTV_DELIVERY_SYSTEM



This patch makes the driver return the correct DTV_DELIVERY_SYSTEM.

The driver previously returned SYS_UNDEFINED for DTV_DELIVERY_SYSTEM property,
as it lacked any driver specific S2API support.

Signed-off-by: default avatarAkihiro Tsukada <tskd2@yahoo.co.jp>
Signed-off-by: default avatarDouglas Schilling Landgraf <dougsland@redhat.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 6f901a99
Loading
Loading
Loading
Loading
+27 −0
Original line number Original line Diff line number Diff line
@@ -286,6 +286,27 @@ static int jdvbt90502_get_tune_settings(struct dvb_frontend *fe,
	return 0;
	return 0;
}
}


/* filter out un-supported properties to notify users */
static int jdvbt90502_set_property(struct dvb_frontend *fe,
				   struct dtv_property *tvp)
{
	int r = 0;

	switch (tvp->cmd) {
	case DTV_DELIVERY_SYSTEM:
		if (tvp->u.data != SYS_ISDBT)
			r = -EINVAL;
		break;
	case DTV_CLEAR:
	case DTV_TUNE:
	case DTV_FREQUENCY:
		break;
	default:
		r = -EINVAL;
	}
	return r;
}

static int jdvbt90502_get_frontend(struct dvb_frontend *fe,
static int jdvbt90502_get_frontend(struct dvb_frontend *fe,
				   struct dvb_frontend_parameters *p)
				   struct dvb_frontend_parameters *p)
{
{
@@ -314,6 +335,9 @@ static int jdvbt90502_set_frontend(struct dvb_frontend *fe,


	deb_fe("%s: Freq:%d\n", __func__, p->frequency);
	deb_fe("%s: Freq:%d\n", __func__, p->frequency);


	/* for recovery from DTV_CLEAN */
	fe->dtv_property_cache.delivery_system = SYS_ISDBT;

	ret = jdvbt90502_pll_set_freq(state, p->frequency);
	ret = jdvbt90502_pll_set_freq(state, p->frequency);
	if (ret) {
	if (ret) {
		deb_fe("%s:ret == %d\n", __func__, ret);
		deb_fe("%s:ret == %d\n", __func__, ret);
@@ -394,6 +418,7 @@ static int jdvbt90502_init(struct dvb_frontend *fe)
		if (ret != 1)
		if (ret != 1)
			goto error;
			goto error;
	}
	}
	fe->dtv_property_cache.delivery_system = SYS_ISDBT;
	msleep(100);
	msleep(100);


	return 0;
	return 0;
@@ -471,6 +496,8 @@ static struct dvb_frontend_ops jdvbt90502_ops = {
	.sleep = jdvbt90502_sleep,
	.sleep = jdvbt90502_sleep,
	.write = _jdvbt90502_write,
	.write = _jdvbt90502_write,


	.set_property = jdvbt90502_set_property,

	.set_frontend = jdvbt90502_set_frontend,
	.set_frontend = jdvbt90502_set_frontend,
	.get_frontend = jdvbt90502_get_frontend,
	.get_frontend = jdvbt90502_get_frontend,
	.get_tune_settings = jdvbt90502_get_tune_settings,
	.get_tune_settings = jdvbt90502_get_tune_settings,