v4l2-compliance: fix RDS + CAP_READWRITE tests.
authorHans Verkuil <hans.verkuil@cisco.com>
Mon, 8 Apr 2013 10:40:51 +0000 (12:40 +0200)
committerHans Verkuil <hans.verkuil@cisco.com>
Mon, 8 Apr 2013 10:40:51 +0000 (12:40 +0200)
The READWRITE capability should only be set if RDS_BLOCK_IO is set.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
utils/v4l2-compliance/v4l2-compliance.cpp
utils/v4l2-compliance/v4l2-test-input-output.cpp

index 052f548..799b624 100644 (file)
@@ -258,11 +258,10 @@ static int testCap(struct node *node)
        const __u32 input_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_OVERLAY |
                        V4L2_CAP_VBI_CAPTURE | V4L2_CAP_SLICED_VBI_CAPTURE |
                        V4L2_CAP_VIDEO_CAPTURE_MPLANE | V4L2_CAP_HW_FREQ_SEEK |
-                       V4L2_CAP_RDS_CAPTURE | V4L2_CAP_TUNER;
+                       V4L2_CAP_TUNER;
        const __u32 output_caps = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_VIDEO_OUTPUT_MPLANE |
                        V4L2_CAP_VIDEO_OUTPUT_OVERLAY | V4L2_CAP_VBI_OUTPUT |
-                       V4L2_CAP_SLICED_VBI_OUTPUT | V4L2_CAP_MODULATOR |
-                       V4L2_CAP_RDS_OUTPUT;
+                       V4L2_CAP_SLICED_VBI_OUTPUT | V4L2_CAP_MODULATOR;
        const __u32 m2m_caps = V4L2_CAP_VIDEO_M2M | V4L2_CAP_VIDEO_M2M_MPLANE;
        const __u32 io_caps = V4L2_CAP_STREAMING | V4L2_CAP_READWRITE;
        const __u32 mplane_caps = V4L2_CAP_VIDEO_CAPTURE_MPLANE | V4L2_CAP_VIDEO_OUTPUT_MPLANE |
index 20d30f5..ed5acff 100644 (file)
@@ -117,9 +117,9 @@ static int checkTuner(struct node *node, const struct v4l2_tuner &tuner,
                         (V4L2_TUNER_CAP_RDS_BLOCK_IO | V4L2_TUNER_CAP_RDS_CONTROLS);
        if (have_rds ^ have_rds_method)
                return fail("V4L2_TUNER_CAP_RDS is set, but not V4L2_TUNER_CAP_RDS_* or vice versa\n");
-       if ((tuner.capability & V4L2_TUNER_CAP_RDS) &&
+       if ((tuner.capability & V4L2_TUNER_CAP_RDS_BLOCK_IO) &&
                        !(node->caps & V4L2_CAP_READWRITE))
-               return fail("V4L2_TUNER_CAP_RDS set, but not V4L2_CAP_READWRITE\n");
+               return fail("V4L2_TUNER_CAP_RDS_BLOCK_IO is set, but not V4L2_CAP_READWRITE\n");
        if (std == V4L2_STD_NTSC_M && (tuner.rxsubchans & V4L2_TUNER_SUB_LANG1))
                return fail("LANG1 subchan, but NTSC-M standard\n");
        if (tuner.audmode > V4L2_TUNER_MODE_LANG1_LANG2)
@@ -562,9 +562,9 @@ static int checkModulator(struct node *node, const struct v4l2_modulator &mod, u
                         (V4L2_TUNER_CAP_RDS_BLOCK_IO | V4L2_TUNER_CAP_RDS_CONTROLS);
        if (have_rds ^ have_rds_method)
                return fail("V4L2_TUNER_CAP_RDS is set, but not V4L2_TUNER_CAP_RDS_* or vice versa\n");
-       if ((mod.capability & V4L2_TUNER_CAP_RDS) &&
+       if ((mod.capability & V4L2_TUNER_CAP_RDS_BLOCK_IO) &&
                        !(node->caps & V4L2_CAP_READWRITE))
-               return fail("V4L2_TUNER_CAP_RDS set, but not V4L2_CAP_READWRITE\n");
+               return fail("V4L2_TUNER_CAP_RDS_BLOCK_IO is set, but not V4L2_CAP_READWRITE\n");
        return checkEnumFreqBands(node, mod.index, V4L2_TUNER_RADIO, mod.capability);
 }