[media] cx25821: fix log_status, querycap
authorHans Verkuil <hans.verkuil@cisco.com>
Sat, 13 Apr 2013 09:06:18 +0000 (06:06 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 16 Apr 2013 20:59:56 +0000 (17:59 -0300)
log_status shouldn't print LOG STATUS lines, the core does that already.
Fix querycap version number and add device_caps support.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/pci/cx25821/cx25821-video.c

index 8ff8fc218f381d12318636004432fcf3db88a3ac..7cd888581f9e80c6d3c9005a891ff0c1849848c9 100644 (file)
@@ -923,21 +923,14 @@ static int vidioc_log_status(struct file *file, void *priv)
 {
        struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
        struct cx25821_fh *fh = priv;
-       char name[32 + 2];
-
-       struct sram_channel *sram_ch = dev->channels[fh->channel_id]
-                                                               .sram_channels;
+       struct sram_channel *sram_ch =
+               dev->channels[fh->channel_id].sram_channels;
        u32 tmp = 0;
 
-       snprintf(name, sizeof(name), "%s/2", dev->name);
-       pr_info("%s/2: ============  START LOG STATUS  ============\n",
-               dev->name);
        cx25821_call_all(dev, core, log_status);
        tmp = cx_read(sram_ch->dma_ctl);
        pr_info("Video input 0 is %s\n",
                (tmp & 0x11) ? "streaming" : "stopped");
-       pr_info("%s/2: =============  END LOG STATUS  =============\n",
-               dev->name);
        return 0;
 }
 
@@ -1027,13 +1020,19 @@ int cx25821_vidioc_querycap(struct file *file, void *priv,
                            struct v4l2_capability *cap)
 {
        struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
+       struct cx25821_fh *fh = priv;
+       const u32 cap_input = V4L2_CAP_VIDEO_CAPTURE |
+                       V4L2_CAP_READWRITE | V4L2_CAP_STREAMING;
+       const u32 cap_output = V4L2_CAP_VIDEO_OUTPUT;
 
        strcpy(cap->driver, "cx25821");
        strlcpy(cap->card, cx25821_boards[dev->board].name, sizeof(cap->card));
        sprintf(cap->bus_info, "PCIe:%s", pci_name(dev->pci));
-       cap->version = CX25821_VERSION_CODE;
-       cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_READWRITE |
-               V4L2_CAP_STREAMING;
+       if (fh->channel_id >= VID_CHANNEL_NUM)
+               cap->device_caps = cap_output;
+       else
+               cap->device_caps = cap_input;
+       cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
        return 0;
 }