浏览代码

V4L/DVB (9072): S2API: Add DTV_API_VERSION command

This allows application developers to query the dvb-core API version
dynamically, helping developers understand whether certain features
will be available.

Signed-off-by: Steven Toth <stoth@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Steven Toth 16 年之前
父节点
当前提交
eacf8d8d6b
共有 3 个文件被更改,包括 12 次插入2 次删除
  1. 9 0
      drivers/media/dvb/dvb-core/dvb_frontend.c
  2. 1 0
      include/linux/dvb/frontend.h
  3. 2 2
      include/linux/dvb/version.h

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

@@ -40,6 +40,7 @@
 
 #include "dvb_frontend.h"
 #include "dvbdev.h"
+#include <linux/dvb/version.h>
 
 static int dvb_frontend_debug;
 static int dvb_shutdown_timeout;
@@ -836,6 +837,11 @@ struct dtv_cmds_h dtv_cmds[] = {
 		.set	= 0,
 		.buffer	= 1,
 	},
+	[DTV_API_VERSION] = {
+		.name	= "DTV_API_VERSION",
+		.cmd	= DTV_API_VERSION,
+		.set	= 0,
+	},
 };
 
 void dtv_property_dump(struct dtv_property *tvp)
@@ -1104,6 +1110,9 @@ int dtv_property_process_get(struct dvb_frontend *fe, struct dtv_property *tvp,
 	case DTV_TONE:
 		tvp->u.data = fe->dtv_property_cache.sectone;
 		break;
+	case DTV_API_VERSION:
+		tvp->u.data = (DVB_API_VERSION << 8) | DVB_API_VERSION_MINOR;
+		break;
 	default:
 		r = -1;
 	}

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

@@ -268,6 +268,7 @@ struct dvb_frontend_event {
 #define DTV_FE_CAPABILITY	16
 #define DTV_DELIVERY_SYSTEM	17
 
+#define DTV_API_VERSION				35
 
 typedef enum fe_pilot {
 	PILOT_ON,

+ 2 - 2
include/linux/dvb/version.h

@@ -23,7 +23,7 @@
 #ifndef _DVBVERSION_H_
 #define _DVBVERSION_H_
 
-#define DVB_API_VERSION 3
-#define DVB_API_VERSION_MINOR 2
+#define DVB_API_VERSION 5
+#define DVB_API_VERSION_MINOR 0
 
 #endif /*_DVBVERSION_H_*/