[libcamera-devel,v4,0/6] IPU3 Debug Improvements
mbox series

Message ID 20210420130741.236848-1-kieran.bingham@ideasonboard.com
Headers show
Series
  • IPU3 Debug Improvements
Related show

Message

Kieran Bingham April 20, 2021, 1:07 p.m. UTC
This is 'very loosely' the next iteration of my earlier IPU3 debug
improvements series as it contains a reimplementation of the Request
Canary (by implementing Extensible Requests), a new version of 
  libcamera: camera: Assert pipelines complete all requests
and a repost of:
  libcamera: pipeline: ipu3: frames: Fail if the FrameInfo can't be found
which is further joined by the equivalent change in the RKISP1.

Furthermore, buffers now have a method to be able to mark them as
cancelled if they are not used, allowing pipeline handlers to ensure
buffer statuses are correctly set when the buffers don't actually get
sent to hardware for any reason. This is used by the IPU3 to make sure
when buffers are cancelled by the time they complete on the CIO2, and
they don't get queued to the IMGU, they are marked accordingly.

Finally, the internal logging mechanism for assertions is extended to
report the function the assertion occurs in ... simply because it helps
identify the issue quicker. Of course this information can be located by
following the lines reported to the assertion, but it helps in the
initial understanding of the report.


Kieran Bingham (6):
  libcamera: camera: Assert pipelines complete all requests
  libcamera: pipeline: ipu3: frames: Fail if the FrameInfo can't be
    found
  libcamera: pipeline: rkisp1: Fail RkISP1FrameInfo can't be found
  libcamera: pipeline: ipu3: Cancel unused buffers
  libcamera: internal: log: Report function on asserts
  libcamera: request: Make it extensible

 include/libcamera/buffer.h                    |  2 ++
 include/libcamera/internal/log.h              |  7 ++--
 include/libcamera/internal/pipeline_handler.h |  1 +
 include/libcamera/request.h                   |  4 ++-
 src/libcamera/buffer.cpp                      |  8 +++++
 src/libcamera/camera.cpp                      |  2 ++
 src/libcamera/pipeline/ipu3/frames.cpp        |  6 ++--
 src/libcamera/pipeline/ipu3/ipu3.cpp          |  7 ++--
 src/libcamera/pipeline/rkisp1/rkisp1.cpp      |  9 +++--
 src/libcamera/pipeline_handler.cpp            | 15 ++++++++
 src/libcamera/request.cpp                     | 34 +++++++++++++++++--
 11 files changed, 82 insertions(+), 13 deletions(-)