public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
From: jacopo mondi <jacopo@jmondi.org>
To: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Cc: linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	Kieran Bingham <kieran.bingham@ideasonboard.com>
Subject: Re: [PATCH v2 3/8] v4l: vsp1: Reset the crop and compose rectangles in the set_fmt helper
Date: Sat, 28 Apr 2018 11:56:04 +0200	[thread overview]
Message-ID: <20180428095604.GB18201@w540> (raw)
In-Reply-To: <20180422223430.16407-4-laurent.pinchart+renesas@ideasonboard.com>

[-- Attachment #1: Type: text/plain, Size: 4645 bytes --]

Hi Laurent,

On Mon, Apr 23, 2018 at 01:34:25AM +0300, Laurent Pinchart wrote:
> To make vsp1_subdev_set_pad_format() usable by entities that support
> selection rectangles, we need to reset the crop and compose rectangles
> when setting the format on the sink pad. Do so and replace the custom
> set_fmt implementation of the histogram code by a call to
> vsp1_subdev_set_pad_format().
>
> Resetting the crop and compose rectangles for entities that don't
> support crop and compose has no adverse effect as the rectangles are
> ignored anyway.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

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


> ---
>  drivers/media/platform/vsp1/vsp1_entity.c | 16 +++++++++
>  drivers/media/platform/vsp1/vsp1_histo.c  | 59 +++----------------------------
>  2 files changed, 20 insertions(+), 55 deletions(-)
>
> diff --git a/drivers/media/platform/vsp1/vsp1_entity.c b/drivers/media/platform/vsp1/vsp1_entity.c
> index 239df047efd0..181a583aecad 100644
> --- a/drivers/media/platform/vsp1/vsp1_entity.c
> +++ b/drivers/media/platform/vsp1/vsp1_entity.c
> @@ -335,6 +335,7 @@ int vsp1_subdev_set_pad_format(struct v4l2_subdev *subdev,
>  	struct vsp1_entity *entity = to_vsp1_entity(subdev);
>  	struct v4l2_subdev_pad_config *config;
>  	struct v4l2_mbus_framefmt *format;
> +	struct v4l2_rect *selection;
>  	unsigned int i;
>  	int ret = 0;
>
> @@ -377,6 +378,21 @@ int vsp1_subdev_set_pad_format(struct v4l2_subdev *subdev,
>  	format = vsp1_entity_get_pad_format(entity, config, 1);
>  	*format = fmt->format;
>
> +	/* Reset the crop and compose rectangles */
> +	selection = vsp1_entity_get_pad_selection(entity, config, fmt->pad,
> +						  V4L2_SEL_TGT_CROP);
> +	selection->left = 0;
> +	selection->top = 0;
> +	selection->width = format->width;
> +	selection->height = format->height;
> +
> +	selection = vsp1_entity_get_pad_selection(entity, config, fmt->pad,
> +						  V4L2_SEL_TGT_COMPOSE);
> +	selection->left = 0;
> +	selection->top = 0;
> +	selection->width = format->width;
> +	selection->height = format->height;
> +
>  done:
>  	mutex_unlock(&entity->lock);
>  	return ret;
> diff --git a/drivers/media/platform/vsp1/vsp1_histo.c b/drivers/media/platform/vsp1/vsp1_histo.c
> index 029181c1fb61..5e15c8ff88d9 100644
> --- a/drivers/media/platform/vsp1/vsp1_histo.c
> +++ b/drivers/media/platform/vsp1/vsp1_histo.c
> @@ -389,65 +389,14 @@ static int histo_set_format(struct v4l2_subdev *subdev,
>  			    struct v4l2_subdev_format *fmt)
>  {
>  	struct vsp1_histogram *histo = subdev_to_histo(subdev);
> -	struct v4l2_subdev_pad_config *config;
> -	struct v4l2_mbus_framefmt *format;
> -	struct v4l2_rect *selection;
> -	unsigned int i;
> -	int ret = 0;
>
>  	if (fmt->pad != HISTO_PAD_SINK)
>  		return histo_get_format(subdev, cfg, fmt);
>
> -	mutex_lock(&histo->entity.lock);
> -
> -	config = vsp1_entity_get_pad_config(&histo->entity, cfg, fmt->which);
> -	if (!config) {
> -		ret = -EINVAL;
> -		goto done;
> -	}
> -
> -	/*
> -	 * Default to the first format if the requested format is not
> -	 * supported.
> -	 */
> -	for (i = 0; i < histo->num_formats; ++i) {
> -		if (fmt->format.code == histo->formats[i])
> -			break;
> -	}
> -	if (i == histo->num_formats)
> -		fmt->format.code = histo->formats[0];
> -
> -	format = vsp1_entity_get_pad_format(&histo->entity, config, fmt->pad);
> -
> -	format->code = fmt->format.code;
> -	format->width = clamp_t(unsigned int, fmt->format.width,
> -				HISTO_MIN_SIZE, HISTO_MAX_SIZE);
> -	format->height = clamp_t(unsigned int, fmt->format.height,
> -				 HISTO_MIN_SIZE, HISTO_MAX_SIZE);
> -	format->field = V4L2_FIELD_NONE;
> -	format->colorspace = V4L2_COLORSPACE_SRGB;
> -
> -	fmt->format = *format;
> -
> -	/* Reset the crop and compose rectangles */
> -	selection = vsp1_entity_get_pad_selection(&histo->entity, config,
> -						  fmt->pad, V4L2_SEL_TGT_CROP);
> -	selection->left = 0;
> -	selection->top = 0;
> -	selection->width = format->width;
> -	selection->height = format->height;
> -
> -	selection = vsp1_entity_get_pad_selection(&histo->entity, config,
> -						  fmt->pad,
> -						  V4L2_SEL_TGT_COMPOSE);
> -	selection->left = 0;
> -	selection->top = 0;
> -	selection->width = format->width;
> -	selection->height = format->height;
> -
> -done:
> -	mutex_unlock(&histo->entity.lock);
> -	return ret;
> +	return vsp1_subdev_set_pad_format(subdev, cfg, fmt,
> +					  histo->formats, histo->num_formats,
> +					  HISTO_MIN_SIZE, HISTO_MIN_SIZE,
> +					  HISTO_MAX_SIZE, HISTO_MAX_SIZE);
>  }
>
>  static const struct v4l2_subdev_pad_ops histo_pad_ops = {
> --
> Regards,
>
> Laurent Pinchart
>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  reply	other threads:[~2018-04-28  9:56 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-22 22:34 [PATCH v2 0/8] R-Car DU: Support CRC calculation Laurent Pinchart
2018-04-22 22:34 ` [PATCH v2 1/8] v4l: vsp1: Use SPDX license headers Laurent Pinchart
2018-04-27 21:25   ` Kieran Bingham
2018-04-27 21:47     ` Laurent Pinchart
2018-04-22 22:34 ` [PATCH v2 2/8] v4l: vsp1: Share the CLU, LIF and LUT set_fmt pad operation code Laurent Pinchart
2018-04-28  9:50   ` jacopo mondi
2018-04-28 16:07     ` Laurent Pinchart
2018-04-28 17:16   ` Kieran Bingham
2018-04-28 17:25     ` Laurent Pinchart
2018-04-28 17:30       ` Laurent Pinchart
2018-04-28 17:32         ` Kieran Bingham
2018-04-22 22:34 ` [PATCH v2 3/8] v4l: vsp1: Reset the crop and compose rectangles in the set_fmt helper Laurent Pinchart
2018-04-28  9:56   ` jacopo mondi [this message]
2018-04-28 17:22   ` Kieran Bingham
2018-04-22 22:34 ` [PATCH v2 4/8] v4l: vsp1: Document the vsp1_du_atomic_config structure Laurent Pinchart
2018-04-28 17:29   ` Kieran Bingham
2018-04-22 22:34 ` [PATCH v2 5/8] v4l: vsp1: Extend the DU API to support CRC computation Laurent Pinchart
2018-04-28 10:03   ` jacopo mondi
2018-04-28 16:19     ` Laurent Pinchart
2018-04-28 17:48   ` Kieran Bingham
2018-04-22 22:34 ` [PATCH v2 6/8] v4l: vsp1: Add support for the DISCOM entity Laurent Pinchart
2018-04-28 10:40   ` jacopo mondi
2018-04-28 16:50     ` Laurent Pinchart
2018-04-28 18:28   ` Kieran Bingham
2018-04-22 22:34 ` [PATCH v2 7/8] v4l: vsp1: Integrate DISCOM in display pipeline Laurent Pinchart
2018-04-28 11:00   ` jacopo mondi
2018-04-28 16:57     ` Laurent Pinchart
2018-04-28 18:58   ` Kieran Bingham
2018-04-28 19:15     ` Laurent Pinchart
2018-04-22 22:34 ` [PATCH v2 8/8] drm: rcar-du: Add support for CRC computation Laurent Pinchart
2018-04-28 19:16   ` Kieran Bingham
2018-04-28 20:15     ` Laurent Pinchart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180428095604.GB18201@w540 \
    --to=jacopo@jmondi.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=kieran.bingham@ideasonboard.com \
    --cc=laurent.pinchart+renesas@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox