[libcamera-devel,v4,0/2] ipu3: Enable to handle a number of concurrent requests
mbox series

Message ID 20210421064847.324118-1-hiroh@chromium.org
Headers show
Series
  • ipu3: Enable to handle a number of concurrent requests
Related show

Message

Hirokazu Honda April 21, 2021, 6:48 a.m. UTC
PipelineHandler originally discards a request with ENOBUFS or
ENOMEM when a buffer is not available. The request will be
successful if enough buffers are available. This patch series
enables to process requests even if no buffer is available then
by storing the requests and retry queuing later.

Change in v4:
- Squash 1/3 and 3/3
- Use FrameBuffer::cancel() introduced by Kieran's patch series
- Address comments by Laurent

Change in v3:
- Cancel pending buffers correctly upon PipelineHandlerIPU3::stop()

Change in v2:
- Move a queue of pending requests to IPU3CameraData
- Pass queuePendingRequests() as signal to CIO2Device and
  IPU3Frame and invoke it from them.

Hirokazu Honda (2):
  pipeline: ipu3: Store requests in the case a buffer shortage
  libcamera: ipu3: Try queuing pending requests if a buffer is available

 src/libcamera/pipeline/ipu3/cio2.cpp   |  4 +-
 src/libcamera/pipeline/ipu3/cio2.h     |  2 +
 src/libcamera/pipeline/ipu3/frames.cpp |  6 +-
 src/libcamera/pipeline/ipu3/frames.h   |  4 ++
 src/libcamera/pipeline/ipu3/ipu3.cpp   | 77 +++++++++++++++++++-------
 5 files changed, 70 insertions(+), 23 deletions(-)

--
2.31.1.368.gbe11c130af-goog

Comments

Hirokazu Honda May 10, 2021, 6:13 a.m. UTC | #1
Gentle ping for review.

On Wed, Apr 21, 2021 at 3:48 PM Hirokazu Honda <hiroh@chromium.org> wrote:

> PipelineHandler originally discards a request with ENOBUFS or
> ENOMEM when a buffer is not available. The request will be
> successful if enough buffers are available. This patch series
> enables to process requests even if no buffer is available then
> by storing the requests and retry queuing later.
>
> Change in v4:
> - Squash 1/3 and 3/3
> - Use FrameBuffer::cancel() introduced by Kieran's patch series
> - Address comments by Laurent
>
> Change in v3:
> - Cancel pending buffers correctly upon PipelineHandlerIPU3::stop()
>
> Change in v2:
> - Move a queue of pending requests to IPU3CameraData
> - Pass queuePendingRequests() as signal to CIO2Device and
>   IPU3Frame and invoke it from them.
>
> Hirokazu Honda (2):
>   pipeline: ipu3: Store requests in the case a buffer shortage
>   libcamera: ipu3: Try queuing pending requests if a buffer is available
>
>  src/libcamera/pipeline/ipu3/cio2.cpp   |  4 +-
>  src/libcamera/pipeline/ipu3/cio2.h     |  2 +
>  src/libcamera/pipeline/ipu3/frames.cpp |  6 +-
>  src/libcamera/pipeline/ipu3/frames.h   |  4 ++
>  src/libcamera/pipeline/ipu3/ipu3.cpp   | 77 +++++++++++++++++++-------
>  5 files changed, 70 insertions(+), 23 deletions(-)
>
> --
> 2.31.1.368.gbe11c130af-goog
>