[RFC,v1,01/19] media: renesas: vsp1: Drop vsp1_entity_get_pad_format() wrapper

Message ID 20231122043009.2741-2-laurent.pinchart+renesas@ideasonboard.com (mailing list archive)
State New
Headers
Series media: renesas: vsp1: Conversion to subdev active state |

Commit Message

Laurent Pinchart Nov. 22, 2023, 4:29 a.m. UTC
  From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

The vsp1_entity_get_pad_format() function is just a wrapper around
v4l2_subdev_state_get_format() without any added value. Drop it and call
v4l2_subdev_state_get_format() directly.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 .../media/platform/renesas/vsp1/vsp1_brx.c    | 18 +++++-----
 .../media/platform/renesas/vsp1/vsp1_clu.c    |  3 +-
 .../media/platform/renesas/vsp1/vsp1_entity.c | 27 +++-----------
 .../media/platform/renesas/vsp1/vsp1_entity.h |  4 ---
 .../media/platform/renesas/vsp1/vsp1_histo.c  |  6 ++--
 .../media/platform/renesas/vsp1/vsp1_hsit.c   |  5 ++-
 .../media/platform/renesas/vsp1/vsp1_lif.c    |  4 +--
 .../media/platform/renesas/vsp1/vsp1_rpf.c    | 10 +++---
 .../media/platform/renesas/vsp1/vsp1_rwpf.c   | 14 +++-----
 .../media/platform/renesas/vsp1/vsp1_sru.c    | 33 ++++++++---------
 .../media/platform/renesas/vsp1/vsp1_uds.c    | 35 ++++++++-----------
 .../media/platform/renesas/vsp1/vsp1_uif.c    |  5 ++-
 .../media/platform/renesas/vsp1/vsp1_video.c  | 10 +++---
 .../media/platform/renesas/vsp1/vsp1_wpf.c    | 25 ++++++-------
 14 files changed, 75 insertions(+), 124 deletions(-)
  

Comments

Jacopo Mondi June 18, 2024, 9:52 a.m. UTC | #1
Hi Laurent

