V4L/DVB (9181): S2API: Add support fot DTV_GUARD_INTERVAL and DTV_TRANSMISSION_MODE
authorSteven Toth <stoth@linuxtv.org>
Tue, 7 Oct 2008 00:56:59 +0000 (21:56 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 13 Oct 2008 14:28:05 +0000 (12:28 -0200)
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>
drivers/media/dvb/dvb-core/dvb_frontend.c
include/linux/dvb/frontend.h

index 104f40b7171d323ea1db22cb583c41eef848f900..0ddc2f4ecd4a08a22e31bf3d0c465921899cd3dc 100644 (file)
@@ -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;
        }
index 6675edfab3fcf7150802c416289d52a67f6542e5..5578fba208f457f8ccb3d49e6937efd9d35c68ab 100644 (file)
@@ -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,