diff mbox series

media: imx: csis: Store pads format separately

Message ID 20220222214643.587535-1-jacopo@jmondi.org (mailing list archive)
State New, archived
Headers show
Series media: imx: csis: Store pads format separately | expand

Commit Message

Jacopo Mondi Feb. 22, 2022, 9:46 p.m. UTC
As the formats on the sink and source pad might be different store
them separately.

The pad format is used to configure the image width and height in
mipi_csis_system_enable(). As the csis cannot downscale, using the sink
or the source one isn't relevant.

Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
---

Hans, this comes as a late fix for pull request
[GIT PULL FOR v5.18] De-stage imx7-mipi-csis & some fixes

I'm sorry if this arrives a bit late, but I only realized when I
exercized RGB24 today.

Can this be collected together with the above pull request ?
Thanks
  j
---
 drivers/media/platform/imx/imx-mipi-csis.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--
2.35.0

Comments

Laurent Pinchart Feb. 23, 2022, 4:57 a.m. UTC | #1
Hi Jacopo,

Thank you for the patch.

On Tue, Feb 22, 2022 at 10:46:43PM +0100, Jacopo Mondi wrote:
> As the formats on the sink and source pad might be different store
> them separately.
> 
> The pad format is used to configure the image width and height in
> mipi_csis_system_enable(). As the csis cannot downscale, using the sink
> or the source one isn't relevant.
> 
> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
> 
> Hans, this comes as a late fix for pull request
> [GIT PULL FOR v5.18] De-stage imx7-mipi-csis & some fixes
> 
> I'm sorry if this arrives a bit late, but I only realized when I
> exercized RGB24 today.
> 
> Can this be collected together with the above pull request ?
> Thanks
>   j
> ---
>  drivers/media/platform/imx/imx-mipi-csis.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/media/platform/imx/imx-mipi-csis.c b/drivers/media/platform/imx/imx-mipi-csis.c
> index 6f975b3702bc..c23e512886f9 100644
> --- a/drivers/media/platform/imx/imx-mipi-csis.c
> +++ b/drivers/media/platform/imx/imx-mipi-csis.c
> @@ -330,7 +330,7 @@ struct csi_state {
> 
>  	struct mutex lock;	/* Protect csis_fmt, format_mbus and state */
>  	const struct csis_pix_format *csis_fmt;
> -	struct v4l2_mbus_framefmt format_mbus;
> +	struct v4l2_mbus_framefmt format_mbus[CSIS_PADS_NUM];
>  	u32 state;
> 
>  	spinlock_t slock;	/* Protect events */
> @@ -535,7 +535,7 @@ static void mipi_csis_system_enable(struct csi_state *state, int on)
>  /* Called with the state.lock mutex held */
>  static void __mipi_csis_set_format(struct csi_state *state)
>  {
> -	struct v4l2_mbus_framefmt *mf = &state->format_mbus;
> +	struct v4l2_mbus_framefmt *mf = &state->format_mbus[CSIS_PAD_SINK];
>  	u32 val;
> 
>  	/* Color format */
> @@ -967,7 +967,7 @@ mipi_csis_get_format(struct csi_state *state,
>  	if (which == V4L2_SUBDEV_FORMAT_TRY)
>  		return v4l2_subdev_get_try_format(&state->sd, sd_state, pad);
> 
> -	return &state->format_mbus;
> +	return &state->format_mbus[pad];
>  }
> 
>  static int mipi_csis_init_cfg(struct v4l2_subdev *sd,
diff mbox series

Patch

diff --git a/drivers/media/platform/imx/imx-mipi-csis.c b/drivers/media/platform/imx/imx-mipi-csis.c
index 6f975b3702bc..c23e512886f9 100644
--- a/drivers/media/platform/imx/imx-mipi-csis.c
+++ b/drivers/media/platform/imx/imx-mipi-csis.c
@@ -330,7 +330,7 @@  struct csi_state {

 	struct mutex lock;	/* Protect csis_fmt, format_mbus and state */
 	const struct csis_pix_format *csis_fmt;
-	struct v4l2_mbus_framefmt format_mbus;
+	struct v4l2_mbus_framefmt format_mbus[CSIS_PADS_NUM];
 	u32 state;

 	spinlock_t slock;	/* Protect events */
@@ -535,7 +535,7 @@  static void mipi_csis_system_enable(struct csi_state *state, int on)
 /* Called with the state.lock mutex held */
 static void __mipi_csis_set_format(struct csi_state *state)
 {
-	struct v4l2_mbus_framefmt *mf = &state->format_mbus;
+	struct v4l2_mbus_framefmt *mf = &state->format_mbus[CSIS_PAD_SINK];
 	u32 val;

 	/* Color format */
@@ -967,7 +967,7 @@  mipi_csis_get_format(struct csi_state *state,
 	if (which == V4L2_SUBDEV_FORMAT_TRY)
 		return v4l2_subdev_get_try_format(&state->sd, sd_state, pad);

-	return &state->format_mbus;
+	return &state->format_mbus[pad];
 }

 static int mipi_csis_init_cfg(struct v4l2_subdev *sd,