[media] tm6000: Do not use video buffers in radio mode
authorThierry Reding <thierry.reding@avionic-design.de>
Thu, 4 Aug 2011 07:14:15 +0000 (04:14 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Wed, 31 Aug 2011 20:21:24 +0000 (17:21 -0300)
If the radio device is opened there is no need to initialize the video
buffer queue because it is not used.

Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/staging/tm6000/tm6000-video.c

index df8e253..1e5ace0 100644 (file)
@@ -1530,13 +1530,13 @@ static int tm6000_open(struct file *file)
                dev->mode = TM6000_MODE_ANALOG;
        }
 
-       videobuf_queue_vmalloc_init(&fh->vb_vidq, &tm6000_video_qops,
-                       NULL, &dev->slock,
-                       fh->type,
-                       V4L2_FIELD_INTERLACED,
-                       sizeof(struct tm6000_buffer), fh, &dev->lock);
-
-       if (fh->radio) {
+       if (!fh->radio) {
+               videobuf_queue_vmalloc_init(&fh->vb_vidq, &tm6000_video_qops,
+                               NULL, &dev->slock,
+                               fh->type,
+                               V4L2_FIELD_INTERLACED,
+                               sizeof(struct tm6000_buffer), fh, &dev->lock);
+       } else {
                dprintk(dev, V4L2_DEBUG_OPEN, "video_open: setting radio device\n");
                dev->input = 5;
                tm6000_set_audio_rinput(dev);
@@ -1608,7 +1608,9 @@ static int tm6000_release(struct file *file)
                int err;
 
                tm6000_uninit_isoc(dev);
-               videobuf_mmap_free(&fh->vb_vidq);
+
+               if (!fh->radio)
+                       videobuf_mmap_free(&fh->vb_vidq);
 
                err = tm6000_reset(dev);
                if (err < 0)