All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Jacopo Mondi <jacopo@jmondi.org>
Cc: linux-media@vger.kernel.org, Rui Miguel Silva <rmfrfs@gmail.com>,
	kernel@pengutronix.de, linux-imx@nxp.com,
	Paul Elder <paul.elder@ideasonboard.com>,
	Sakari Ailus <sakari.ailus@iki.fi>
Subject: Re: [PATCH 1/5] media: imx: imx-mipi-csis: Simplify mipi_csis_s_stream()
Date: Tue, 15 Mar 2022 13:19:43 +0200	[thread overview]
Message-ID: <YjB2Twp17epS4lpj@pendragon.ideasonboard.com> (raw)
In-Reply-To: <20220314103941.46021-2-jacopo@jmondi.org>

Hi Jacopo,

Thank you for the patch.

On Mon, Mar 14, 2022 at 11:39:37AM +0100, Jacopo Mondi wrote:
> Simplify the mipi_csis_s_stream() function.
> 
> This actually fixes a bug, as if calling the subdev's s_stream(1) fails,
> mipi_csis_stop_stream() was not called.
> 
> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
> ---
>  drivers/media/platform/imx/imx-mipi-csis.c | 58 ++++++++++++----------
>  1 file changed, 33 insertions(+), 25 deletions(-)
> 
> diff --git a/drivers/media/platform/imx/imx-mipi-csis.c b/drivers/media/platform/imx/imx-mipi-csis.c
> index c4d1a6fe5007..60e7f0452582 100644
> --- a/drivers/media/platform/imx/imx-mipi-csis.c
> +++ b/drivers/media/platform/imx/imx-mipi-csis.c
> @@ -910,43 +910,51 @@ static struct mipi_csis_device *sd_to_mipi_csis_device(struct v4l2_subdev *sdev)
>  static int mipi_csis_s_stream(struct v4l2_subdev *sd, int enable)
>  {
>  	struct mipi_csis_device *csis = sd_to_mipi_csis_device(sd);
> -	int ret = 0;
> +	int ret;
>  
> -	if (enable) {
> -		ret = mipi_csis_calculate_params(csis);
> -		if (ret < 0)
> -			return ret;
> +	if (!enable) {
> +		mutex_lock(&csis->lock);
>  
> -		mipi_csis_clear_counters(csis);
> +		v4l2_subdev_call(csis->src_sd, video, s_stream, 0);
>  
> -		ret = pm_runtime_resume_and_get(csis->dev);
> -		if (ret < 0)
> -			return ret;
> +		mipi_csis_stop_stream(csis);
> +		if (csis->debug.enable)
> +			mipi_csis_log_counters(csis, true);
> +
> +		mutex_unlock(&csis->lock);
> +
> +		pm_runtime_put(csis->dev);
> +
> +		return 0;
>  	}
>  
> -	mutex_lock(&csis->lock);
> +	ret = mipi_csis_calculate_params(csis);
> +	if (ret < 0)
> +		return ret;
>  
> -	if (enable) {
> -		mipi_csis_start_stream(csis);
> -		ret = v4l2_subdev_call(csis->src_sd, video, s_stream, 1);
> -		if (ret < 0)
> -			goto unlock;
> +	mipi_csis_clear_counters(csis);
>  
> -		mipi_csis_log_counters(csis, true);
> -	} else {
> -		v4l2_subdev_call(csis->src_sd, video, s_stream, 0);
> +	ret = pm_runtime_resume_and_get(csis->dev);
> +	if (ret < 0)
> +		return ret;
>  
> -		mipi_csis_stop_stream(csis);
> +	mutex_lock(&csis->lock);
>  
> -		if (csis->debug.enable)
> -			mipi_csis_log_counters(csis, true);
> -	}
> +	mipi_csis_start_stream(csis);
> +	ret = v4l2_subdev_call(csis->src_sd, video, s_stream, 1);
> +	if (ret < 0)
> +		goto out;
> +
> +	mipi_csis_log_counters(csis, true);
>  
> -unlock:
>  	mutex_unlock(&csis->lock);
>  
> -	if (!enable || ret < 0)
> -		pm_runtime_put(csis->dev);
> +	return 0;
> +
> +out:

I'd name the label error instead of out, as "out" and "done" usually
refer to either normal code paths or combined success+error paths. With
that,

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

I'll prepare a consolidated series with other pending patches and send a
pull request. If this is the only change, and if you're fine with I'll,
I can update this locally.

> +	mipi_csis_stop_stream(csis);
> +	mutex_unlock(&csis->lock);
> +	pm_runtime_put(csis->dev);
>  
>  	return ret;
>  }

-- 
Regards,

Laurent Pinchart

  reply	other threads:[~2022-03-15 11:20 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-14 10:39 [PATCH 0/5] media: imx: imx-mipi-csis: Additional cleanups Jacopo Mondi
2022-03-14 10:39 ` [PATCH 1/5] media: imx: imx-mipi-csis: Simplify mipi_csis_s_stream() Jacopo Mondi
2022-03-15 11:19   ` Laurent Pinchart [this message]
2022-03-14 10:39 ` [PATCH 2/5] media: imx: imx-mipi-csis: Drop powered flag Jacopo Mondi
2022-03-15 11:23   ` Laurent Pinchart
2022-03-14 10:39 ` [PATCH 3/5] media: imx: imx-mipi-csis: Remove lock from s_stream Jacopo Mondi
2022-03-15 11:26   ` Laurent Pinchart
2022-03-14 10:39 ` [PATCH 4/5] media: imx: imx-mipi-csis: Remove duplicated check Jacopo Mondi
2022-03-15 11:30   ` Laurent Pinchart
2022-03-15 12:27     ` Jacopo Mondi
2022-03-15 13:03       ` Laurent Pinchart
2022-03-15 13:53         ` Rui Miguel Silva
2022-03-14 10:39 ` [PATCH 5/5] media: imx: imx-mipi-csis: Protect mipi_csis_dump_regs() Jacopo Mondi
2022-03-15 11:34   ` Laurent Pinchart
2022-03-14 12:02 ` [PATCH 0/5] media: imx: imx-mipi-csis: Additional cleanups Rui Miguel Silva

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=YjB2Twp17epS4lpj@pendragon.ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=jacopo@jmondi.org \
    --cc=kernel@pengutronix.de \
    --cc=linux-imx@nxp.com \
    --cc=linux-media@vger.kernel.org \
    --cc=paul.elder@ideasonboard.com \
    --cc=rmfrfs@gmail.com \
    --cc=sakari.ailus@iki.fi \
    /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.