[libcamera-devel,10/22] ipu3: Move delayedControls reset after IPA is started
diff mbox series

Message ID 20211108131350.130665-11-jeanmichel.hautbois@ideasonboard.com
State Superseded
Headers show
Series
  • IPA: IPU3: Introduce per-frame controls
Related show

Commit Message

Jean-Michel Hautbois Nov. 8, 2021, 1:13 p.m. UTC
We can call configure multiple times and we don't need to reset
delayedControls for each of the configure calls. Reset it after the IPA
is started.

Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
---
 src/libcamera/pipeline/ipu3/ipu3.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

Comments

Kieran Bingham Nov. 8, 2021, 1:49 p.m. UTC | #1
Quoting Jean-Michel Hautbois (2021-11-08 13:13:38)
> We can call configure multiple times and we don't need to reset
> delayedControls for each of the configure calls. Reset it after the IPA
> is started.
> 
> Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
> ---
>  src/libcamera/pipeline/ipu3/ipu3.cpp | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
> index 6a7f5b9a..3fcfa777 100644
> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp
> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
> @@ -667,8 +667,6 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)
>                 return ret;
>         }
>  
> -       data->delayedCtrls_->reset();
> -
>         return updateControls(data);
>  }
>  
> @@ -769,6 +767,12 @@ int PipelineHandlerIPU3::start(Camera *camera, [[maybe_unused]] const ControlLis
>         if (ret)
>                 goto error;
>  
> +       /*
> +        * Reset the delayed controls with the gain and exposure values set by
> +        * the IPA.
> +        */
> +       data->delayedCtrls_->reset();
> +

Should this be squashed into 2/22?

Han-Lin - Does this affect your use case at all? (I suspect it's ok)
--
Kieran


>         /*
>          * Start the ImgU video devices, buffers will be queued to the
>          * ImgU output and viewfinder when requests will be queued.
> -- 
> 2.32.0
>
Kieran Bingham Nov. 8, 2021, 1:53 p.m. UTC | #2
Perhaps put 

libcamera: pipeline: ipu3: in the $SUBJECT?

$ git log --oneline ./src/libcamera/pipeline

shows a bit of a mix of styles, but I think we can be more specific than
just ipu3: as that doesn't make it clear which side is being changed.


Quoting Kieran Bingham (2021-11-08 13:49:35)
> Quoting Jean-Michel Hautbois (2021-11-08 13:13:38)
> > We can call configure multiple times and we don't need to reset
> > delayedControls for each of the configure calls. Reset it after the IPA
> > is started.
> > 
> > Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
> > ---
> >  src/libcamera/pipeline/ipu3/ipu3.cpp | 8 ++++++--
> >  1 file changed, 6 insertions(+), 2 deletions(-)
> > 
> > diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
> > index 6a7f5b9a..3fcfa777 100644
> > --- a/src/libcamera/pipeline/ipu3/ipu3.cpp
> > +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
> > @@ -667,8 +667,6 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)
> >                 return ret;
> >         }
> >  
> > -       data->delayedCtrls_->reset();
> > -
> >         return updateControls(data);
> >  }
> >  
> > @@ -769,6 +767,12 @@ int PipelineHandlerIPU3::start(Camera *camera, [[maybe_unused]] const ControlLis
> >         if (ret)
> >                 goto error;
> >  
> > +       /*
> > +        * Reset the delayed controls with the gain and exposure values set by
> > +        * the IPA.
> > +        */
> > +       data->delayedCtrls_->reset();
> > +
> 
> Should this be squashed into 2/22?

In fact, it probably stands alone from 2/22 and could be 'before' it.
(With the addition of the ->reset in current 2/22 not being required in
that patch).



> 
> Han-Lin - Does this affect your use case at all? (I suspect it's ok)
> --
> Kieran
> 
> 
> >         /*
> >          * Start the ImgU video devices, buffers will be queued to the
> >          * ImgU output and viewfinder when requests will be queued.
> > -- 
> > 2.32.0
> >
Hanlin Chen Nov. 9, 2021, 10:54 a.m. UTC | #3
Thanks for the patch Jean-Michel,
On Mon, Nov 8, 2021 at 9:49 PM Kieran Bingham
<kieran.bingham@ideasonboard.com> wrote:
>
> Quoting Jean-Michel Hautbois (2021-11-08 13:13:38)
> > We can call configure multiple times and we don't need to reset
> > delayedControls for each of the configure calls. Reset it after the IPA
> > is started.
> >
> > Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
> > ---
> >  src/libcamera/pipeline/ipu3/ipu3.cpp | 8 ++++++--
> >  1 file changed, 6 insertions(+), 2 deletions(-)
> >
> > diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
> > index 6a7f5b9a..3fcfa777 100644
> > --- a/src/libcamera/pipeline/ipu3/ipu3.cpp
> > +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
> > @@ -667,8 +667,6 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)
> >                 return ret;
> >         }
> >
> > -       data->delayedCtrls_->reset();
> > -
> >         return updateControls(data);
> >  }
> >
> > @@ -769,6 +767,12 @@ int PipelineHandlerIPU3::start(Camera *camera, [[maybe_unused]] const ControlLis
> >         if (ret)
> >                 goto error;
> >
> > +       /*
> > +        * Reset the delayed controls with the gain and exposure values set by
> > +        * the IPA.
> > +        */
> > +       data->delayedCtrls_->reset();
> > +
>
> Should this be squashed into 2/22?
>
> Han-Lin - Does this affect your use case at all? (I suspect it's ok)
I think it should be okay as long as we reset it before the first
frame queuing into the sensor node.
> --
> Kieran
>
>
> >         /*
> >          * Start the ImgU video devices, buffers will be queued to the
> >          * ImgU output and viewfinder when requests will be queued.
> > --
> > 2.32.0
> >

Patch
diff mbox series

diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index 6a7f5b9a..3fcfa777 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -667,8 +667,6 @@  int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)
 		return ret;
 	}
 
-	data->delayedCtrls_->reset();
-
 	return updateControls(data);
 }
 
@@ -769,6 +767,12 @@  int PipelineHandlerIPU3::start(Camera *camera, [[maybe_unused]] const ControlLis
 	if (ret)
 		goto error;
 
+	/*
+	 * Reset the delayed controls with the gain and exposure values set by
+	 * the IPA.
+	 */
+	data->delayedCtrls_->reset();
+
 	/*
 	 * Start the ImgU video devices, buffers will be queued to the
 	 * ImgU output and viewfinder when requests will be queued.