]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
media: dvbdev: convert DVB device types into an enum
authorMauro Carvalho Chehab <mchehab@s-opensource.com>
Tue, 19 Sep 2017 18:22:19 +0000 (14:22 -0400)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Wed, 11 Oct 2017 17:00:44 +0000 (13:00 -0400)
Enums can be documented via kernel-doc. So, convert the
DVB_DEVICE_* macros to an enum.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/dvb-core/dvbdev.c
drivers/media/dvb-core/dvbdev.h

index 41aad0f99d73c43fe1ab997e4fad93df6ba2b9ec..a53eb53a4fd5a74f57784c3830c393168aea8e27 100644 (file)
@@ -51,8 +51,15 @@ static LIST_HEAD(dvb_adapter_list);
 static DEFINE_MUTEX(dvbdev_register_lock);
 
 static const char * const dnames[] = {
-       "video", "audio", "sec", "frontend", "demux", "dvr", "ca",
-       "net", "osd"
+       [DVB_DEVICE_VIDEO] =            "video",
+       [DVB_DEVICE_AUDIO] =            "audio",
+       [DVB_DEVICE_SEC] =              "sec",
+       [DVB_DEVICE_FRONTEND] =         "frontend",
+       [DVB_DEVICE_DEMUX] =            "demux",
+       [DVB_DEVICE_DVR] =              "dvr",
+       [DVB_DEVICE_CA] =               "ca",
+       [DVB_DEVICE_NET] =              "net",
+       [DVB_DEVICE_OSD] =              "osd"
 };
 
 #ifdef CONFIG_DVB_DYNAMIC_MINORS
@@ -60,7 +67,24 @@ static const char * const dnames[] = {
 #define DVB_MAX_IDS            MAX_DVB_MINORS
 #else
 #define DVB_MAX_IDS            4
-#define nums2minor(num, type, id)      ((num << 6) | (id << 4) | type)
+
+static int nums2minor(int num, enum dvb_device_type type, int id)
+{
+       int n = (num << 6) | (id << 4);
+
+       switch (type) {
+       case DVB_DEVICE_VIDEO:          return n;
+       case DVB_DEVICE_AUDIO:          return n | 1;
+       case DVB_DEVICE_SEC:            return n | 2;
+       case DVB_DEVICE_FRONTEND:       return n | 3;
+       case DVB_DEVICE_DEMUX:          return n | 4;
+       case DVB_DEVICE_DVR:            return n | 5;
+       case DVB_DEVICE_CA:             return n | 6;
+       case DVB_DEVICE_NET:            return n | 7;
+       case DVB_DEVICE_OSD:            return n | 8;
+       }
+}
+
 #define MAX_DVB_MINORS         (DVB_MAX_ADAPTERS*64)
 #endif
 
@@ -426,8 +450,8 @@ static int dvb_register_media_device(struct dvb_device *dvbdev,
 }
 
 int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
-                       const struct dvb_device *template, void *priv, int type,
-                       int demux_sink_pads)
+                       const struct dvb_device *template, void *priv,
+                       enum dvb_device_type type, int demux_sink_pads)
 {
        struct dvb_device *dvbdev;
        struct file_operations *dvbdevfops;
index 49189392cf3b9c22907ff9ff17c610a4b86a4ff3..53058da83873249725460bbc6ff820c738365ce8 100644 (file)
 
 #define DVB_UNSET (-1)
 
-#define DVB_DEVICE_VIDEO      0
-#define DVB_DEVICE_AUDIO      1
-#define DVB_DEVICE_SEC        2
-#define DVB_DEVICE_FRONTEND   3
-#define DVB_DEVICE_DEMUX      4
-#define DVB_DEVICE_DVR        5
-#define DVB_DEVICE_CA         6
-#define DVB_DEVICE_NET        7
-#define DVB_DEVICE_OSD        8
+/* List of DVB device types */
+
+/**
+ * enum dvb_device_type - type of the Digital TV device
+ *
+ * @DVB_DEVICE_SEC:            Digital TV standalone Common Interface (CI)
+ * @DVB_DEVICE_FRONTEND:       Digital TV frontend.
+ * @DVB_DEVICE_DEMUX:          Digital TV demux.
+ * @DVB_DEVICE_DVR:            Digital TV digital video record (DVR).
+ * @DVB_DEVICE_CA:             Digital TV Conditional Access (CA).
+ * @DVB_DEVICE_NET:            Digital TV network.
+ *
+ * @DVB_DEVICE_VIDEO:          Digital TV video decoder.
+ *                             Deprecated. Used only on av7110-av.
+ * @DVB_DEVICE_AUDIO:          Digital TV audio decoder.
+ *                             Deprecated. Used only on av7110-av.
+ * @DVB_DEVICE_OSD:            Digital TV On Screen Display (OSD).
+ *                             Deprecated. Used only on av7110.
+ */
+enum dvb_device_type {
+       DVB_DEVICE_SEC,
+       DVB_DEVICE_FRONTEND,
+       DVB_DEVICE_DEMUX,
+       DVB_DEVICE_DVR,
+       DVB_DEVICE_CA,
+       DVB_DEVICE_NET,
+
+       DVB_DEVICE_VIDEO,
+       DVB_DEVICE_AUDIO,
+       DVB_DEVICE_OSD,
+};
 
 #define DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr) \
        static short adapter_nr[] = \
@@ -104,8 +126,7 @@ struct dvb_adapter {
  * @list_head: List head with all DVB devices
  * @fops:      pointer to struct file_operations
  * @adapter:   pointer to the adapter that holds this device node
- * @type:      type of the device: DVB_DEVICE_SEC, DVB_DEVICE_FRONTEND,
- *             DVB_DEVICE_DEMUX, DVB_DEVICE_DVR, DVB_DEVICE_CA, DVB_DEVICE_NET
+ * @type:      type of the device, as defined by &enum dvb_device_type.
  * @minor:     devnode minor number. Major number is always DVB_MAJOR.
  * @id:                device ID number, inside the adapter
  * @readers:   Initialized by the caller. Each call to open() in Read Only mode
@@ -135,7 +156,7 @@ struct dvb_device {
        struct list_head list_head;
        const struct file_operations *fops;
        struct dvb_adapter *adapter;
-       int type;
+       enum dvb_device_type type;
        int minor;
        u32 id;
 
@@ -194,9 +215,7 @@ int dvb_unregister_adapter(struct dvb_adapter *adap);
  *             stored
  * @template:  Template used to create &pdvbdev;
  * @priv:      private data
- * @type:      type of the device: %DVB_DEVICE_SEC, %DVB_DEVICE_FRONTEND,
- *             %DVB_DEVICE_DEMUX, %DVB_DEVICE_DVR, %DVB_DEVICE_CA,
- *             %DVB_DEVICE_NET
+ * @type:      type of the device, as defined by &enum dvb_device_type.
  * @demux_sink_pads: Number of demux outputs, to be used to create the TS
  *             outputs via the Media Controller.
  */
@@ -204,7 +223,7 @@ int dvb_register_device(struct dvb_adapter *adap,
                        struct dvb_device **pdvbdev,
                        const struct dvb_device *template,
                        void *priv,
-                       int type,
+                       enum dvb_device_type type,
                        int demux_sink_pads);
 
 /**