Pārlūkot izejas kodu

V4L/DVB (9182): S2API: Added support for DTV_HIERARCHY

A user tuning DVB-T via the S2API reports that this was not implemented,
and his tuning was failing.

Signed-off-by: Steven Toth <stoth@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Steven Toth 16 gadi atpakaļ
vecāks
revīzija
ef526f4246

+ 16 - 0
drivers/media/dvb/dvb-core/dvb_frontend.c

@@ -830,6 +830,11 @@ struct dtv_cmds_h dtv_cmds[] = {
 		.cmd	= DTV_DELIVERY_SYSTEM,
 		.set	= 1,
 	},
+	[DTV_HIERARCHY] = {
+		.name	= "DTV_HIERARCHY",
+		.cmd	= DTV_HIERARCHY,
+		.set	= 1,
+	},
 	[DTV_CODE_RATE_HP] = {
 		.name	= "DTV_CODE_RATE_HP",
 		.cmd	= DTV_CODE_RATE_HP,
@@ -882,6 +887,11 @@ struct dtv_cmds_h dtv_cmds[] = {
 		.cmd	= DTV_TRANSMISSION_MODE,
 		.set	= 0,
 	},
+	[DTV_HIERARCHY] = {
+		.name	= "DTV_HIERARCHY",
+		.cmd	= DTV_HIERARCHY,
+		.set	= 0,
+	},
 };
 
 void dtv_property_dump(struct dtv_property *tvp)
@@ -1173,6 +1183,9 @@ int dtv_property_process_get(struct dvb_frontend *fe, struct dtv_property *tvp,
 	case DTV_TRANSMISSION_MODE:
 		tvp->u.data = fe->dtv_property_cache.transmission_mode;
 		break;
+	case DTV_HIERARCHY:
+		tvp->u.data = fe->dtv_property_cache.hierarchy;
+		break;
 	default:
 		r = -1;
 	}
@@ -1266,6 +1279,9 @@ int dtv_property_process_set(struct dvb_frontend *fe, struct dtv_property *tvp,
 	case DTV_TRANSMISSION_MODE:
 		fe->dtv_property_cache.transmission_mode = tvp->u.data;
 		break;
+	case DTV_HIERARCHY:
+		fe->dtv_property_cache.hierarchy = tvp->u.data;
+		break;
 	default:
 		r = -1;
 	}

+ 2 - 1
include/linux/dvb/frontend.h

@@ -273,8 +273,9 @@ struct dvb_frontend_event {
 #define DTV_CODE_RATE_LP			37
 #define DTV_GUARD_INTERVAL			38
 #define DTV_TRANSMISSION_MODE			39
+#define DTV_HIERARCHY				40
 
-#define DTV_MAX_COMMAND				DTV_TRANSMISSION_MODE
+#define DTV_MAX_COMMAND				DTV_HIERARCHY
 
 typedef enum fe_pilot {
 	PILOT_ON,