summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Toth <stoth@linuxtv.org>2008-10-07 04:56:59 +0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-10-13 18:28:05 +0400
commitb87625f0ccbbc67efba356e73502fa9bbb784b1c (patch)
treef438bae01178fc2696a767adf5df18830377266e
parenta4de91be46b73ec6743b9d76155550e49507723c (diff)
downloadlinux-b87625f0ccbbc67efba356e73502fa9bbb784b1c.tar.xz
V4L/DVB (9181): S2API: Add support fot DTV_GUARD_INTERVAL and DTV_TRANSMISSION_MODE
Tuning DVB-T via the S2API was failing, missing some essential items. Signed-off-by: Steven Toth <stoth@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/dvb/dvb-core/dvb_frontend.c32
-rw-r--r--include/linux/dvb/frontend.h4
2 files changed, 35 insertions, 1 deletions
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c
index 104f40b7171d..0ddc2f4ecd4a 100644
--- a/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
@@ -840,6 +840,16 @@ struct dtv_cmds_h dtv_cmds[] = {
.cmd = DTV_CODE_RATE_LP,
.set = 1,
},
+ [DTV_GUARD_INTERVAL] = {
+ .name = "DTV_GUARD_INTERVAL",
+ .cmd = DTV_GUARD_INTERVAL,
+ .set = 1,
+ },
+ [DTV_TRANSMISSION_MODE] = {
+ .name = "DTV_TRANSMISSION_MODE",
+ .cmd = DTV_TRANSMISSION_MODE,
+ .set = 1,
+ },
/* Get */
[DTV_DISEQC_SLAVE_REPLY] = {
.name = "DTV_DISEQC_SLAVE_REPLY",
@@ -862,6 +872,16 @@ struct dtv_cmds_h dtv_cmds[] = {
.cmd = DTV_CODE_RATE_LP,
.set = 0,
},
+ [DTV_GUARD_INTERVAL] = {
+ .name = "DTV_GUARD_INTERVAL",
+ .cmd = DTV_GUARD_INTERVAL,
+ .set = 0,
+ },
+ [DTV_TRANSMISSION_MODE] = {
+ .name = "DTV_TRANSMISSION_MODE",
+ .cmd = DTV_TRANSMISSION_MODE,
+ .set = 0,
+ },
};
void dtv_property_dump(struct dtv_property *tvp)
@@ -1147,6 +1167,12 @@ int dtv_property_process_get(struct dvb_frontend *fe, struct dtv_property *tvp,
case DTV_CODE_RATE_LP:
tvp->u.data = fe->dtv_property_cache.code_rate_LP;
break;
+ case DTV_GUARD_INTERVAL:
+ tvp->u.data = fe->dtv_property_cache.guard_interval;
+ break;
+ case DTV_TRANSMISSION_MODE:
+ tvp->u.data = fe->dtv_property_cache.transmission_mode;
+ break;
default:
r = -1;
}
@@ -1234,6 +1260,12 @@ int dtv_property_process_set(struct dvb_frontend *fe, struct dtv_property *tvp,
case DTV_CODE_RATE_LP:
fe->dtv_property_cache.code_rate_LP = tvp->u.data;
break;
+ case DTV_GUARD_INTERVAL:
+ fe->dtv_property_cache.guard_interval = tvp->u.data;
+ break;
+ case DTV_TRANSMISSION_MODE:
+ fe->dtv_property_cache.transmission_mode = tvp->u.data;
+ break;
default:
r = -1;
}
diff --git a/include/linux/dvb/frontend.h b/include/linux/dvb/frontend.h
index 6675edfab3fc..5578fba208f4 100644
--- a/include/linux/dvb/frontend.h
+++ b/include/linux/dvb/frontend.h
@@ -271,8 +271,10 @@ struct dvb_frontend_event {
#define DTV_API_VERSION 35
#define DTV_CODE_RATE_HP 36
#define DTV_CODE_RATE_LP 37
+#define DTV_GUARD_INTERVAL 38
+#define DTV_TRANSMISSION_MODE 39
-#define DTV_MAX_COMMAND DTV_CODE_RATE_LP
+#define DTV_MAX_COMMAND DTV_TRANSMISSION_MODE
typedef enum fe_pilot {
PILOT_ON,