On Wed, Nov 22, 2023 at 06:29:51AM GMT, Laurent Pinchart wrote:
> From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>
> The vsp1_entity_get_pad_format() function is just a wrapper around
> v4l2_subdev_state_get_format() without any added value. Drop it and call
> v4l2_subdev_state_get_format() directly.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
>  .../media/platform/renesas/vsp1/vsp1_brx.c    | 18 +++++-----
>  .../media/platform/renesas/vsp1/vsp1_clu.c    |  3 +-
>  .../media/platform/renesas/vsp1/vsp1_entity.c | 27 +++-----------
>  .../media/platform/renesas/vsp1/vsp1_entity.h |  4 ---
>  .../media/platform/renesas/vsp1/vsp1_histo.c  |  6 ++--
>  .../media/platform/renesas/vsp1/vsp1_hsit.c   |  5 ++-
>  .../media/platform/renesas/vsp1/vsp1_lif.c    |  4 +--
>  .../media/platform/renesas/vsp1/vsp1_rpf.c    | 10 +++---
>  .../media/platform/renesas/vsp1/vsp1_rwpf.c   | 14 +++-----
>  .../media/platform/renesas/vsp1/vsp1_sru.c    | 33 ++++++++---------
>  .../media/platform/renesas/vsp1/vsp1_uds.c    | 35 ++++++++-----------
>  .../media/platform/renesas/vsp1/vsp1_uif.c    |  5 ++-
>  .../media/platform/renesas/vsp1/vsp1_video.c  | 10 +++---
>  .../media/platform/renesas/vsp1/vsp1_wpf.c    | 25 ++++++-------
>  14 files changed, 75 insertions(+), 124 deletions(-)
>
> diff --git a/drivers/media/platform/renesas/vsp1/vsp1_brx.c b/drivers/media/platform/renesas/vsp1/vsp1_brx.c
> index a8535c6e2c46..0eb4d8fe4285 100644
> --- a/drivers/media/platform/renesas/vsp1/vsp1_brx.c
> +++ b/drivers/media/platform/renesas/vsp1/vsp1_brx.c
> @@ -119,8 +119,8 @@ static void brx_try_format(struct vsp1_brx *brx,
>
>  	default:
>  		/* The BRx can't perform format conversion. */
> -		format = vsp1_entity_get_pad_format(&brx->entity, sd_state,
> -						    BRX_PAD_SINK(0));
> +		format = v4l2_subdev_state_get_format(sd_state,
> +						      BRX_PAD_SINK(0));
>  		fmt->code = format->code;
>  		break;
>  	}
> @@ -150,7 +150,7 @@ static int brx_set_format(struct v4l2_subdev *subdev,
>
>  	brx_try_format(brx, state, fmt->pad, &fmt->format);
>
> -	format = vsp1_entity_get_pad_format(&brx->entity, state, fmt->pad);
> +	format = v4l2_subdev_state_get_format(state, fmt->pad);
>  	*format = fmt->format;
>
>  	/* Reset the compose rectangle. */
> @@ -169,8 +169,7 @@ static int brx_set_format(struct v4l2_subdev *subdev,
>  		unsigned int i;
>
>  		for (i = 0; i <= brx->entity.source_pad; ++i) {
> -			format = vsp1_entity_get_pad_format(&brx->entity,
> -							    state, i);
> +			format = v4l2_subdev_state_get_format(state, i);
>  			format->code = fmt->format.code;
>  		}
>  	}
> @@ -242,8 +241,7 @@ static int brx_set_selection(struct v4l2_subdev *subdev,
>  	 * The compose rectangle top left corner must be inside the output
>  	 * frame.
>  	 */
> -	format = vsp1_entity_get_pad_format(&brx->entity, state,
> -					    brx->entity.source_pad);
> +	format = v4l2_subdev_state_get_format(state, brx->entity.source_pad);
>  	sel->r.left = clamp_t(unsigned int, sel->r.left, 0, format->width - 1);
>  	sel->r.top = clamp_t(unsigned int, sel->r.top, 0, format->height - 1);
>
> @@ -251,7 +249,7 @@ static int brx_set_selection(struct v4l2_subdev *subdev,
>  	 * Scaling isn't supported, the compose rectangle size must be identical
>  	 * to the sink format size.
>  	 */
> -	format = vsp1_entity_get_pad_format(&brx->entity, state, sel->pad);
> +	format = v4l2_subdev_state_get_format(state, sel->pad);
>  	sel->r.width = format->width;
>  	sel->r.height = format->height;
>
> @@ -290,8 +288,8 @@ static void brx_configure_stream(struct vsp1_entity *entity,
>  	unsigned int flags;
>  	unsigned int i;
>
> -	format = vsp1_entity_get_pad_format(&brx->entity, brx->entity.state,
> -					    brx->entity.source_pad);
> +	format = v4l2_subdev_state_get_format(brx->entity.state,
> +					      brx->entity.source_pad);
>
>  	/*
>  	 * The hardware is extremely flexible but we have no userspace API to
> diff --git a/drivers/media/platform/renesas/vsp1/vsp1_clu.c b/drivers/media/platform/renesas/vsp1/vsp1_clu.c
> index 625776a9bda4..1e57676a420c 100644
> --- a/drivers/media/platform/renesas/vsp1/vsp1_clu.c
> +++ b/drivers/media/platform/renesas/vsp1/vsp1_clu.c
> @@ -181,8 +181,7 @@ static void clu_configure_stream(struct vsp1_entity *entity,
>  	 * The yuv_mode can't be changed during streaming. Cache it internally
>  	 * for future runtime configuration calls.
>  	 */
> -	format = vsp1_entity_get_pad_format(&clu->entity, clu->entity.state,
> -					    CLU_PAD_SINK);
> +	format = v4l2_subdev_state_get_format(clu->entity.state, CLU_PAD_SINK);
>  	clu->yuv_mode = format->code == MEDIA_BUS_FMT_AYUV8_1X32;
>  }
>
> diff --git a/drivers/media/platform/renesas/vsp1/vsp1_entity.c b/drivers/media/platform/renesas/vsp1/vsp1_entity.c
> index 0a5a7f9cc870..fa748cf89d44 100644
> --- a/drivers/media/platform/renesas/vsp1/vsp1_entity.c
> +++ b/drivers/media/platform/renesas/vsp1/vsp1_entity.c
> @@ -127,23 +127,6 @@ vsp1_entity_get_state(struct vsp1_entity *entity,
>  	}
>  }
>
> -/**
> - * vsp1_entity_get_pad_format - Get a pad format from storage for an entity
> - * @entity: the entity
> - * @sd_state: the state storage
> - * @pad: the pad number
> - *
> - * Return the format stored in the given configuration for an entity's pad. The
> - * configuration can be an ACTIVE or TRY configuration.
> - */
> -struct v4l2_mbus_framefmt *
> -vsp1_entity_get_pad_format(struct vsp1_entity *entity,
> -			   struct v4l2_subdev_state *sd_state,
> -			   unsigned int pad)
> -{
> -	return v4l2_subdev_state_get_format(sd_state, pad);
> -}
> -
>  /**
>   * vsp1_entity_get_pad_selection - Get a pad selection from storage for entity
>   * @entity: the entity
> @@ -191,7 +174,7 @@ int vsp1_subdev_get_pad_format(struct v4l2_subdev *subdev,
>  		return -EINVAL;
>
>  	mutex_lock(&entity->lock);
> -	fmt->format = *vsp1_entity_get_pad_format(entity, state, fmt->pad);
> +	fmt->format = *v4l2_subdev_state_get_format(state, fmt->pad);
>  	mutex_unlock(&entity->lock);
>
>  	return 0;
> @@ -238,7 +221,7 @@ int vsp1_subdev_enum_mbus_code(struct v4l2_subdev *subdev,
>  			return -EINVAL;
>
>  		mutex_lock(&entity->lock);
> -		format = vsp1_entity_get_pad_format(entity, state, 0);
> +		format = v4l2_subdev_state_get_format(state, 0);
>  		code->code = format->code;
>  		mutex_unlock(&entity->lock);
>  	}
> @@ -276,7 +259,7 @@ int vsp1_subdev_enum_frame_size(struct v4l2_subdev *subdev,
>  	if (!state)
>  		return -EINVAL;
>
> -	format = vsp1_entity_get_pad_format(entity, state, fse->pad);
> +	format = v4l2_subdev_state_get_format(state, fse->pad);
>
>  	mutex_lock(&entity->lock);
>
> @@ -346,7 +329,7 @@ int vsp1_subdev_set_pad_format(struct v4l2_subdev *subdev,
>  		goto done;
>  	}
>
> -	format = vsp1_entity_get_pad_format(entity, state, fmt->pad);
> +	format = v4l2_subdev_state_get_format(state, fmt->pad);
>
>  	if (fmt->pad == entity->source_pad) {
>  		/* The output format can't be modified. */
> @@ -374,7 +357,7 @@ int vsp1_subdev_set_pad_format(struct v4l2_subdev *subdev,
>  	fmt->format = *format;
>
>  	/* Propagate the format to the source pad. */
> -	format = vsp1_entity_get_pad_format(entity, state, entity->source_pad);
> +	format = v4l2_subdev_state_get_format(state, entity->source_pad);
>  	*format = fmt->format;
>
>  	/* Reset the crop and compose rectangles. */
> diff --git a/drivers/media/platform/renesas/vsp1/vsp1_entity.h b/drivers/media/platform/renesas/vsp1/vsp1_entity.h
> index 735f32dde4b5..e913befe7fc8 100644
> --- a/drivers/media/platform/renesas/vsp1/vsp1_entity.h
> +++ b/drivers/media/platform/renesas/vsp1/vsp1_entity.h
> @@ -138,10 +138,6 @@ struct v4l2_subdev_state *
>  vsp1_entity_get_state(struct vsp1_entity *entity,
>  		      struct v4l2_subdev_state *sd_state,
>  		      enum v4l2_subdev_format_whence which);
> -struct v4l2_mbus_framefmt *
> -vsp1_entity_get_pad_format(struct vsp1_entity *entity,
> -			   struct v4l2_subdev_state *sd_state,
> -			   unsigned int pad);
>  struct v4l2_rect *
>  vsp1_entity_get_pad_selection(struct vsp1_entity *entity,
>  			      struct v4l2_subdev_state *sd_state,
> diff --git a/drivers/media/platform/renesas/vsp1/vsp1_histo.c b/drivers/media/platform/renesas/vsp1/vsp1_histo.c
> index 71155282ca11..ad38726c234f 100644
> --- a/drivers/media/platform/renesas/vsp1/vsp1_histo.c
> +++ b/drivers/media/platform/renesas/vsp1/vsp1_histo.c
> @@ -233,8 +233,7 @@ static int histo_get_selection(struct v4l2_subdev *subdev,
>
>  	case V4L2_SEL_TGT_CROP_BOUNDS:
>  	case V4L2_SEL_TGT_CROP_DEFAULT:
> -		format = vsp1_entity_get_pad_format(&histo->entity, state,
> -						    HISTO_PAD_SINK);
> +		format = v4l2_subdev_state_get_format(state, HISTO_PAD_SINK);
>  		sel->r.left = 0;
>  		sel->r.top = 0;
>  		sel->r.width = format->width;
> @@ -266,8 +265,7 @@ static int histo_set_crop(struct v4l2_subdev *subdev,
>  	struct v4l2_rect *selection;
>
>  	/* The crop rectangle must be inside the input frame. */
> -	format = vsp1_entity_get_pad_format(&histo->entity, sd_state,
> -					    HISTO_PAD_SINK);
> +	format = v4l2_subdev_state_get_format(sd_state, HISTO_PAD_SINK);
>  	sel->r.left = clamp_t(unsigned int, sel->r.left, 0, format->width - 1);
>  	sel->r.top = clamp_t(unsigned int, sel->r.top, 0, format->height - 1);
>  	sel->r.width = clamp_t(unsigned int, sel->r.width, HISTO_MIN_SIZE,
> diff --git a/drivers/media/platform/renesas/vsp1/vsp1_hsit.c b/drivers/media/platform/renesas/vsp1/vsp1_hsit.c
> index bc1299c29ac9..4a8cce808c93 100644
> --- a/drivers/media/platform/renesas/vsp1/vsp1_hsit.c
> +++ b/drivers/media/platform/renesas/vsp1/vsp1_hsit.c
> @@ -78,7 +78,7 @@ static int hsit_set_format(struct v4l2_subdev *subdev,
>  		goto done;
>  	}
>
> -	format = vsp1_entity_get_pad_format(&hsit->entity, state, fmt->pad);
> +	format = v4l2_subdev_state_get_format(state, fmt->pad);
>
>  	if (fmt->pad == HSIT_PAD_SOURCE) {
>  		/*
> @@ -101,8 +101,7 @@ static int hsit_set_format(struct v4l2_subdev *subdev,
>  	fmt->format = *format;
>
>  	/* Propagate the format to the source pad. */
> -	format = vsp1_entity_get_pad_format(&hsit->entity, state,
> -					    HSIT_PAD_SOURCE);
> +	format = v4l2_subdev_state_get_format(state, HSIT_PAD_SOURCE);
>  	*format = fmt->format;
>  	format->code = hsit->inverse ? MEDIA_BUS_FMT_ARGB8888_1X32
>  		     : MEDIA_BUS_FMT_AHSV8888_1X32;
> diff --git a/drivers/media/platform/renesas/vsp1/vsp1_lif.c b/drivers/media/platform/renesas/vsp1/vsp1_lif.c
> index b1d21a54837b..29d4c1521e6a 100644
> --- a/drivers/media/platform/renesas/vsp1/vsp1_lif.c
> +++ b/drivers/media/platform/renesas/vsp1/vsp1_lif.c
> @@ -93,8 +93,8 @@ static void lif_configure_stream(struct vsp1_entity *entity,
>  	unsigned int obth;
>  	unsigned int lbth;
>
> -	format = vsp1_entity_get_pad_format(&lif->entity, lif->entity.state,
> -					    LIF_PAD_SOURCE);
> +	format = v4l2_subdev_state_get_format(lif->entity.state,
> +					      LIF_PAD_SOURCE);
>
>  	switch (entity->vsp1->version & VI6_IP_VERSION_MODEL_MASK) {
>  	case VI6_IP_VERSION_MODEL_VSPD_GEN2:
> diff --git a/drivers/media/platform/renesas/vsp1/vsp1_rpf.c b/drivers/media/platform/renesas/vsp1/vsp1_rpf.c
> index c47579efc65f..19d9f078748c 100644
> --- a/drivers/media/platform/renesas/vsp1/vsp1_rpf.c
> +++ b/drivers/media/platform/renesas/vsp1/vsp1_rpf.c
> @@ -80,12 +80,10 @@ static void rpf_configure_stream(struct vsp1_entity *entity,
>  	vsp1_rpf_write(rpf, dlb, VI6_RPF_SRCM_PSTRIDE, pstride);
>
>  	/* Format */
> -	sink_format = vsp1_entity_get_pad_format(&rpf->entity,
> -						 rpf->entity.state,
> -						 RWPF_PAD_SINK);
> -	source_format = vsp1_entity_get_pad_format(&rpf->entity,
> -						   rpf->entity.state,
> -						   RWPF_PAD_SOURCE);
> +	sink_format = v4l2_subdev_state_get_format(rpf->entity.state,
> +						   RWPF_PAD_SINK);
> +	source_format = v4l2_subdev_state_get_format(rpf->entity.state,
> +						     RWPF_PAD_SOURCE);
>
>  	infmt = VI6_RPF_INFMT_CIPM
>  	      | (fmtinfo->hwfmt << VI6_RPF_INFMT_RDFMT_SHIFT);
> diff --git a/drivers/media/platform/renesas/vsp1/vsp1_rwpf.c b/drivers/media/platform/renesas/vsp1/vsp1_rwpf.c
> index 09fb6ffa14e2..574623a48a3d 100644
> --- a/drivers/media/platform/renesas/vsp1/vsp1_rwpf.c
> +++ b/drivers/media/platform/renesas/vsp1/vsp1_rwpf.c
> @@ -79,7 +79,7 @@ static int vsp1_rwpf_set_format(struct v4l2_subdev *subdev,
>  	    fmt->format.code != MEDIA_BUS_FMT_AYUV8_1X32)
>  		fmt->format.code = MEDIA_BUS_FMT_AYUV8_1X32;
>
> -	format = vsp1_entity_get_pad_format(&rwpf->entity, state, fmt->pad);
> +	format = v4l2_subdev_state_get_format(state, fmt->pad);
>
>  	if (fmt->pad == RWPF_PAD_SOURCE) {
>  		/*
> @@ -113,8 +113,7 @@ static int vsp1_rwpf_set_format(struct v4l2_subdev *subdev,
>  	}
>
>  	/* Propagate the format to the source pad. */
> -	format = vsp1_entity_get_pad_format(&rwpf->entity, state,
> -					    RWPF_PAD_SOURCE);
> +	format = v4l2_subdev_state_get_format(state, RWPF_PAD_SOURCE);
>  	*format = fmt->format;
>
>  	if (rwpf->flip.rotate) {
> @@ -157,8 +156,7 @@ static int vsp1_rwpf_get_selection(struct v4l2_subdev *subdev,
>  		break;
>
>  	case V4L2_SEL_TGT_CROP_BOUNDS:
> -		format = vsp1_entity_get_pad_format(&rwpf->entity, state,
> -						    RWPF_PAD_SINK);
> +		format = v4l2_subdev_state_get_format(state, RWPF_PAD_SINK);
>  		sel->r.left = 0;
>  		sel->r.top = 0;
>  		sel->r.width = format->width;
> @@ -204,8 +202,7 @@ static int vsp1_rwpf_set_selection(struct v4l2_subdev *subdev,
>  	}
>
>  	/* Make sure the crop rectangle is entirely contained in the image. */
> -	format = vsp1_entity_get_pad_format(&rwpf->entity, state,
> -					    RWPF_PAD_SINK);
> +	format = v4l2_subdev_state_get_format(state, RWPF_PAD_SINK);
>
>  	/*
>  	 * Restrict the crop rectangle coordinates to multiples of 2 to avoid
> @@ -229,8 +226,7 @@ static int vsp1_rwpf_set_selection(struct v4l2_subdev *subdev,
>  	*crop = sel->r;
>
>  	/* Propagate the format to the source pad. */
> -	format = vsp1_entity_get_pad_format(&rwpf->entity, state,
> -					    RWPF_PAD_SOURCE);
> +	format = v4l2_subdev_state_get_format(state, RWPF_PAD_SOURCE);
>  	format->width = crop->width;
>  	format->height = crop->height;
>
> diff --git a/drivers/media/platform/renesas/vsp1/vsp1_sru.c b/drivers/media/platform/renesas/vsp1/vsp1_sru.c
> index 11e008aa9f20..2c67aae0d5fd 100644
> --- a/drivers/media/platform/renesas/vsp1/vsp1_sru.c
> +++ b/drivers/media/platform/renesas/vsp1/vsp1_sru.c
> @@ -131,7 +131,7 @@ static int sru_enum_frame_size(struct v4l2_subdev *subdev,
>  	if (!state)
>  		return -EINVAL;
>
> -	format = vsp1_entity_get_pad_format(&sru->entity, state, SRU_PAD_SINK);
> +	format = v4l2_subdev_state_get_format(state, SRU_PAD_SINK);
>
>  	mutex_lock(&sru->entity.lock);
>
> @@ -184,8 +184,7 @@ static void sru_try_format(struct vsp1_sru *sru,
>
>  	case SRU_PAD_SOURCE:
>  		/* The SRU can't perform format conversion. */
> -		format = vsp1_entity_get_pad_format(&sru->entity, sd_state,
> -						    SRU_PAD_SINK);
> +		format = v4l2_subdev_state_get_format(sd_state, SRU_PAD_SINK);
>  		fmt->code = format->code;
>
>  		/*
> @@ -234,13 +233,12 @@ static int sru_set_format(struct v4l2_subdev *subdev,
>
>  	sru_try_format(sru, state, fmt->pad, &fmt->format);
>
> -	format = vsp1_entity_get_pad_format(&sru->entity, state, fmt->pad);
> +	format = v4l2_subdev_state_get_format(state, fmt->pad);
>  	*format = fmt->format;
>
>  	if (fmt->pad == SRU_PAD_SINK) {
>  		/* Propagate the format to the source pad. */
> -		format = vsp1_entity_get_pad_format(&sru->entity, state,
> -						    SRU_PAD_SOURCE);
> +		format = v4l2_subdev_state_get_format(state, SRU_PAD_SOURCE);
>  		*format = fmt->format;
>
>  		sru_try_format(sru, state, SRU_PAD_SOURCE, format);
> @@ -277,10 +275,9 @@ static void sru_configure_stream(struct vsp1_entity *entity,
>  	struct v4l2_mbus_framefmt *output;
>  	u32 ctrl0;
>
> -	input = vsp1_entity_get_pad_format(&sru->entity, sru->entity.state,
> -					   SRU_PAD_SINK);
> -	output = vsp1_entity_get_pad_format(&sru->entity, sru->entity.state,
> -					    SRU_PAD_SOURCE);
> +	input = v4l2_subdev_state_get_format(sru->entity.state, SRU_PAD_SINK);
> +	output = v4l2_subdev_state_get_format(sru->entity.state,
> +					      SRU_PAD_SOURCE);
>
>  	if (input->code == MEDIA_BUS_FMT_ARGB8888_1X32)
>  		ctrl0 = VI6_SRU_CTRL0_PARAM2 | VI6_SRU_CTRL0_PARAM3
> @@ -307,10 +304,10 @@ static unsigned int sru_max_width(struct vsp1_entity *entity,
>  	struct v4l2_mbus_framefmt *input;
>  	struct v4l2_mbus_framefmt *output;
>
> -	input = vsp1_entity_get_pad_format(&sru->entity, sru->entity.state,
> -					   SRU_PAD_SINK);
> -	output = vsp1_entity_get_pad_format(&sru->entity, sru->entity.state,
> -					    SRU_PAD_SOURCE);
> +	input = v4l2_subdev_state_get_format(sru->entity.state,
> +					     SRU_PAD_SINK);

nit: Fits on the previous line

> +	output = v4l2_subdev_state_get_format(sru->entity.state,
> +					      SRU_PAD_SOURCE);
>
>  	/*
>  	 * The maximum input width of the SRU is 288 input pixels, but 32
> @@ -333,10 +330,10 @@ static void sru_partition(struct vsp1_entity *entity,
>  	struct v4l2_mbus_framefmt *input;
>  	struct v4l2_mbus_framefmt *output;
>
> -	input = vsp1_entity_get_pad_format(&sru->entity, sru->entity.state,
> -					   SRU_PAD_SINK);
> -	output = vsp1_entity_get_pad_format(&sru->entity, sru->entity.state,
> -					    SRU_PAD_SOURCE);
> +	input = v4l2_subdev_state_get_format(sru->entity.state,
> +					     SRU_PAD_SINK);

ditto

> +	output = v4l2_subdev_state_get_format(sru->entity.state,
> +					      SRU_PAD_SOURCE);
>
>  	/* Adapt if SRUx2 is enabled. */
>  	if (input->width != output->width) {
> diff --git a/drivers/media/platform/renesas/vsp1/vsp1_uds.c b/drivers/media/platform/renesas/vsp1/vsp1_uds.c
> index d89f1197b86c..887b1f70611a 100644
> --- a/drivers/media/platform/renesas/vsp1/vsp1_uds.c
> +++ b/drivers/media/platform/renesas/vsp1/vsp1_uds.c
> @@ -136,7 +136,7 @@ static int uds_enum_frame_size(struct v4l2_subdev *subdev,
>  	if (!state)
>  		return -EINVAL;
>
> -	format = vsp1_entity_get_pad_format(&uds->entity, state, UDS_PAD_SINK);
> +	format = v4l2_subdev_state_get_format(state, UDS_PAD_SINK);
>
>  	mutex_lock(&uds->entity.lock);
>
> @@ -183,8 +183,7 @@ static void uds_try_format(struct vsp1_uds *uds,
>
>  	case UDS_PAD_SOURCE:
>  		/* The UDS scales but can't perform format conversion. */
> -		format = vsp1_entity_get_pad_format(&uds->entity, sd_state,
> -						    UDS_PAD_SINK);
> +		format = v4l2_subdev_state_get_format(sd_state, UDS_PAD_SINK);
>  		fmt->code = format->code;
>
>  		uds_output_limits(format->width, &minimum, &maximum);
> @@ -217,13 +216,12 @@ static int uds_set_format(struct v4l2_subdev *subdev,
>
>  	uds_try_format(uds, state, fmt->pad, &fmt->format);
>
> -	format = vsp1_entity_get_pad_format(&uds->entity, state, fmt->pad);
> +	format = v4l2_subdev_state_get_format(state, fmt->pad);
>  	*format = fmt->format;
>
>  	if (fmt->pad == UDS_PAD_SINK) {
>  		/* Propagate the format to the source pad. */
> -		format = vsp1_entity_get_pad_format(&uds->entity, state,
> -						    UDS_PAD_SOURCE);
> +		format = v4l2_subdev_state_get_format(state, UDS_PAD_SOURCE);
>  		*format = fmt->format;
>
>  		uds_try_format(uds, state, UDS_PAD_SOURCE, format);
> @@ -265,10 +263,9 @@ static void uds_configure_stream(struct vsp1_entity *entity,
>  	unsigned int vscale;
>  	bool multitap;
>
> -	input = vsp1_entity_get_pad_format(&uds->entity, uds->entity.state,
> -					   UDS_PAD_SINK);
> -	output = vsp1_entity_get_pad_format(&uds->entity, uds->entity.state,
> -					    UDS_PAD_SOURCE);
> +	input = v4l2_subdev_state_get_format(uds->entity.state, UDS_PAD_SINK);
> +	output = v4l2_subdev_state_get_format(uds->entity.state,
> +					      UDS_PAD_SOURCE);
>
>  	hscale = uds_compute_ratio(input->width, output->width);
>  	vscale = uds_compute_ratio(input->height, output->height);
> @@ -310,8 +307,8 @@ static void uds_configure_partition(struct vsp1_entity *entity,
>  	struct vsp1_partition *partition = pipe->partition;
>  	const struct v4l2_mbus_framefmt *output;
>
> -	output = vsp1_entity_get_pad_format(&uds->entity, uds->entity.state,
> -					    UDS_PAD_SOURCE);
> +	output = v4l2_subdev_state_get_format(uds->entity.state,
> +					      UDS_PAD_SOURCE);
>
>  	/* Input size clipping. */
>  	vsp1_uds_write(uds, dlb, VI6_UDS_HSZCLIP, VI6_UDS_HSZCLIP_HCEN |
> @@ -335,10 +332,9 @@ static unsigned int uds_max_width(struct vsp1_entity *entity,
>  	const struct v4l2_mbus_framefmt *input;
>  	unsigned int hscale;
>
> -	input = vsp1_entity_get_pad_format(&uds->entity, uds->entity.state,
> -					   UDS_PAD_SINK);
> -	output = vsp1_entity_get_pad_format(&uds->entity, uds->entity.state,
> -					    UDS_PAD_SOURCE);
> +	input = v4l2_subdev_state_get_format(uds->entity.state, UDS_PAD_SINK);
> +	output = v4l2_subdev_state_get_format(uds->entity.state,
> +					      UDS_PAD_SOURCE);
>  	hscale = output->width / input->width;
>
>  	/*
> @@ -377,10 +373,9 @@ static void uds_partition(struct vsp1_entity *entity,
>  	partition->uds_sink = *window;
>  	partition->uds_source = *window;
>
> -	input = vsp1_entity_get_pad_format(&uds->entity, uds->entity.state,
> -					   UDS_PAD_SINK);
> -	output = vsp1_entity_get_pad_format(&uds->entity, uds->entity.state,
> -					    UDS_PAD_SOURCE);
> +	input = v4l2_subdev_state_get_format(uds->entity.state, UDS_PAD_SINK);
> +	output = v4l2_subdev_state_get_format(uds->entity.state,
> +					      UDS_PAD_SOURCE);
>
>  	partition->uds_sink.width = window->width * input->width
>  				  / output->width;
> diff --git a/drivers/media/platform/renesas/vsp1/vsp1_uif.c b/drivers/media/platform/renesas/vsp1/vsp1_uif.c
> index f66936a28a2a..ee5b6ba22898 100644
> --- a/drivers/media/platform/renesas/vsp1/vsp1_uif.c
> +++ b/drivers/media/platform/renesas/vsp1/vsp1_uif.c
> @@ -104,8 +104,7 @@ static int uif_get_selection(struct v4l2_subdev *subdev,
>  	switch (sel->target) {
>  	case V4L2_SEL_TGT_CROP_BOUNDS:
>  	case V4L2_SEL_TGT_CROP_DEFAULT:
> -		format = vsp1_entity_get_pad_format(&uif->entity, state,
> -						    UIF_PAD_SINK);
> +		format = v4l2_subdev_state_get_format(state, UIF_PAD_SINK);
>  		sel->r.left = 0;
>  		sel->r.top = 0;
>  		sel->r.width = format->width;
> @@ -150,7 +149,7 @@ static int uif_set_selection(struct v4l2_subdev *subdev,
>  	}
>
>  	/* The crop rectangle must be inside the input frame. */
> -	format = vsp1_entity_get_pad_format(&uif->entity, state, UIF_PAD_SINK);
> +	format = v4l2_subdev_state_get_format(state, UIF_PAD_SINK);
>
>  	sel->r.left = clamp_t(unsigned int, sel->r.left, 0, format->width - 1);
>  	sel->r.top = clamp_t(unsigned int, sel->r.top, 0, format->height - 1);
> diff --git a/drivers/media/platform/renesas/vsp1/vsp1_video.c b/drivers/media/platform/renesas/vsp1/vsp1_video.c
> index 5a9cb0e5640e..9cb81b4c65ed 100644
> --- a/drivers/media/platform/renesas/vsp1/vsp1_video.c
> +++ b/drivers/media/platform/renesas/vsp1/vsp1_video.c
> @@ -197,9 +197,8 @@ static void vsp1_video_calculate_partition(struct vsp1_pipeline *pipe,
>  	 * Partitions are computed on the size before rotation, use the format
>  	 * at the WPF sink.
>  	 */
> -	format = vsp1_entity_get_pad_format(&pipe->output->entity,
> -					    pipe->output->entity.state,
> -					    RWPF_PAD_SINK);
> +	format = v4l2_subdev_state_get_format(pipe->output->entity.state,
> +					      RWPF_PAD_SINK);
>
>  	/* A single partition simply processes the output size in full. */
>  	if (pipe->partitions <= 1) {
> @@ -262,9 +261,8 @@ static int vsp1_video_pipeline_setup_partitions(struct vsp1_pipeline *pipe)
>  	 * Partitions are computed on the size before rotation, use the format
>  	 * at the WPF sink.
>  	 */
> -	format = vsp1_entity_get_pad_format(&pipe->output->entity,
> -					    pipe->output->entity.state,
> -					    RWPF_PAD_SINK);
> +	format = v4l2_subdev_state_get_format(pipe->output->entity.state,
> +					      RWPF_PAD_SINK);
>  	div_size = format->width;
>
>  	/*
> diff --git a/drivers/media/platform/renesas/vsp1/vsp1_wpf.c b/drivers/media/platform/renesas/vsp1/vsp1_wpf.c
> index 9693aeab1cac..5129181b8217 100644
> --- a/drivers/media/platform/renesas/vsp1/vsp1_wpf.c
> +++ b/drivers/media/platform/renesas/vsp1/vsp1_wpf.c
> @@ -65,12 +65,10 @@ static int vsp1_wpf_set_rotation(struct vsp1_rwpf *wpf, unsigned int rotation)
>  		goto done;
>  	}
>
> -	sink_format = vsp1_entity_get_pad_format(&wpf->entity,
> -						 wpf->entity.state,
> -						 RWPF_PAD_SINK);
> -	source_format = vsp1_entity_get_pad_format(&wpf->entity,
> -						   wpf->entity.state,
> -						   RWPF_PAD_SOURCE);
> +	sink_format = v4l2_subdev_state_get_format(wpf->entity.state,
> +						   RWPF_PAD_SINK);
> +	source_format = v4l2_subdev_state_get_format(wpf->entity.state,
> +						     RWPF_PAD_SOURCE);
>
>  	mutex_lock(&wpf->entity.lock);
>
> @@ -245,12 +243,10 @@ static void wpf_configure_stream(struct vsp1_entity *entity,
>  	u32 srcrpf = 0;
>  	int ret;
>
> -	sink_format = vsp1_entity_get_pad_format(&wpf->entity,
> -						 wpf->entity.state,
> -						 RWPF_PAD_SINK);
> -	source_format = vsp1_entity_get_pad_format(&wpf->entity,
> -						   wpf->entity.state,
> -						   RWPF_PAD_SOURCE);
> +	sink_format = v4l2_subdev_state_get_format(wpf->entity.state,
> +						   RWPF_PAD_SINK);
> +	source_format = v4l2_subdev_state_get_format(wpf->entity.state,
> +						     RWPF_PAD_SOURCE);
>
>  	/* Format */
>  	if (!pipe->lif || wpf->writeback) {
> @@ -383,9 +379,8 @@ static void wpf_configure_partition(struct vsp1_entity *entity,
>  	unsigned int flip;
>  	unsigned int i;
>
> -	sink_format = vsp1_entity_get_pad_format(&wpf->entity,
> -						 wpf->entity.state,
> -						 RWPF_PAD_SINK);
> +	sink_format = v4l2_subdev_state_get_format(wpf->entity.state,
> +						   RWPF_PAD_SINK);
>  	width = sink_format->width;
>  	height = sink_format->height;
>  	left = 0;

Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>

Thanks
  j

> --
> Regards,
>
> Laurent Pinchart
>
>
  

Patch

diff --git a/drivers/media/platform/renesas/vsp1/vsp1_brx.c b/drivers/media/platform/renesas/vsp1/vsp1_brx.c
index a8535c6e2c46..0eb4d8fe4285 100644
--- a/drivers/media/platform/renesas/vsp1/vsp1_brx.c
+++ b/drivers/media/platform/renesas/vsp1/vsp1_brx.c
@@ -119,8 +119,8 @@  static void brx_try_format(struct vsp1_brx *brx,
 
 	default:
 		/* The BRx can't perform format conversion. */
-		format = vsp1_entity_get_pad_format(&brx->entity, sd_state,
-						    BRX_PAD_SINK(0));
+		format = v4l2_subdev_state_get_format(sd_state,
+						      BRX_PAD_SINK(0));
 		fmt->code = format->code;
 		break;
 	}
@@ -150,7 +150,7 @@  static int brx_set_format(struct v4l2_subdev *subdev,
 
 	brx_try_format(brx, state, fmt->pad, &fmt->format);
 
-	format = vsp1_entity_get_pad_format(&brx->entity, state, fmt->pad);
+	format = v4l2_subdev_state_get_format(state, fmt->pad);
 	*format = fmt->format;
 
 	/* Reset the compose rectangle. */
@@ -169,8 +169,7 @@  static int brx_set_format(struct v4l2_subdev *subdev,
 		unsigned int i;
 
 		for (i = 0; i <= brx->entity.source_pad; ++i) {
-			format = vsp1_entity_get_pad_format(&brx->entity,
-							    state, i);
+			format = v4l2_subdev_state_get_format(state, i);
 			format->code = fmt->format.code;
 		}
 	}
@@ -242,8 +241,7 @@  static int brx_set_selection(struct v4l2_subdev *subdev,
 	 * The compose rectangle top left corner must be inside the output
 	 * frame.
 	 */
-	format = vsp1_entity_get_pad_format(&brx->entity, state,
-					    brx->entity.source_pad);
+	format = v4l2_subdev_state_get_format(state, brx->entity.source_pad);
 	sel->r.left = clamp_t(unsigned int, sel->r.left, 0, format->width - 1);
 	sel->r.top = clamp_t(unsigned int, sel->r.top, 0, format->height - 1);
 
@@ -251,7 +249,7 @@  static int brx_set_selection(struct v4l2_subdev *subdev,
 	 * Scaling isn't supported, the compose rectangle size must be identical
 	 * to the sink format size.
 	 */
-	format = vsp1_entity_get_pad_format(&brx->entity, state, sel->pad);
+	format = v4l2_subdev_state_get_format(state, sel->pad);
 	sel->r.width = format->width;
 	sel->r.height = format->height;
 
@@ -290,8 +288,8 @@  static void brx_configure_stream(struct vsp1_entity *entity,
 	unsigned int flags;
 	unsigned int i;
 
-	format = vsp1_entity_get_pad_format(&brx->entity, brx->entity.state,
-					    brx->entity.source_pad);
+	format = v4l2_subdev_state_get_format(brx->entity.state,
+					      brx->entity.source_pad);
 
 	/*
 	 * The hardware is extremely flexible but we have no userspace API to
diff --git a/drivers/media/platform/renesas/vsp1/vsp1_clu.c b/drivers/media/platform/renesas/vsp1/vsp1_clu.c
index 625776a9bda4..1e57676a420c 100644
--- a/drivers/media/platform/renesas/vsp1/vsp1_clu.c
+++ b/drivers/media/platform/renesas/vsp1/vsp1_clu.c
@@ -181,8 +181,7 @@  static void clu_configure_stream(struct vsp1_entity *entity,
 	 * The yuv_mode can't be changed during streaming. Cache it internally
 	 * for future runtime configuration calls.
 	 */
-	format = vsp1_entity_get_pad_format(&clu->entity, clu->entity.state,
-					    CLU_PAD_SINK);
+	format = v4l2_subdev_state_get_format(clu->entity.state, CLU_PAD_SINK);
 	clu->yuv_mode = format->code == MEDIA_BUS_FMT_AYUV8_1X32;
 }
 
diff --git a/drivers/media/platform/renesas/vsp1/vsp1_entity.c b/drivers/media/platform/renesas/vsp1/vsp1_entity.c
index 0a5a7f9cc870..fa748cf89d44 100644
--- a/drivers/media/platform/renesas/vsp1/vsp1_entity.c
+++ b/drivers/media/platform/renesas/vsp1/vsp1_entity.c
@@ -127,23 +127,6 @@  vsp1_entity_get_state(struct vsp1_entity *entity,
 	}
 }
 
-/**
- * vsp1_entity_get_pad_format - Get a pad format from storage for an entity
- * @entity: the entity
- * @sd_state: the state storage
- * @pad: the pad number
- *
- * Return the format stored in the given configuration for an entity's pad. The
- * configuration can be an ACTIVE or TRY configuration.
- */
-struct v4l2_mbus_framefmt *
-vsp1_entity_get_pad_format(struct vsp1_entity *entity,
-			   struct v4l2_subdev_state *sd_state,
-			   unsigned int pad)
-{
-	return v4l2_subdev_state_get_format(sd_state, pad);
-}
-
 /**
  * vsp1_entity_get_pad_selection - Get a pad selection from storage for entity
  * @entity: the entity
@@ -191,7 +174,7 @@  int vsp1_subdev_get_pad_format(struct v4l2_subdev *subdev,
 		return -EINVAL;
 
 	mutex_lock(&entity->lock);
-	fmt->format = *vsp1_entity_get_pad_format(entity, state, fmt->pad);
+	fmt->format = *v4l2_subdev_state_get_format(state, fmt->pad);
 	mutex_unlock(&entity->lock);
 
 	return 0;
@@ -238,7 +221,7 @@  int vsp1_subdev_enum_mbus_code(struct v4l2_subdev *subdev,
 			return -EINVAL;
 
 		mutex_lock(&entity->lock);
-		format = vsp1_entity_get_pad_format(entity, state, 0);
+		format = v4l2_subdev_state_get_format(state, 0);
 		code->code = format->code;
 		mutex_unlock(&entity->lock);
 	}
@@ -276,7 +259,7 @@  int vsp1_subdev_enum_frame_size(struct v4l2_subdev *subdev,
 	if (!state)
 		return -EINVAL;
 
-	format = vsp1_entity_get_pad_format(entity, state, fse->pad);
+	format = v4l2_subdev_state_get_format(state, fse->pad);
 
 	mutex_lock(&entity->lock);
 
@@ -346,7 +329,7 @@  int vsp1_subdev_set_pad_format(struct v4l2_subdev *subdev,
 		goto done;
 	}
 
-	format = vsp1_entity_get_pad_format(entity, state, fmt->pad);
+	format = v4l2_subdev_state_get_format(state, fmt->pad);
 
 	if (fmt->pad == entity->source_pad) {
 		/* The output format can't be modified. */
@@ -374,7 +357,7 @@  int vsp1_subdev_set_pad_format(struct v4l2_subdev *subdev,
 	fmt->format = *format;
 
 	/* Propagate the format to the source pad. */
-	format = vsp1_entity_get_pad_format(entity, state, entity->source_pad);
+	format = v4l2_subdev_state_get_format(state, entity->source_pad);
 	*format = fmt->format;
 
 	/* Reset the crop and compose rectangles. */
diff --git a/drivers/media/platform/renesas/vsp1/vsp1_entity.h b/drivers/media/platform/renesas/vsp1/vsp1_entity.h
index 735f32dde4b5..e913befe7fc8 100644
--- a/drivers/media/platform/renesas/vsp1/vsp1_entity.h
+++ b/drivers/media/platform/renesas/vsp1/vsp1_entity.h
@@ -138,10 +138,6 @@  struct v4l2_subdev_state *
 vsp1_entity_get_state(struct vsp1_entity *entity,
 		      struct v4l2_subdev_state *sd_state,
 		      enum v4l2_subdev_format_whence which);
-struct v4l2_mbus_framefmt *
-vsp1_entity_get_pad_format(struct vsp1_entity *entity,
-			   struct v4l2_subdev_state *sd_state,
-			   unsigned int pad);
 struct v4l2_rect *
 vsp1_entity_get_pad_selection(struct vsp1_entity *entity,
 			      struct v4l2_subdev_state *sd_state,
diff --git a/drivers/media/platform/renesas/vsp1/vsp1_histo.c b/drivers/media/platform/renesas/vsp1/vsp1_histo.c
index 71155282ca11..ad38726c234f 100644
--- a/drivers/media/platform/renesas/vsp1/vsp1_histo.c
+++ b/drivers/media/platform/renesas/vsp1/vsp1_histo.c
@@ -233,8 +233,7 @@  static int histo_get_selection(struct v4l2_subdev *subdev,
 
 	case V4L2_SEL_TGT_CROP_BOUNDS:
 	case V4L2_SEL_TGT_CROP_DEFAULT:
-		format = vsp1_entity_get_pad_format(&histo->entity, state,
-						    HISTO_PAD_SINK);
+		format = v4l2_subdev_state_get_format(state, HISTO_PAD_SINK);
 		sel->r.left = 0;
 		sel->r.top = 0;
 		sel->r.width = format->width;
@@ -266,8 +265,7 @@  static int histo_set_crop(struct v4l2_subdev *subdev,
 	struct v4l2_rect *selection;
 
 	/* The crop rectangle must be inside the input frame. */
-	format = vsp1_entity_get_pad_format(&histo->entity, sd_state,
-					    HISTO_PAD_SINK);
+	format = v4l2_subdev_state_get_format(sd_state, HISTO_PAD_SINK);
 	sel->r.left = clamp_t(unsigned int, sel->r.left, 0, format->width - 1);
 	sel->r.top = clamp_t(unsigned int, sel->r.top, 0, format->height - 1);
 	sel->r.width = clamp_t(unsigned int, sel->r.width, HISTO_MIN_SIZE,
diff --git a/drivers/media/platform/renesas/vsp1/vsp1_hsit.c b/drivers/media/platform/renesas/vsp1/vsp1_hsit.c
index bc1299c29ac9..4a8cce808c93 100644
--- a/drivers/media/platform/renesas/vsp1/vsp1_hsit.c
+++ b/drivers/media/platform/renesas/vsp1/vsp1_hsit.c
@@ -78,7 +78,7 @@  static int hsit_set_format(struct v4l2_subdev *subdev,
 		goto done;
 	}
 
-	format = vsp1_entity_get_pad_format(&hsit->entity, state, fmt->pad);
+	format = v4l2_subdev_state_get_format(state, fmt->pad);
 
 	if (fmt->pad == HSIT_PAD_SOURCE) {
 		/*
@@ -101,8 +101,7 @@  static int hsit_set_format(struct v4l2_subdev *subdev,
 	fmt->format = *format;
 
 	/* Propagate the format to the source pad. */
-	format = vsp1_entity_get_pad_format(&hsit->entity, state,
-					    HSIT_PAD_SOURCE);
+	format = v4l2_subdev_state_get_format(state, HSIT_PAD_SOURCE);
 	*format = fmt->format;
 	format->code = hsit->inverse ? MEDIA_BUS_FMT_ARGB8888_1X32
 		     : MEDIA_BUS_FMT_AHSV8888_1X32;
diff --git a/drivers/media/platform/renesas/vsp1/vsp1_lif.c b/drivers/media/platform/renesas/vsp1/vsp1_lif.c
index b1d21a54837b..29d4c1521e6a 100644
--- a/drivers/media/platform/renesas/vsp1/vsp1_lif.c
+++ b/drivers/media/platform/renesas/vsp1/vsp1_lif.c
@@ -93,8 +93,8 @@  static void lif_configure_stream(struct vsp1_entity *entity,
 	unsigned int obth;
 	unsigned int lbth;
 
-	format = vsp1_entity_get_pad_format(&lif->entity, lif->entity.state,
-					    LIF_PAD_SOURCE);
+	format = v4l2_subdev_state_get_format(lif->entity.state,
+					      LIF_PAD_SOURCE);
 
 	switch (entity->vsp1->version & VI6_IP_VERSION_MODEL_MASK) {
 	case VI6_IP_VERSION_MODEL_VSPD_GEN2:
diff --git a/drivers/media/platform/renesas/vsp1/vsp1_rpf.c b/drivers/media/platform/renesas/vsp1/vsp1_rpf.c
index c47579efc65f..19d9f078748c 100644
--- a/drivers/media/platform/renesas/vsp1/vsp1_rpf.c
+++ b/drivers/media/platform/renesas/vsp1/vsp1_rpf.c
@@ -80,12 +80,10 @@  static void rpf_configure_stream(struct vsp1_entity *entity,
 	vsp1_rpf_write(rpf, dlb, VI6_RPF_SRCM_PSTRIDE, pstride);
 
 	/* Format */
-	sink_format = vsp1_entity_get_pad_format(&rpf->entity,
-						 rpf->entity.state,
-						 RWPF_PAD_SINK);
-	source_format = vsp1_entity_get_pad_format(&rpf->entity,
-						   rpf->entity.state,
-						   RWPF_PAD_SOURCE);
+	sink_format = v4l2_subdev_state_get_format(rpf->entity.state,
+						   RWPF_PAD_SINK);
+	source_format = v4l2_subdev_state_get_format(rpf->entity.state,
+						     RWPF_PAD_SOURCE);
 
 	infmt = VI6_RPF_INFMT_CIPM
 	      | (fmtinfo->hwfmt << VI6_RPF_INFMT_RDFMT_SHIFT);
diff --git a/drivers/media/platform/renesas/vsp1/vsp1_rwpf.c b/drivers/media/platform/renesas/vsp1/vsp1_rwpf.c
index 09fb6ffa14e2..574623a48a3d 100644
--- a/drivers/media/platform/renesas/vsp1/vsp1_rwpf.c
+++ b/drivers/media/platform/renesas/vsp1/vsp1_rwpf.c
@@ -79,7 +79,7 @@  static int vsp1_rwpf_set_format(struct v4l2_subdev *subdev,
 	    fmt->format.code != MEDIA_BUS_FMT_AYUV8_1X32)
 		fmt->format.code = MEDIA_BUS_FMT_AYUV8_1X32;
 
-	format = vsp1_entity_get_pad_format(&rwpf->entity, state, fmt->pad);
+	format = v4l2_subdev_state_get_format(state, fmt->pad);
 
 	if (fmt->pad == RWPF_PAD_SOURCE) {
 		/*
@@ -113,8 +113,7 @@  static int vsp1_rwpf_set_format(struct v4l2_subdev *subdev,
 	}
 
 	/* Propagate the format to the source pad. */
-	format = vsp1_entity_get_pad_format(&rwpf->entity, state,
-					    RWPF_PAD_SOURCE);
+	format = v4l2_subdev_state_get_format(state, RWPF_PAD_SOURCE);
 	*format = fmt->format;
 
 	if (rwpf->flip.rotate) {
@@ -157,8 +156,7 @@  static int vsp1_rwpf_get_selection(struct v4l2_subdev *subdev,
 		break;
 
 	case V4L2_SEL_TGT_CROP_BOUNDS:
-		format = vsp1_entity_get_pad_format(&rwpf->entity, state,
-						    RWPF_PAD_SINK);
+		format = v4l2_subdev_state_get_format(state, RWPF_PAD_SINK);
 		sel->r.left = 0;
 		sel->r.top = 0;
 		sel->r.width = format->width;
@@ -204,8 +202,7 @@  static int vsp1_rwpf_set_selection(struct v4l2_subdev *subdev,
 	}
 
 	/* Make sure the crop rectangle is entirely contained in the image. */
-	format = vsp1_entity_get_pad_format(&rwpf->entity, state,
-					    RWPF_PAD_SINK);
+	format = v4l2_subdev_state_get_format(state, RWPF_PAD_SINK);
 
 	/*
 	 * Restrict the crop rectangle coordinates to multiples of 2 to avoid
@@ -229,8 +226,7 @@  static int vsp1_rwpf_set_selection(struct v4l2_subdev *subdev,
 	*crop = sel->r;
 
 	/* Propagate the format to the source pad. */
-	format = vsp1_entity_get_pad_format(&rwpf->entity, state,
-					    RWPF_PAD_SOURCE);
+	format = v4l2_subdev_state_get_format(state, RWPF_PAD_SOURCE);
 	format->width = crop->width;
 	format->height = crop->height;
 
diff --git a/drivers/media/platform/renesas/vsp1/vsp1_sru.c b/drivers/media/platform/renesas/vsp1/vsp1_sru.c
index 11e008aa9f20..2c67aae0d5fd 100644
--- a/drivers/media/platform/renesas/vsp1/vsp1_sru.c
+++ b/drivers/media/platform/renesas/vsp1/vsp1_sru.c
@@ -131,7 +131,7 @@  static int sru_enum_frame_size(struct v4l2_subdev *subdev,
 	if (!state)
 		return -EINVAL;
 
-	format = vsp1_entity_get_pad_format(&sru->entity, state, SRU_PAD_SINK);
+	format = v4l2_subdev_state_get_format(state, SRU_PAD_SINK);
 
 	mutex_lock(&sru->entity.lock);
 
@@ -184,8 +184,7 @@  static void sru_try_format(struct vsp1_sru *sru,
 
 	case SRU_PAD_SOURCE:
 		/* The SRU can't perform format conversion. */
-		format = vsp1_entity_get_pad_format(&sru->entity, sd_state,
-						    SRU_PAD_SINK);
+		format = v4l2_subdev_state_get_format(sd_state, SRU_PAD_SINK);
 		fmt->code = format->code;
 
 		/*
@@ -234,13 +233,12 @@  static int sru_set_format(struct v4l2_subdev *subdev,
 
 	sru_try_format(sru, state, fmt->pad, &fmt->format);
 
-	format = vsp1_entity_get_pad_format(&sru->entity, state, fmt->pad);
+	format = v4l2_subdev_state_get_format(state, fmt->pad);
 	*format = fmt->format;
 
 	if (fmt->pad == SRU_PAD_SINK) {
 		/* Propagate the format to the source pad. */
-		format = vsp1_entity_get_pad_format(&sru->entity, state,
-						    SRU_PAD_SOURCE);
+		format = v4l2_subdev_state_get_format(state, SRU_PAD_SOURCE);
 		*format = fmt->format;
 
 		sru_try_format(sru, state, SRU_PAD_SOURCE, format);
@@ -277,10 +275,9 @@  static void sru_configure_stream(struct vsp1_entity *entity,
 	struct v4l2_mbus_framefmt *output;
 	u32 ctrl0;
 
-	input = vsp1_entity_get_pad_format(&sru->entity, sru->entity.state,
-					   SRU_PAD_SINK);
-	output = vsp1_entity_get_pad_format(&sru->entity, sru->entity.state,
-					    SRU_PAD_SOURCE);
+	input = v4l2_subdev_state_get_format(sru->entity.state, SRU_PAD_SINK);
+	output = v4l2_subdev_state_get_format(sru->entity.state,
+					      SRU_PAD_SOURCE);
 
 	if (input->code == MEDIA_BUS_FMT_ARGB8888_1X32)
 		ctrl0 = VI6_SRU_CTRL0_PARAM2 | VI6_SRU_CTRL0_PARAM3
@@ -307,10 +304,10 @@  static unsigned int sru_max_width(struct vsp1_entity *entity,
 	struct v4l2_mbus_framefmt *input;
 	struct v4l2_mbus_framefmt *output;
 
-	input = vsp1_entity_get_pad_format(&sru->entity, sru->entity.state,
-					   SRU_PAD_SINK);
-	output = vsp1_entity_get_pad_format(&sru->entity, sru->entity.state,
-					    SRU_PAD_SOURCE);
+	input = v4l2_subdev_state_get_format(sru->entity.state,
+					     SRU_PAD_SINK);
+	output = v4l2_subdev_state_get_format(sru->entity.state,
+					      SRU_PAD_SOURCE);
 
 	/*
 	 * The maximum input width of the SRU is 288 input pixels, but 32
@@ -333,10 +330,10 @@  static void sru_partition(struct vsp1_entity *entity,
 	struct v4l2_mbus_framefmt *input;
 	struct v4l2_mbus_framefmt *output;
 
-	input = vsp1_entity_get_pad_format(&sru->entity, sru->entity.state,
-					   SRU_PAD_SINK);
-	output = vsp1_entity_get_pad_format(&sru->entity, sru->entity.state,
-					    SRU_PAD_SOURCE);
+	input = v4l2_subdev_state_get_format(sru->entity.state,
+					     SRU_PAD_SINK);
+	output = v4l2_subdev_state_get_format(sru->entity.state,
+					      SRU_PAD_SOURCE);
 
 	/* Adapt if SRUx2 is enabled. */
 	if (input->width != output->width) {
diff --git a/drivers/media/platform/renesas/vsp1/vsp1_uds.c b/drivers/media/platform/renesas/vsp1/vsp1_uds.c
index d89f1197b86c..887b1f70611a 100644
--- a/drivers/media/platform/renesas/vsp1/vsp1_uds.c
+++ b/drivers/media/platform/renesas/vsp1/vsp1_uds.c
@@ -136,7 +136,7 @@  static int uds_enum_frame_size(struct v4l2_subdev *subdev,
 	if (!state)
 		return -EINVAL;
 
-	format = vsp1_entity_get_pad_format(&uds->entity, state, UDS_PAD_SINK);
+	format = v4l2_subdev_state_get_format(state, UDS_PAD_SINK);
 
 	mutex_lock(&uds->entity.lock);
 
@@ -183,8 +183,7 @@  static void uds_try_format(struct vsp1_uds *uds,
 
 	case UDS_PAD_SOURCE:
 		/* The UDS scales but can't perform format conversion. */
-		format = vsp1_entity_get_pad_format(&uds->entity, sd_state,
-						    UDS_PAD_SINK);
+		format = v4l2_subdev_state_get_format(sd_state, UDS_PAD_SINK);
 		fmt->code = format->code;
 
 		uds_output_limits(format->width, &minimum, &maximum);
@@ -217,13 +216,12 @@  static int uds_set_format(struct v4l2_subdev *subdev,
 
 	uds_try_format(uds, state, fmt->pad, &fmt->format);
 
-	format = vsp1_entity_get_pad_format(&uds->entity, state, fmt->pad);
+	format = v4l2_subdev_state_get_format(state, fmt->pad);
 	*format = fmt->format;
 
 	if (fmt->pad == UDS_PAD_SINK) {
 		/* Propagate the format to the source pad. */
-		format = vsp1_entity_get_pad_format(&uds->entity, state,
-						    UDS_PAD_SOURCE);
+		format = v4l2_subdev_state_get_format(state, UDS_PAD_SOURCE);
 		*format = fmt->format;
 
 		uds_try_format(uds, state, UDS_PAD_SOURCE, format);
@@ -265,10 +263,9 @@  static void uds_configure_stream(struct vsp1_entity *entity,
 	unsigned int vscale;
 	bool multitap;
 
-	input = vsp1_entity_get_pad_format(&uds->entity, uds->entity.state,
-					   UDS_PAD_SINK);
-	output = vsp1_entity_get_pad_format(&uds->entity, uds->entity.state,
-					    UDS_PAD_SOURCE);
+	input = v4l2_subdev_state_get_format(uds->entity.state, UDS_PAD_SINK);
+	output = v4l2_subdev_state_get_format(uds->entity.state,
+					      UDS_PAD_SOURCE);
 
 	hscale = uds_compute_ratio(input->width, output->width);
 	vscale = uds_compute_ratio(input->height, output->height);
@@ -310,8 +307,8 @@  static void uds_configure_partition(struct vsp1_entity *entity,
 	struct vsp1_partition *partition = pipe->partition;
 	const struct v4l2_mbus_framefmt *output;
 
-	output = vsp1_entity_get_pad_format(&uds->entity, uds->entity.state,
-					    UDS_PAD_SOURCE);
+	output = v4l2_subdev_state_get_format(uds->entity.state,
+					      UDS_PAD_SOURCE);
 
 	/* Input size clipping. */
 	vsp1_uds_write(uds, dlb, VI6_UDS_HSZCLIP, VI6_UDS_HSZCLIP_HCEN |
@@ -335,10 +332,9 @@  static unsigned int uds_max_width(struct vsp1_entity *entity,
 	const struct v4l2_mbus_framefmt *input;
 	unsigned int hscale;
 
-	input = vsp1_entity_get_pad_format(&uds->entity, uds->entity.state,
-					   UDS_PAD_SINK);
-	output = vsp1_entity_get_pad_format(&uds->entity, uds->entity.state,
-					    UDS_PAD_SOURCE);
+	input = v4l2_subdev_state_get_format(uds->entity.state, UDS_PAD_SINK);
+	output = v4l2_subdev_state_get_format(uds->entity.state,
+					      UDS_PAD_SOURCE);
 	hscale = output->width / input->width;
 
 	/*
@@ -377,10 +373,9 @@  static void uds_partition(struct vsp1_entity *entity,
 	partition->uds_sink = *window;
 	partition->uds_source = *window;
 
-	input = vsp1_entity_get_pad_format(&uds->entity, uds->entity.state,
-					   UDS_PAD_SINK);
-	output = vsp1_entity_get_pad_format(&uds->entity, uds->entity.state,
-					    UDS_PAD_SOURCE);
+	input = v4l2_subdev_state_get_format(uds->entity.state, UDS_PAD_SINK);
+	output = v4l2_subdev_state_get_format(uds->entity.state,
+					      UDS_PAD_SOURCE);
 
 	partition->uds_sink.width = window->width * input->width
 				  / output->width;
diff --git a/drivers/media/platform/renesas/vsp1/vsp1_uif.c b/drivers/media/platform/renesas/vsp1/vsp1_uif.c
index f66936a28a2a..ee5b6ba22898 100644
--- a/drivers/media/platform/renesas/vsp1/vsp1_uif.c
+++ b/drivers/media/platform/renesas/vsp1/vsp1_uif.c
@@ -104,8 +104,7 @@  static int uif_get_selection(struct v4l2_subdev *subdev,
 	switch (sel->target) {
 	case V4L2_SEL_TGT_CROP_BOUNDS:
 	case V4L2_SEL_TGT_CROP_DEFAULT:
-		format = vsp1_entity_get_pad_format(&uif->entity, state,
-						    UIF_PAD_SINK);
+		format = v4l2_subdev_state_get_format(state, UIF_PAD_SINK);
 		sel->r.left = 0;
 		sel->r.top = 0;
 		sel->r.width = format->width;
@@ -150,7 +149,7 @@  static int uif_set_selection(struct v4l2_subdev *subdev,
 	}
 
 	/* The crop rectangle must be inside the input frame. */
-	format = vsp1_entity_get_pad_format(&uif->entity, state, UIF_PAD_SINK);
+	format = v4l2_subdev_state_get_format(state, UIF_PAD_SINK);
 
 	sel->r.left = clamp_t(unsigned int, sel->r.left, 0, format->width - 1);
 	sel->r.top = clamp_t(unsigned int, sel->r.top, 0, format->height - 1);
diff --git a/drivers/media/platform/renesas/vsp1/vsp1_video.c b/drivers/media/platform/renesas/vsp1/vsp1_video.c
index 5a9cb0e5640e..9cb81b4c65ed 100644
--- a/drivers/media/platform/renesas/vsp1/vsp1_video.c
+++ b/drivers/media/platform/renesas/vsp1/vsp1_video.c
@@ -197,9 +197,8 @@  static void vsp1_video_calculate_partition(struct vsp1_pipeline *pipe,
 	 * Partitions are computed on the size before rotation, use the format
 	 * at the WPF sink.
 	 */
-	format = vsp1_entity_get_pad_format(&pipe->output->entity,
-					    pipe->output->entity.state,
-					    RWPF_PAD_SINK);
+	format = v4l2_subdev_state_get_format(pipe->output->entity.state,
+					      RWPF_PAD_SINK);
 
 	/* A single partition simply processes the output size in full. */
 	if (pipe->partitions <= 1) {
@@ -262,9 +261,8 @@  static int vsp1_video_pipeline_setup_partitions(struct vsp1_pipeline *pipe)
 	 * Partitions are computed on the size before rotation, use the format
 	 * at the WPF sink.
 	 */
-	format = vsp1_entity_get_pad_format(&pipe->output->entity,
-					    pipe->output->entity.state,
-					    RWPF_PAD_SINK);
+	format = v4l2_subdev_state_get_format(pipe->output->entity.state,
+					      RWPF_PAD_SINK);
 	div_size = format->width;
 
 	/*
diff --git a/drivers/media/platform/renesas/vsp1/vsp1_wpf.c b/drivers/media/platform/renesas/vsp1/vsp1_wpf.c
index 9693aeab1cac..5129181b8217 100644
--- a/drivers/media/platform/renesas/vsp1/vsp1_wpf.c
+++ b/drivers/media/platform/renesas/vsp1/vsp1_wpf.c
@@ -65,12 +65,10 @@  static int vsp1_wpf_set_rotation(struct vsp1_rwpf *wpf, unsigned int rotation)
 		goto done;
 	}
 
-	sink_format = vsp1_entity_get_pad_format(&wpf->entity,
-						 wpf->entity.state,
-						 RWPF_PAD_SINK);
-	source_format = vsp1_entity_get_pad_format(&wpf->entity,
-						   wpf->entity.state,
-						   RWPF_PAD_SOURCE);
+	sink_format = v4l2_subdev_state_get_format(wpf->entity.state,
+						   RWPF_PAD_SINK);
+	source_format = v4l2_subdev_state_get_format(wpf->entity.state,
+						     RWPF_PAD_SOURCE);
 
 	mutex_lock(&wpf->entity.lock);
 
@@ -245,12 +243,10 @@  static void wpf_configure_stream(struct vsp1_entity *entity,
 	u32 srcrpf = 0;
 	int ret;
 
-	sink_format = vsp1_entity_get_pad_format(&wpf->entity,
-						 wpf->entity.state,
-						 RWPF_PAD_SINK);
-	source_format = vsp1_entity_get_pad_format(&wpf->entity,
-						   wpf->entity.state,
-						   RWPF_PAD_SOURCE);
+	sink_format = v4l2_subdev_state_get_format(wpf->entity.state,
+						   RWPF_PAD_SINK);
+	source_format = v4l2_subdev_state_get_format(wpf->entity.state,
+						     RWPF_PAD_SOURCE);
 
 	/* Format */
 	if (!pipe->lif || wpf->writeback) {
@@ -383,9 +379,8 @@  static void wpf_configure_partition(struct vsp1_entity *entity,
 	unsigned int flip;
 	unsigned int i;
 
-	sink_format = vsp1_entity_get_pad_format(&wpf->entity,
-						 wpf->entity.state,
-						 RWPF_PAD_SINK);
+	sink_format = v4l2_subdev_state_get_format(wpf->entity.state,
+						   RWPF_PAD_SINK);
 	width = sink_format->width;
 	height = sink_format->height;
 	left = 0;