mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-10 07:00:48 +00:00
[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: Helen Mae Koike Fornazier <helen.koike@collabora.co.uk> Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
45c175c4ae
commit
47dfdb3a88
@ -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,
|
|||||||
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,
|
|||||||
*/
|
*/
|
||||||
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;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user