[media] tm6000: add radio capabilities
authorStefan Ringel <stefan.ringel@arcor.de>
Mon, 9 May 2011 19:53:49 +0000 (16:53 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Fri, 20 May 2011 22:59:23 +0000 (19:59 -0300)
add radio capabilities

Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/staging/tm6000/tm6000-cards.c
drivers/staging/tm6000/tm6000-video.c
drivers/staging/tm6000/tm6000.h

index 6e51486..31ccd2f 100644 (file)
@@ -254,6 +254,7 @@ struct tm6000_board tm6000_boards[] = {
                        .has_zl10353    = 1,
                        .has_eeprom     = 1,
                        .has_remote     = 1,
+                       .has_radio      = 1.
                        .has_input_comp = 1,
                        .has_input_svid = 1,
                },
@@ -276,6 +277,7 @@ struct tm6000_board tm6000_boards[] = {
                        .has_zl10353    = 0,
                        .has_eeprom     = 1,
                        .has_remote     = 1,
+                       .has_radio      = 1,
                        .has_input_comp = 1,
                        .has_input_svid = 1,
                },
@@ -350,6 +352,7 @@ struct tm6000_board tm6000_boards[] = {
                        .has_zl10353    = 1,
                        .has_eeprom     = 1,
                        .has_remote     = 0,
+                       .has_radio      = 1,
                        .has_input_comp = 0,
                        .has_input_svid = 0,
                },
@@ -372,6 +375,7 @@ struct tm6000_board tm6000_boards[] = {
                        .has_zl10353    = 0,
                        .has_eeprom     = 1,
                        .has_remote     = 0,
+                       .has_radio      = 1,
                        .has_input_comp = 0,
                        .has_input_svid = 0,
                },
index f82edfa..a434a32 100644 (file)
@@ -1730,24 +1730,26 @@ int tm6000_v4l2_register(struct tm6000_core *dev)
        printk(KERN_INFO "%s: registered device %s\n",
               dev->name, video_device_node_name(dev->vfd));
 
-       dev->radio_dev = vdev_init(dev, &tm6000_radio_template,
-                                                  "radio");
-       if (!dev->radio_dev) {
-               printk(KERN_INFO "%s: can't register radio device\n",
-                      dev->name);
-               return ret; /* FIXME release resource */
-       }
+       if (dev->caps.has_radio) {
+               dev->radio_dev = vdev_init(dev, &tm6000_radio_template,
+                                                          "radio");
+               if (!dev->radio_dev) {
+                       printk(KERN_INFO "%s: can't register radio device\n",
+                              dev->name);
+                       return ret; /* FIXME release resource */
+               }
 
-       ret = video_register_device(dev->radio_dev, VFL_TYPE_RADIO,
-                                   radio_nr);
-       if (ret < 0) {
-               printk(KERN_INFO "%s: can't register radio device\n",
-                      dev->name);
-               return ret; /* FIXME release resource */
-       }
+               ret = video_register_device(dev->radio_dev, VFL_TYPE_RADIO,
+                                           radio_nr);
+               if (ret < 0) {
+                       printk(KERN_INFO "%s: can't register radio device\n",
+                              dev->name);
+                       return ret; /* FIXME release resource */
+               }
 
-       printk(KERN_INFO "%s: registered device %s\n",
-              dev->name, video_device_node_name(dev->radio_dev));
+               printk(KERN_INFO "%s: registered device %s\n",
+                      dev->name, video_device_node_name(dev->radio_dev));
+       }
 
        printk(KERN_INFO "Trident TVMaster TM5600/TM6000/TM6010 USB2 board (Load status: %d)\n", ret);
        return ret;
index fdd6d30..8cdc992 100644 (file)
@@ -129,6 +129,7 @@ struct tm6000_capabilities {
        unsigned int    has_zl10353:1;
        unsigned int    has_eeprom:1;
        unsigned int    has_remote:1;
+       unsigned int    has_radio:1;
        unsigned int    has_input_comp:1;
        unsigned int    has_input_svid:1;
 };