2022-02-04 21:44:49

by Alexander Stein

[permalink] [raw]
Subject: [PATCH 2/8] media: imx: Forward type of hardware implementation

From: Dorota Czaplejewicz <[email protected]>

Pass down the hardware type so imx_media_mbus_fmt_to_pix_fmt can do
the actual switch.

Signed-off-by: Dorota Czaplejewicz <[email protected]>
Signed-off-by: Alexander Stein <[email protected]>
---
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 *
--
2.25.1


2022-02-07 11:10:16

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH 2/8] media: imx: Forward type of hardware implementation

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 <[email protected]>
>
> Pass down the hardware type so imx_media_mbus_fmt_to_pix_fmt can do
> the actual switch.
>
> Signed-off-by: Dorota Czaplejewicz <[email protected]>
> Signed-off-by: Alexander Stein <[email protected]>

Turning the bool into an enum as mentioned in the review of 1/8,

Reviewed-by: Laurent Pinchart <[email protected]>

> ---
> 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