[media] v4l: Don't warn during link validation when encountering a V4L2 devnode
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Sat, 20 Oct 2012 20:47:22 +0000 (17:47 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Thu, 22 Nov 2012 14:09:49 +0000 (12:09 -0200)
v4l2_subdev_link_validate_get_format() retrieves the remote pad format
depending on the entity type and prints a warning if the entity type is
not supported. The type check doesn't take the subtype into account, and
thus always prints a warning for device node types, even when supported.
Fix it.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Sakari Ailus <sakari.ailus@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/v4l2-core/v4l2-subdev.c

index dced41c1d993d78f72c20f0ac00592154393b206..996c248dea42bc501497b2b6328321c456373d3b 100644 (file)
@@ -412,20 +412,20 @@ static int
 v4l2_subdev_link_validate_get_format(struct media_pad *pad,
                                     struct v4l2_subdev_format *fmt)
 {
-       switch (media_entity_type(pad->entity)) {
-       case MEDIA_ENT_T_V4L2_SUBDEV:
+       if (media_entity_type(pad->entity) == MEDIA_ENT_T_V4L2_SUBDEV) {
+               struct v4l2_subdev *sd =
+                       media_entity_to_v4l2_subdev(pad->entity);
+
                fmt->which = V4L2_SUBDEV_FORMAT_ACTIVE;
                fmt->pad = pad->index;
-               return v4l2_subdev_call(media_entity_to_v4l2_subdev(
-                                               pad->entity),
-                                       pad, get_fmt, NULL, fmt);
-       default:
-               WARN(1, "Driver bug! Wrong media entity type %d, entity %s\n",
-                    media_entity_type(pad->entity), pad->entity->name);
-               /* Fall through */
-       case MEDIA_ENT_T_DEVNODE_V4L:
-               return -EINVAL;
+               return v4l2_subdev_call(sd, pad, get_fmt, NULL, fmt);
        }
+
+       WARN(pad->entity->type != MEDIA_ENT_T_DEVNODE_V4L,
+            "Driver bug! Wrong media entity type 0x%08x, entity %s\n",
+            pad->entity->type, pad->entity->name);
+
+       return -EINVAL;
 }
 
 int v4l2_subdev_link_validate(struct media_link *link)