Commit 47dfdb3a authored by Helen Mae Koike Fornazier's avatar Helen Mae Koike Fornazier Committed by Mauro Carvalho Chehab

[media] media: change pipeline validation return error

According to the V4L2 API, the VIDIOC_STREAMON ioctl should return EPIPE
if there is a format mismatch in the pipeline configuration.

As the .vidioc_streamon in the v4l2_ioctl_ops usually forwards the error
caused by the v4l2_subdev_link_validate_default (if it is in use), it
should return -EPIPE when it detect the mismatch.

When an entity is connected to a non enabled link,
media_entity_pipeline_start should return -ENOLINK, as the link does not
exist.
Signed-off-by: default avatarHelen Mae Koike Fornazier <helen.koike@collabora.co.uk>
Acked-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 45c175c4
...@@ -445,7 +445,7 @@ __must_check int __media_entity_pipeline_start(struct media_entity *entity, ...@@ -445,7 +445,7 @@ __must_check int __media_entity_pipeline_start(struct media_entity *entity,
bitmap_or(active, active, has_no_links, entity->num_pads); bitmap_or(active, active, has_no_links, entity->num_pads);
if (!bitmap_full(active, entity->num_pads)) { if (!bitmap_full(active, entity->num_pads)) {
ret = -EPIPE; ret = -ENOLINK;
dev_dbg(entity->graph_obj.mdev->dev, dev_dbg(entity->graph_obj.mdev->dev,
"\"%s\":%u must be connected by an enabled link\n", "\"%s\":%u must be connected by an enabled link\n",
entity->name, entity->name,
......
...@@ -510,7 +510,7 @@ int v4l2_subdev_link_validate_default(struct v4l2_subdev *sd, ...@@ -510,7 +510,7 @@ int v4l2_subdev_link_validate_default(struct v4l2_subdev *sd,
if (source_fmt->format.width != sink_fmt->format.width if (source_fmt->format.width != sink_fmt->format.width
|| source_fmt->format.height != sink_fmt->format.height || source_fmt->format.height != sink_fmt->format.height
|| source_fmt->format.code != sink_fmt->format.code) || source_fmt->format.code != sink_fmt->format.code)
return -EINVAL; return -EPIPE;
/* The field order must match, or the sink field order must be NONE /* The field order must match, or the sink field order must be NONE
* to support interlaced hardware connected to bridges that support * to support interlaced hardware connected to bridges that support
...@@ -518,7 +518,7 @@ int v4l2_subdev_link_validate_default(struct v4l2_subdev *sd, ...@@ -518,7 +518,7 @@ int v4l2_subdev_link_validate_default(struct v4l2_subdev *sd,
*/ */
if (source_fmt->format.field != sink_fmt->format.field && if (source_fmt->format.field != sink_fmt->format.field &&
sink_fmt->format.field != V4L2_FIELD_NONE) sink_fmt->format.field != V4L2_FIELD_NONE)
return -EINVAL; return -EPIPE;
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment