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

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
...@@ -286,6 +286,27 @@ static int jdvbt90502_get_tune_settings(struct dvb_frontend *fe, ...@@ -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, ...@@ -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) ...@@ -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 = { ...@@ -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,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment