media: vivid: set num_in/outputs to 0 if not supported
authorHans Verkuil <hverkuil-cisco@xs4all.nl>
Mon, 17 Oct 2022 14:09:06 +0000 (15:09 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 3 Nov 2022 14:59:17 +0000 (23:59 +0900)
[ Upstream commit 69d78a80da4ef12faf2a6f9cfa2097ab4ac43983 ]

If node_types does not have video/vbi/meta inputs or outputs,
then set num_inputs/num_outputs to 0 instead of 1.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Fixes: 0c90f649d2f5 (media: vivid: add vivid_create_queue() helper)
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/media/test-drivers/vivid/vivid-core.c

index e7cc70a..065bdc3 100644 (file)
@@ -932,8 +932,12 @@ static int vivid_detect_feature_set(struct vivid_dev *dev, int inst,
 
        /* how many inputs do we have and of what type? */
        dev->num_inputs = num_inputs[inst];
-       if (dev->num_inputs < 1)
-               dev->num_inputs = 1;
+       if (node_type & 0x20007) {
+               if (dev->num_inputs < 1)
+                       dev->num_inputs = 1;
+       } else {
+               dev->num_inputs = 0;
+       }
        if (dev->num_inputs >= MAX_INPUTS)
                dev->num_inputs = MAX_INPUTS;
        for (i = 0; i < dev->num_inputs; i++) {
@@ -950,8 +954,12 @@ static int vivid_detect_feature_set(struct vivid_dev *dev, int inst,
 
        /* how many outputs do we have and of what type? */
        dev->num_outputs = num_outputs[inst];
-       if (dev->num_outputs < 1)
-               dev->num_outputs = 1;
+       if (node_type & 0x40300) {
+               if (dev->num_outputs < 1)
+                       dev->num_outputs = 1;
+       } else {
+               dev->num_outputs = 0;
+       }
        if (dev->num_outputs >= MAX_OUTPUTS)
                dev->num_outputs = MAX_OUTPUTS;
        for (i = 0; i < dev->num_outputs; i++) {