libcamera: ipu3: Queue requests to ImgU

Implement queueRequest for the IPU3 pipeline manager. When a request is
queued, a new buffer is queued to the ImgU output for capture.

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
Jacopo Mondi 2019-02-28 14:17:35 +01:00
parent 88316d63f0
commit b7ddedaf42

View file

@ -385,9 +385,10 @@ void PipelineHandlerIPU3::stop(Camera *camera)
int PipelineHandlerIPU3::queueRequest(Camera *camera, Request *request) int PipelineHandlerIPU3::queueRequest(Camera *camera, Request *request)
{ {
IPU3CameraData *data = cameraData(camera); IPU3CameraData *data = cameraData(camera);
V4L2Device *cio2 = data->cio2_.output_; V4L2Device *output = data->imgu_->output_.dev;
Stream *stream = &data->stream_; Stream *stream = &data->stream_;
/* Queue a buffer to the ImgU output for capture. */
Buffer *buffer = request->findBuffer(stream); Buffer *buffer = request->findBuffer(stream);
if (!buffer) { if (!buffer) {
LOG(IPU3, Error) LOG(IPU3, Error)
@ -395,7 +396,7 @@ int PipelineHandlerIPU3::queueRequest(Camera *camera, Request *request)
return -ENOENT; return -ENOENT;
} }
int ret = cio2->queueBuffer(buffer); int ret = output->queueBuffer(buffer);
if (ret < 0) if (ret < 0)
return ret; return ret;