mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-03 09:04:21 +08:00
media: subdev: add v4l2_subdev_get_fmt() helper function
Add v4l2_subdev_get_fmt() helper function which implements v4l2_subdev_pad_ops.get_fmt using active state. Subdev drivers that support active state and do not need to do anything special in their get_fmt op can use this helper directly for v4l2_subdev_pad_ops.get_fmt. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Reviewed-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
This commit is contained in:
parent
b2ac238724
commit
14a6fca77a
@ -1041,6 +1041,28 @@ void v4l2_subdev_cleanup(struct v4l2_subdev *sd)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(v4l2_subdev_cleanup);
|
||||
|
||||
#if defined(CONFIG_VIDEO_V4L2_SUBDEV_API)
|
||||
|
||||
int v4l2_subdev_get_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_state *state,
|
||||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
struct v4l2_mbus_framefmt *fmt;
|
||||
|
||||
if (format->pad >= sd->entity.num_pads)
|
||||
return -EINVAL;
|
||||
|
||||
fmt = v4l2_subdev_get_pad_format(sd, state, format->pad);
|
||||
if (!fmt)
|
||||
return -EINVAL;
|
||||
|
||||
format->format = *fmt;
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(v4l2_subdev_get_fmt);
|
||||
|
||||
#endif /* CONFIG_VIDEO_V4L2_SUBDEV_API */
|
||||
|
||||
#endif /* CONFIG_MEDIA_CONTROLLER */
|
||||
|
||||
void v4l2_subdev_init(struct v4l2_subdev *sd, const struct v4l2_subdev_ops *ops)
|
||||
|
@ -1303,6 +1303,27 @@ v4l2_subdev_lock_and_get_active_state(struct v4l2_subdev *sd)
|
||||
return sd->active_state;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_VIDEO_V4L2_SUBDEV_API)
|
||||
|
||||
/**
|
||||
* v4l2_subdev_get_fmt() - Fill format based on state
|
||||
* @sd: subdevice
|
||||
* @state: subdevice state
|
||||
* @format: pointer to &struct v4l2_subdev_format
|
||||
*
|
||||
* Fill @format->format field based on the information in the @format struct.
|
||||
*
|
||||
* This function can be used by the subdev drivers which support active state to
|
||||
* implement v4l2_subdev_pad_ops.get_fmt if the subdev driver does not need to
|
||||
* do anything special in their get_fmt op.
|
||||
*
|
||||
* Returns 0 on success, error value otherwise.
|
||||
*/
|
||||
int v4l2_subdev_get_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_state *state,
|
||||
struct v4l2_subdev_format *format);
|
||||
|
||||
#endif /* CONFIG_VIDEO_V4L2_SUBDEV_API */
|
||||
|
||||
#endif /* CONFIG_MEDIA_CONTROLLER */
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user