Re: [PATCH v2 15/18] media: i2c: imx219: Implement .init_cfg() using .set_fmt()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 21 Aug 2023 at 23:30, Laurent Pinchart
<laurent.pinchart@xxxxxxxxxxxxxxxx> wrote:
>
> Instead of duplicating the logical implemented in the .set_fmt()
> operation in .init_cfg(), call .set_fmt() directly. This centralize the

s/centralize/centralizes

> format and crop rectangle calculations in a single place.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>

Reviewed-by: Dave Stevenson <dave.stevenson@xxxxxxxxxxxxxxx>

> ---
>  drivers/media/i2c/imx219.c | 40 +++++++++++++++++---------------------
>  1 file changed, 18 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c
> index da2a8d0210fa..646d73d1e6a3 100644
> --- a/drivers/media/i2c/imx219.c
> +++ b/drivers/media/i2c/imx219.c
> @@ -785,28 +785,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)
> @@ -925,6 +903,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,
> --
> Regards,
>
> Laurent Pinchart
>



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux