[media] v4l: subdev: Extend default link validation to cover field order
The field order must match between the source and sink pads, or the sink pad field order must be NONE. This allows connecting an interlaced source to a bridge that has no hardware support for interlaced formats. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Tested-by: Enrico Butera <ebutera@users.sourceforge.net> Acked-by: Sakari Ailus <sakari.ailus@iki.fi> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
This commit is contained in:
parent
0e2a6b7f2b
commit
24acf8b211
|
@ -501,11 +501,20 @@ int v4l2_subdev_link_validate_default(struct v4l2_subdev *sd,
|
|||
struct v4l2_subdev_format *source_fmt,
|
||||
struct v4l2_subdev_format *sink_fmt)
|
||||
{
|
||||
/* The width, height and code must match. */
|
||||
if (source_fmt->format.width != sink_fmt->format.width
|
||||
|| source_fmt->format.height != sink_fmt->format.height
|
||||
|| source_fmt->format.code != sink_fmt->format.code)
|
||||
return -EINVAL;
|
||||
|
||||
/* The field order must match, or the sink field order must be NONE
|
||||
* to support interlaced hardware connected to bridges that support
|
||||
* progressive formats only.
|
||||
*/
|
||||
if (source_fmt->format.field != sink_fmt->format.field &&
|
||||
sink_fmt->format.field != V4L2_FIELD_NONE)
|
||||
return -EINVAL;
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(v4l2_subdev_link_validate_default);
|
||||
|
|
Loading…
Reference in a new issue