Re: [PATCH 2/8] media: imx: Forward type of hardware implementation
From: Laurent Pinchart
Date: Fri Feb 04 2022 - 22:41:49 EST
Hi Alexander and Dorota,
Thank you for the patch.
On Fri, Feb 04, 2022 at 01:15:08PM +0100, Alexander Stein wrote:
> From: Dorota Czaplejewicz <dorota.czaplejewicz@xxxxxxx>
>
> Pass down the hardware type so imx_media_mbus_fmt_to_pix_fmt can do
> the actual switch.
>
> Signed-off-by: Dorota Czaplejewicz <dorota.czaplejewicz@xxxxxxx>
> Signed-off-by: Alexander Stein <alexander.stein@xxxxxxxxxxxxxxx>
Turning the bool into an enum as mentioned in the review of 1/8,
Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> ---
> Changes in comparison to original commit from Dorota:
> * is_imx56 is used instead of enum
>
> drivers/staging/media/imx/imx-media-capture.c | 15 +++++++++------
> drivers/staging/media/imx/imx-media-utils.c | 3 ++-
> drivers/staging/media/imx/imx-media.h | 3 ++-
> 3 files changed, 13 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/staging/media/imx/imx-media-capture.c b/drivers/staging/media/imx/imx-media-capture.c
> index b61bf9f8ddf8..8aad6d6d350e 100644
> --- a/drivers/staging/media/imx/imx-media-capture.c
> +++ b/drivers/staging/media/imx/imx-media-capture.c
> @@ -139,7 +139,8 @@ static int capture_g_fmt_vid_cap(struct file *file, void *fh,
> }
>
> static const struct imx_media_pixfmt *
> -__capture_try_fmt(struct v4l2_pix_format *pixfmt, struct v4l2_rect *compose)
> +__capture_try_fmt(struct v4l2_pix_format *pixfmt, struct v4l2_rect *compose,
> + bool is_imx56)
> {
> struct v4l2_mbus_framefmt fmt_src;
> const struct imx_media_pixfmt *cc;
> @@ -171,7 +172,7 @@ __capture_try_fmt(struct v4l2_pix_format *pixfmt, struct v4l2_rect *compose)
> }
>
> v4l2_fill_mbus_format(&fmt_src, pixfmt, 0);
> - imx_media_mbus_fmt_to_pix_fmt(pixfmt, &fmt_src, cc);
> + imx_media_mbus_fmt_to_pix_fmt(pixfmt, &fmt_src, cc, is_imx56);
>
> if (compose) {
> compose->width = fmt_src.width;
> @@ -184,7 +185,9 @@ __capture_try_fmt(struct v4l2_pix_format *pixfmt, struct v4l2_rect *compose)
> static int capture_try_fmt_vid_cap(struct file *file, void *fh,
> struct v4l2_format *f)
> {
> - __capture_try_fmt(&f->fmt.pix, NULL);
> + struct capture_priv *priv = video_drvdata(file);
> +
> + __capture_try_fmt(&f->fmt.pix, NULL, priv->is_imx56);
> return 0;
> }
>
> @@ -199,7 +202,7 @@ static int capture_s_fmt_vid_cap(struct file *file, void *fh,
> return -EBUSY;
> }
>
> - cc = __capture_try_fmt(&f->fmt.pix, &priv->vdev.compose);
> + cc = __capture_try_fmt(&f->fmt.pix, &priv->vdev.compose, priv->is_imx56);
>
> priv->vdev.cc = cc;
> priv->vdev.fmt = f->fmt.pix;
> @@ -418,7 +421,7 @@ __capture_legacy_try_fmt(struct capture_priv *priv,
> }
> }
>
> - imx_media_mbus_fmt_to_pix_fmt(pixfmt, &fmt_src->format, cc);
> + imx_media_mbus_fmt_to_pix_fmt(pixfmt, &fmt_src->format, cc, priv->is_imx56);
>
> return cc;
> }
> @@ -889,7 +892,7 @@ static int capture_init_format(struct capture_priv *priv)
> fmt_src.format.height = IMX_MEDIA_DEF_PIX_HEIGHT;
> }
>
> - imx_media_mbus_fmt_to_pix_fmt(&vdev->fmt, &fmt_src.format, NULL);
> + imx_media_mbus_fmt_to_pix_fmt(&vdev->fmt, &fmt_src.format, NULL, priv->is_imx56);
> vdev->compose.width = fmt_src.format.width;
> vdev->compose.height = fmt_src.format.height;
>
> diff --git a/drivers/staging/media/imx/imx-media-utils.c b/drivers/staging/media/imx/imx-media-utils.c
> index 94bc866ca28c..0daa6aad45f4 100644
> --- a/drivers/staging/media/imx/imx-media-utils.c
> +++ b/drivers/staging/media/imx/imx-media-utils.c
> @@ -518,7 +518,8 @@ EXPORT_SYMBOL_GPL(imx_media_try_colorimetry);
>
> int imx_media_mbus_fmt_to_pix_fmt(struct v4l2_pix_format *pix,
> const struct v4l2_mbus_framefmt *mbus,
> - const struct imx_media_pixfmt *cc)
> + const struct imx_media_pixfmt *cc,
> + bool is_imx56)
> {
> u32 width;
> u32 stride;
> diff --git a/drivers/staging/media/imx/imx-media.h b/drivers/staging/media/imx/imx-media.h
> index 73e8e6e0d8e8..2be1bc97955c 100644
> --- a/drivers/staging/media/imx/imx-media.h
> +++ b/drivers/staging/media/imx/imx-media.h
> @@ -198,7 +198,8 @@ void imx_media_try_colorimetry(struct v4l2_mbus_framefmt *tryfmt,
> bool ic_route);
> int imx_media_mbus_fmt_to_pix_fmt(struct v4l2_pix_format *pix,
> const struct v4l2_mbus_framefmt *mbus,
> - const struct imx_media_pixfmt *cc);
> + const struct imx_media_pixfmt *cc,
> + bool is_imx56);
> void imx_media_grp_id_to_sd_name(char *sd_name, int sz,
> u32 grp_id, int ipu_id);
> struct v4l2_subdev *
--
Regards,
Laurent Pinchart