[libcamera-devel] [PATCH v2 07/12] libcamera: pipeline: raspberrypi: Don't call handleState() in stop state

Jacopo Mondi jacopo at jmondi.org
Mon Jul 6 11:00:10 CEST 2020


Hi Laurent,

On Sat, Jul 04, 2020 at 03:52:22AM +0300, Laurent Pinchart wrote:
> The handleState() function is a no-op when the state is State::Stopped.
> Don't call it in that case, which simplifies the caller.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
>  src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> index a05fc68b98fa..74bee6895dcd 100644
> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> @@ -1188,7 +1188,7 @@ void RPiCameraData::queueFrameAction(unsigned int frame, const IPAOperationData
>  		ControlList controls = action.controls[0];
>  		if (!staggeredCtrl_.set(controls))
>  			LOG(RPI, Error) << "V4L2 staggered set failed";
> -		goto done;
> +		return;
>  	}
>
>  	case RPI_IPA_ACTION_SET_SENSOR_CONFIG: {
> @@ -1206,18 +1206,18 @@ void RPiCameraData::queueFrameAction(unsigned int frame, const IPAOperationData
>  		/* Set the sensor orientation here as well. */
>  		ControlList controls = action.controls[0];
>  		unicam_[Unicam::Image].dev()->setControls(&controls);
> -		goto done;
> +		return;
>  	}
>
>  	case RPI_IPA_ACTION_V4L2_SET_ISP: {
>  		ControlList controls = action.controls[0];
>  		isp_[Isp::Input].dev()->setControls(&controls);
> -		goto done;
> +		return;

I'm sure I don't fully understand the IPA protocol for this device,
but the comment says this operation *can* be handled with the IPA in
stopped state, not that the stop state is required. Furthermore, the
next switch block says the there handled operation *must not* be handled
in stopped state, which makes me think these ones can but don't
require to.


>  	}
>  	}
>
>  	if (state_ == State::Stopped)
> -		goto done;
> +		return;

This, instead, is crystal clear :)

>
>  	/*
>  	 * The following actions must not be handled when the pipeline handler
> @@ -1261,7 +1261,6 @@ void RPiCameraData::queueFrameAction(unsigned int frame, const IPAOperationData
>  		break;
>  	}
>
> -done:
>  	handleState();
>  }
>
> --
> Regards,
>
> Laurent Pinchart
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel


More information about the libcamera-devel mailing list