All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rui Miguel Silva <rmfrfs@gmail.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	linux-media@vger.kernel.org
Cc: Martin Kepplinger <martink@posteo.de>,
	Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>,
	imx@lists.linux.dev, Purism Kernel Team <kernel@puri.sm>
Subject: Re: [PATCH] media: imx-mipi-csis: Use v4l2_subdev_enable_streams()
Date: Thu, 20 Jun 2024 10:47:14 +0100	[thread overview]
Message-ID: <m3h6do3pzx.fsf@gmail.com> (raw)
In-Reply-To: <20240619232431.5708-1-laurent.pinchart@ideasonboard.com>

Hey Laurent,
Laurent Pinchart <laurent.pinchart@ideasonboard.com> writes:

> To support sources that implement the .enable_streams() and
> .disable_streams() operations, replace the manual calls to the subdev
> .s_stream() operation with the v4l2_subdev_enable_streams() and
> v4l2_subdev_disable_streams() helpers. The helpers fall back to
> .s_stream() if the source doesn't implement the new operations, so
> backward compatibility is preserved.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Thanks for this, LGTM.

Reviewed-by: Rui Miguel Silva <rmfrfs@gmail.com>

Cheers,
   Rui

> ---
>  drivers/media/platform/nxp/imx-mipi-csis.c | 22 +++++++++++++++-------
>  1 file changed, 15 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/media/platform/nxp/imx-mipi-csis.c b/drivers/media/platform/nxp/imx-mipi-csis.c
> index f49b06978f14..b9729a8883d6 100644
> --- a/drivers/media/platform/nxp/imx-mipi-csis.c
> +++ b/drivers/media/platform/nxp/imx-mipi-csis.c
> @@ -320,7 +320,11 @@ struct mipi_csis_device {
>  	struct v4l2_subdev sd;
>  	struct media_pad pads[CSIS_PADS_NUM];
>  	struct v4l2_async_notifier notifier;
> -	struct v4l2_subdev *src_sd;
> +
> +	struct {
> +		struct v4l2_subdev *sd;
> +		const struct media_pad *pad;
> +	} source;
>  
>  	struct v4l2_mbus_config_mipi_csi2 bus;
>  	u32 clk_frequency;
> @@ -597,7 +601,7 @@ static int mipi_csis_calculate_params(struct mipi_csis_device *csis,
>  	u32 lane_rate;
>  
>  	/* Calculate the line rate from the pixel rate. */
> -	link_freq = v4l2_get_link_freq(csis->src_sd->ctrl_handler,
> +	link_freq = v4l2_get_link_freq(csis->source.sd->ctrl_handler,
>  				       csis_fmt->width,
>  				       csis->bus.num_data_lanes * 2);
>  	if (link_freq < 0) {
> @@ -958,7 +962,8 @@ static int mipi_csis_s_stream(struct v4l2_subdev *sd, int enable)
>  	int ret;
>  
>  	if (!enable) {
> -		v4l2_subdev_call(csis->src_sd, video, s_stream, 0);
> +		v4l2_subdev_disable_streams(csis->source.sd,
> +					    csis->source.pad->index, BIT(0));
>  
>  		mipi_csis_stop_stream(csis);
>  		if (csis->debug.enable)
> @@ -986,7 +991,8 @@ static int mipi_csis_s_stream(struct v4l2_subdev *sd, int enable)
>  
>  	mipi_csis_start_stream(csis, format, csis_fmt);
>  
> -	ret = v4l2_subdev_call(csis->src_sd, video, s_stream, 1);
> +	ret = v4l2_subdev_enable_streams(csis->source.sd,
> +					 csis->source.pad->index, BIT(0));
>  	if (ret < 0)
>  		goto err_stop;
>  
> @@ -1233,12 +1239,14 @@ static int mipi_csis_link_setup(struct media_entity *entity,
>  	remote_sd = media_entity_to_v4l2_subdev(remote_pad->entity);
>  
>  	if (flags & MEDIA_LNK_FL_ENABLED) {
> -		if (csis->src_sd)
> +		if (csis->source.sd)
>  			return -EBUSY;
>  
> -		csis->src_sd = remote_sd;
> +		csis->source.sd = remote_sd;
> +		csis->source.pad = remote_pad;
>  	} else {
> -		csis->src_sd = NULL;
> +		csis->source.sd = NULL;
> +		csis->source.pad = NULL;
>  	}
>  
>  	return 0;
>
> base-commit: 6ba59ff4227927d3a8530fc2973b80e94b54d58f
> -- 
> Regards,
>
> Laurent Pinchart

      parent reply	other threads:[~2024-06-20  9:47 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-19 23:24 [PATCH] media: imx-mipi-csis: Use v4l2_subdev_enable_streams() Laurent Pinchart
2024-06-20  6:34 ` Tomi Valkeinen
2024-06-20  9:47 ` Rui Miguel Silva [this message]

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=m3h6do3pzx.fsf@gmail.com \
    --to=rmfrfs@gmail.com \
    --cc=imx@lists.linux.dev \
    --cc=kernel@puri.sm \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=martink@posteo.de \
    --cc=tomi.valkeinen@ideasonboard.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.