[libcamera-devel] [PATCH v5 5/6] libcamera: ipu3: Set pipe_mode based on stream configuration

Kieran Bingham kieran.bingham at ideasonboard.com
Mon Jun 24 10:40:52 CEST 2019


Hi Jacopo,

On 20/06/2019 16:31, Jacopo Mondi wrote:
> Set the ImgU pipe_mode control based on the active stream configuration.
> Use 'Video' pipe mode unless the viewfinder stream is not active.
> 

Thanks for adding in the "enum IPU3PipeModes".

Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>

> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
> ---
>  src/libcamera/pipeline/ipu3/ipu3.cpp | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
> index 1c0a9825b4cd..54a6735dfc87 100644
> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp
> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
> @@ -22,6 +22,7 @@
>  #include "media_device.h"
>  #include "pipeline_handler.h"
>  #include "utils.h"
> +#include "v4l2_controls.h"
>  #include "v4l2_subdevice.h"
>  #include "v4l2_videodevice.h"
>  
> @@ -194,6 +195,12 @@ private:
>  class PipelineHandlerIPU3 : public PipelineHandler
>  {
>  public:
> +	static constexpr unsigned int V4L2_CID_IPU3_PIPE_MODE = 0x009819c1;
> +	enum IPU3PipeModes {
> +		IPU3PipeModeVideo = 0,
> +		IPU3PipeModeStillCapture = 1,
> +	};
> +
>  	PipelineHandlerIPU3(CameraManager *manager);
>  
>  	CameraConfiguration *generateConfiguration(Camera *camera,
> @@ -559,6 +566,17 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)
>  	if (ret)
>  		return ret;
>  
> +	/* Apply the "pipe_mode" control to the ImgU subdevice. */
> +	V4L2Controls ctrls;
> +	ctrls.add(V4L2_CID_IPU3_PIPE_MODE, vfStream->active_ ?
> +		       			   IPU3PipeModeVideo :
> +					   IPU3PipeModeStillCapture);
> +	ret = imgu->imgu_->setControls(&ctrls);
> +	if (ret) {
> +		LOG(IPU3, Error) << "Unable to set pipe_mode control";
> +		return ret;
> +	}
> +
>  	return 0;
>  }
>  
> 

-- 
Regards
--
Kieran


More information about the libcamera-devel mailing list