mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-16 18:08:20 +00:00
media: i2c: imx219: Implement .init_cfg() using .set_fmt()
Instead of duplicating the logical implemented in the .set_fmt() operation in .init_cfg(), call .set_fmt() directly. This centralizes the format and crop rectangle calculations in a single place. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
This commit is contained in:
parent
d83b40ef9c
commit
eef9c161d0
@ -784,28 +784,6 @@ static void imx219_update_pad_format(struct imx219 *imx219,
|
||||
fmt->xfer_func = V4L2_XFER_FUNC_NONE;
|
||||
}
|
||||
|
||||
static int imx219_init_cfg(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_state *state)
|
||||
{
|
||||
struct imx219 *imx219 = to_imx219(sd);
|
||||
struct v4l2_mbus_framefmt *format;
|
||||
struct v4l2_rect *crop;
|
||||
|
||||
/* Initialize the format. */
|
||||
format = v4l2_subdev_get_pad_format(sd, state, 0);
|
||||
imx219_update_pad_format(imx219, &supported_modes[0], format,
|
||||
MEDIA_BUS_FMT_SRGGB10_1X10);
|
||||
|
||||
/* Initialize the crop rectangle. */
|
||||
crop = v4l2_subdev_get_pad_crop(sd, state, 0);
|
||||
crop->top = IMX219_PIXEL_ARRAY_TOP;
|
||||
crop->left = IMX219_PIXEL_ARRAY_LEFT;
|
||||
crop->width = IMX219_PIXEL_ARRAY_WIDTH;
|
||||
crop->height = IMX219_PIXEL_ARRAY_HEIGHT;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int imx219_enum_mbus_code(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_state *sd_state,
|
||||
struct v4l2_subdev_mbus_code_enum *code)
|
||||
@ -924,6 +902,24 @@ static int imx219_get_selection(struct v4l2_subdev *sd,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static int imx219_init_cfg(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_state *state)
|
||||
{
|
||||
struct v4l2_subdev_format fmt = {
|
||||
.which = V4L2_SUBDEV_FORMAT_TRY,
|
||||
.pad = 0,
|
||||
.format = {
|
||||
.code = MEDIA_BUS_FMT_SRGGB10_1X10,
|
||||
.width = supported_modes[0].width,
|
||||
.height = supported_modes[0].height,
|
||||
},
|
||||
};
|
||||
|
||||
imx219_set_pad_format(sd, state, &fmt);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct v4l2_subdev_core_ops imx219_core_ops = {
|
||||
.subscribe_event = v4l2_ctrl_subdev_subscribe_event,
|
||||
.unsubscribe_event = v4l2_event_subdev_unsubscribe,
|
||||
|
Loading…
x
Reference in New Issue
Block a user