mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 08:03:01 +09:00
media: subdev: add v4l2_subdev_routing_validate() helper
Add a v4l2_subdev_routing_validate() helper for verifying routing for common cases like only allowing non-overlapping 1-to-1 streams. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
This commit is contained in:
committed by
Mauro Carvalho Chehab
parent
5b0d85b379
commit
69c0fe7ae7
@@ -1584,6 +1584,45 @@ struct v4l2_mbus_framefmt *
|
||||
v4l2_subdev_state_get_opposite_stream_format(struct v4l2_subdev_state *state,
|
||||
u32 pad, u32 stream);
|
||||
|
||||
/**
|
||||
* enum v4l2_subdev_routing_restriction - Subdevice internal routing restrictions
|
||||
*
|
||||
* @V4L2_SUBDEV_ROUTING_NO_1_TO_N:
|
||||
* an input stream may not be routed to multiple output streams (stream
|
||||
* duplication)
|
||||
* @V4L2_SUBDEV_ROUTING_NO_N_TO_1:
|
||||
* multiple input streams may not be routed to the same output stream
|
||||
* (stream merging)
|
||||
* @V4L2_SUBDEV_ROUTING_NO_STREAM_MIX:
|
||||
* streams on the same pad may not be routed to streams on different pads
|
||||
* @V4L2_SUBDEV_ROUTING_ONLY_1_TO_1:
|
||||
* only non-overlapping 1-to-1 stream routing is allowed (a combination of
|
||||
* @V4L2_SUBDEV_ROUTING_NO_1_TO_N and @V4L2_SUBDEV_ROUTING_NO_N_TO_1)
|
||||
*/
|
||||
enum v4l2_subdev_routing_restriction {
|
||||
V4L2_SUBDEV_ROUTING_NO_1_TO_N = BIT(0),
|
||||
V4L2_SUBDEV_ROUTING_NO_N_TO_1 = BIT(1),
|
||||
V4L2_SUBDEV_ROUTING_NO_STREAM_MIX = BIT(2),
|
||||
V4L2_SUBDEV_ROUTING_ONLY_1_TO_1 =
|
||||
V4L2_SUBDEV_ROUTING_NO_1_TO_N |
|
||||
V4L2_SUBDEV_ROUTING_NO_N_TO_1,
|
||||
};
|
||||
|
||||
/**
|
||||
* v4l2_subdev_routing_validate() - Verify that routes comply with driver
|
||||
* constraints
|
||||
* @sd: The subdevice
|
||||
* @routing: Routing to verify
|
||||
* @disallow: Restrictions on routes
|
||||
*
|
||||
* This verifies that the given routing complies with the @disallow constraints.
|
||||
*
|
||||
* Returns 0 on success, error value otherwise.
|
||||
*/
|
||||
int v4l2_subdev_routing_validate(struct v4l2_subdev *sd,
|
||||
const struct v4l2_subdev_krouting *routing,
|
||||
enum v4l2_subdev_routing_restriction disallow);
|
||||
|
||||
#endif /* CONFIG_VIDEO_V4L2_SUBDEV_API */
|
||||
|
||||
#endif /* CONFIG_MEDIA_CONTROLLER */
|
||||
|
||||
Reference in New Issue
Block a user