[libcamera-devel] [PATCH v2 0/8] IPU3 Stability
Kieran Bingham
kieran.bingham at ideasonboard.com
Fri Mar 12 06:47:19 CET 2021
This series continues the investigation and resolution of stability
issues identified on the IPU3 platform and pipeline handler.
Patches [1/8] and [2/8] are split from a test patch provided to me by
Laurent, where I have added the commit messages.
These ensure that messages sent by the IPA are handled correctly and do
not race at stop() time
Patch [3/8] was identified by valgrind and fixes an issue related to
uninitialised accesses on the buffers.
Patch [4/8] extends the state machine checks of the Camera to ensure
that the pipeline handler does not queue requests out of state.
Patch [5/8] is techincally the only remaining patch from v1 of the IPU3
stability series but now makes this condtion a fatal error to catch
incorrect usages in pipeline handlers.
Patch [6/8] has already been posted separately and is key to the
resolution of the IPU3 IPA shutdown procedure fixes.
Patch [7/8] adds a guarantee that all requests have completed before
releasing buffers. This guarantee would fail before this series. It
may be helpful to add this assertion to a common call in the pipeline
handler base class, or to the CameraData as part of future developments.
Patch [8/8] adds further assertions that the FrameInfo can be found
during event handling from the IPA. This also would have failed before
this series.
Kieran Bingham (6):
libcamera: buffer: Initialise status
libcamera: camera: Validate requests are completed in Running state
libcamera: v4l2_videodevice: Prevent queueing buffers without a cache
libcamera: pipeline: ipu3: Stop IPA before stopping devices
libcamera: pipeline: ipu3: Ensure no requests are pending at stop()
libcamera: pipeline: ipu3: Fail if the FrameInfo can't be found
Laurent Pinchart (2):
utils: ipc: proxy: Assert asynchronous calls execute in the running
state
utils: ipc: proxy: Process pending messages
include/libcamera/buffer.h | 4 ++--
src/libcamera/camera.cpp | 10 ++++++++--
src/libcamera/pipeline/ipu3/ipu3.cpp | 18 +++++++++++++++---
src/libcamera/v4l2_videodevice.cpp | 10 ++++++++++
.../module_ipa_proxy.cpp.tmpl | 2 ++
.../libcamera_templates/proxy_functions.tmpl | 6 ++++--
6 files changed, 41 insertions(+), 9 deletions(-)
--
2.25.1
More information about the libcamera-devel
mailing list