[media] ivtv: fill in service_set
authorHans Verkuil <hans.verkuil@cisco.com>
Fri, 29 Jul 2011 10:21:33 +0000 (07:21 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 6 Sep 2011 17:51:27 +0000 (14:51 -0300)
The service_set field of struct v4l2_sliced_vbi_cap was never filled in.
The v4l2-compliance tool complained about this, so this is now fixed.

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

index 3e5c090..ecafa69 100644 (file)
@@ -1203,9 +1203,7 @@ static int ivtv_g_sliced_vbi_cap(struct file *file, void *fh, struct v4l2_sliced
                                        cap->service_lines[f][l] = set;
                        }
                }
-               return 0;
-       }
-       if (cap->type == V4L2_BUF_TYPE_SLICED_VBI_OUTPUT) {
+       } else if (cap->type == V4L2_BUF_TYPE_SLICED_VBI_OUTPUT) {
                if (!(itv->v4l2_cap & V4L2_CAP_SLICED_VBI_OUTPUT))
                        return -EINVAL;
                if (itv->is_60hz) {
@@ -1215,9 +1213,16 @@ static int ivtv_g_sliced_vbi_cap(struct file *file, void *fh, struct v4l2_sliced
                        cap->service_lines[0][23] = V4L2_SLICED_WSS_625;
                        cap->service_lines[0][16] = V4L2_SLICED_VPS;
                }
-               return 0;
+       } else {
+               return -EINVAL;
        }
-       return -EINVAL;
+
+       set = 0;
+       for (f = 0; f < 2; f++)
+               for (l = 0; l < 24; l++)
+                       set |= cap->service_lines[f][l];
+       cap->service_set = set;
+       return 0;
 }
 
 static int ivtv_g_enc_index(struct file *file, void *fh, struct v4l2_enc_idx *idx)