Add a function for obtaining the v4l2 sub-device for which the v4l2 control related ioctl is predestined. Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx> Acked-by: Kyungmin Park <kyungmin.park@xxxxxxxxxxx> --- utils/media-ctl/libv4l2subdev.c | 14 ++++++++++++++ utils/media-ctl/v4l2subdev.h | 15 +++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/utils/media-ctl/libv4l2subdev.c b/utils/media-ctl/libv4l2subdev.c index 9d48ac1..14e9423 100644 --- a/utils/media-ctl/libv4l2subdev.c +++ b/utils/media-ctl/libv4l2subdev.c @@ -1052,3 +1052,17 @@ bool v4l2_subdev_has_v4l2_control_redir(struct media_device *media, return false; } + +struct media_entity *v4l2_subdev_get_pipeline_entity_by_cid(struct media_device *media, + int cid) +{ + struct media_entity *entity = media->pipeline; + + while (entity) { + if (v4l2_subdev_has_v4l2_control_redir(media, entity, cid)) + return entity; + entity = entity->next; + } + + return NULL; +} diff --git a/utils/media-ctl/v4l2subdev.h b/utils/media-ctl/v4l2subdev.h index be2d82e..607ec50 100644 --- a/utils/media-ctl/v4l2subdev.h +++ b/utils/media-ctl/v4l2subdev.h @@ -394,4 +394,19 @@ enum v4l2_subdev_fmt_mismatch v4l2_subdev_format_compare( bool v4l2_subdev_has_v4l2_control_redir(struct media_device *media, struct media_entity *entity, int ctrl_id); +/** + * @brief Get the first pipeline entity supporting the control + * @param media - media device. + * @param cid - v4l2 control identifier. + * + * Get the first entity in the media device pipeline, + * for which v4l2_control with cid is to be redirected + * + * @return associated entity if defined, or NULL if the + * control redirection wasn't defined for any entity + * in the pipeline + */ +struct media_entity *v4l2_subdev_get_pipeline_entity_by_cid( + struct media_device *media, int cid); + #endif -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html