[{"id":13611,"web_url":"https://patchwork.libcamera.org/comment/13611/","msgid":"<2f181a72-a19d-77c6-49c5-591ebc891061@ideasonboard.com>","date":"2020-11-05T11:33:55","subject":"Re: [libcamera-devel] [PATCH 05/11] libcamera: ipu3: cio2: Return\n\tthe FrameBuffer pointer used","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Niklas,\n\nOn 05/11/2020 00:15, Niklas Söderlund wrote:\n> When adding IPA plumbing to the IPU3 pipeline handler it will be needed\n> to track witch raw buffer was queued to the CIO2 for a specific request.\n> Currently if using an internally allocated raw buffer the FrameBuffer is\n> not exposed outside the CIO2Device as it was not needed. Prepare for the\n> IPA by exposing which infernal raw buffer is picked for each request,\n> later changes will associate this with a Request.\n> \n> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> ---\n>  src/libcamera/pipeline/ipu3/cio2.cpp | 10 +++++++---\n>  src/libcamera/pipeline/ipu3/cio2.h   |  2 +-\n>  src/libcamera/pipeline/ipu3/ipu3.cpp |  8 ++++----\n>  3 files changed, 12 insertions(+), 8 deletions(-)\n> \n> diff --git a/src/libcamera/pipeline/ipu3/cio2.cpp b/src/libcamera/pipeline/ipu3/cio2.cpp\n> index e43ec70fe3e4e0db..1c7b9676f52abdb6 100644\n> --- a/src/libcamera/pipeline/ipu3/cio2.cpp\n> +++ b/src/libcamera/pipeline/ipu3/cio2.cpp\n> @@ -262,7 +262,7 @@ int CIO2Device::stop()\n>  \treturn ret;\n>  }\n>  \n> -int CIO2Device::queueBuffer(Request *request, FrameBuffer *rawBuffer)\n> +FrameBuffer *CIO2Device::queueBuffer(Request *request, FrameBuffer *rawBuffer)\n>  {\n>  \tFrameBuffer *buffer = rawBuffer;\n>  \n> @@ -270,7 +270,7 @@ int CIO2Device::queueBuffer(Request *request, FrameBuffer *rawBuffer)\n>  \tif (!buffer) {\n>  \t\tif (availableBuffers_.empty()) {\n>  \t\t\tLOG(IPU3, Error) << \"CIO2 buffer underrun\";\n> -\t\t\treturn -EINVAL;\n> +\t\t\treturn nullptr;\n>  \t\t}\n>  \n>  \t\tbuffer = availableBuffers_.front();\n> @@ -279,7 +279,11 @@ int CIO2Device::queueBuffer(Request *request, FrameBuffer *rawBuffer)\n>  \n>  \tbuffer->setRequest(request);\n>  \n> -\treturn output_->queueBuffer(buffer);\n> +\tint ret = output_->queueBuffer(buffer);\n> +\tif (ret)\n> +\t\treturn nullptr;\n> +\n> +\treturn buffer;\n>  }\n>  \n>  void CIO2Device::tryReturnBuffer(FrameBuffer *buffer)\n> diff --git a/src/libcamera/pipeline/ipu3/cio2.h b/src/libcamera/pipeline/ipu3/cio2.h\n> index fa813a989fd21aec..e8b491a0c104a3e2 100644\n> --- a/src/libcamera/pipeline/ipu3/cio2.h\n> +++ b/src/libcamera/pipeline/ipu3/cio2.h\n> @@ -52,7 +52,7 @@ public:\n>  \tCameraSensor *sensor() { return sensor_; }\n>  \tconst CameraSensor *sensor() const { return sensor_; }\n>  \n> -\tint queueBuffer(Request *request, FrameBuffer *rawBuffer);\n> +\tFrameBuffer *queueBuffer(Request *request, FrameBuffer *rawBuffer);\n>  \tvoid tryReturnBuffer(FrameBuffer *buffer);\n>  \tSignal<FrameBuffer *> &bufferReady() { return output_->bufferReady; }\n>  \n> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> index c559d160084f87e7..62e99a308a6136a7 100644\n> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> @@ -643,10 +643,10 @@ int PipelineHandlerIPU3::queueRequestDevice(Camera *camera, Request *request)\n>  \t * Queue a buffer on the CIO2, using the raw stream buffer provided in\n>  \t * the request, if any, or a CIO2 internal buffer otherwise.\n>  \t */\n> -\tFrameBuffer *rawBuffer = request->findBuffer(&data->rawStream_);\n> -\terror = data->cio2_.queueBuffer(request, rawBuffer);\n> -\tif (error)\n> -\t\treturn error;\n> +\tFrameBuffer *reqRawBuffer = request->findBuffer(&data->rawStream_);\n> +\tFrameBuffer *rawBuffer = data->cio2_.queueBuffer(request, reqRawBuffer);\n> +\tif (!rawBuffer)\n> +\t\treturn -ENOMEM;\n\nIt feels a bit opaque or odd to return a buffer from queueBuffer, but\ngiven that one of the parameters is 'a raw buffer to use', returning\n'which one actaully got used' doesn't feel that bad.\n\nIt just seems a bit odd that's all ... but I haven't seen how it's all\nused yet.\n\nI'll come back to this one I guess ;-)\n\n\n\n>  \n>  \t/* Queue all buffers from the request aimed for the ImgU. */\n>  \tfor (auto it : request->buffers()) {\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id D725BBE080\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  5 Nov 2020 11:33:59 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5D3A262CF4;\n\tThu,  5 Nov 2020 12:33:59 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1DD1860353\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  5 Nov 2020 12:33:58 +0100 (CET)","from [192.168.0.20]\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 9437951D;\n\tThu,  5 Nov 2020 12:33:57 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"tDisj63M\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1604576037;\n\tbh=/fP4LcKKai3BuLZYwNgEfWAbvg2sovQANaAoyxcNPDU=;\n\th=Reply-To:Subject:To:References:From:Date:In-Reply-To:From;\n\tb=tDisj63MfrX+NGe4UHS6O9zJcyCtGErPnUEGYxGvZOWU1E4fT4TuDNt3DQT8tBWv5\n\tT2gS3g2KQBlpIBDiHYFv2h/utdQeOcj7UYptK31wGaKT3tADDON8Vubod/6Gh9j6Xo\n\tYRSlsHuT+HJJrvpWcyJxSgTh982ZFLgY1/Nexrqc=","To":"=?utf-8?q?Niklas_S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20201105001546.1690179-1-niklas.soderlund@ragnatech.se>\n\t<20201105001546.1690179-6-niklas.soderlund@ragnatech.se>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Autocrypt":"addr=kieran.bingham@ideasonboard.com; keydata=\n\t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\n\tWZw01QYHU/GUV/zHJSFk","Organization":"Ideas on Board","Message-ID":"<2f181a72-a19d-77c6-49c5-591ebc891061@ideasonboard.com>","Date":"Thu, 5 Nov 2020 11:33:55 +0000","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101\n\tThunderbird/68.10.0","MIME-Version":"1.0","In-Reply-To":"<20201105001546.1690179-6-niklas.soderlund@ragnatech.se>","Content-Language":"en-GB","Subject":"Re: [libcamera-devel] [PATCH 05/11] libcamera: ipu3: cio2: Return\n\tthe FrameBuffer pointer used","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Reply-To":"kieran.bingham@ideasonboard.com","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":13638,"web_url":"https://patchwork.libcamera.org/comment/13638/","msgid":"<20201109105446.cqblsthhjcxqurrd@uno.localdomain>","date":"2020-11-09T10:54:46","subject":"Re: [libcamera-devel] [PATCH 05/11] libcamera: ipu3: cio2: Return\n\tthe FrameBuffer pointer used","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Niklas,\n\nOn Thu, Nov 05, 2020 at 01:15:40AM +0100, Niklas Söderlund wrote:\n> When adding IPA plumbing to the IPU3 pipeline handler it will be needed\n> to track witch raw buffer was queued to the CIO2 for a specific request.\n\ns/witch/which\n\n> Currently if using an internally allocated raw buffer the FrameBuffer is\n> not exposed outside the CIO2Device as it was not needed. Prepare for the\n> IPA by exposing which infernal raw buffer is picked for each request,\n\ns/infernal/internal\n\nWith 'witch raw buffers' and 'infernal raw buffers' I'm sure libcamera\nwould gain much more esoteric super-powers. I like it!\n\n> later changes will associate this with a Request.\n>\n> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> ---\n>  src/libcamera/pipeline/ipu3/cio2.cpp | 10 +++++++---\n>  src/libcamera/pipeline/ipu3/cio2.h   |  2 +-\n>  src/libcamera/pipeline/ipu3/ipu3.cpp |  8 ++++----\n>  3 files changed, 12 insertions(+), 8 deletions(-)\n>\n> diff --git a/src/libcamera/pipeline/ipu3/cio2.cpp b/src/libcamera/pipeline/ipu3/cio2.cpp\n> index e43ec70fe3e4e0db..1c7b9676f52abdb6 100644\n> --- a/src/libcamera/pipeline/ipu3/cio2.cpp\n> +++ b/src/libcamera/pipeline/ipu3/cio2.cpp\n> @@ -262,7 +262,7 @@ int CIO2Device::stop()\n>  \treturn ret;\n>  }\n>\n> -int CIO2Device::queueBuffer(Request *request, FrameBuffer *rawBuffer)\n> +FrameBuffer *CIO2Device::queueBuffer(Request *request, FrameBuffer *rawBuffer)\n>  {\n>  \tFrameBuffer *buffer = rawBuffer;\n>\n> @@ -270,7 +270,7 @@ int CIO2Device::queueBuffer(Request *request, FrameBuffer *rawBuffer)\n>  \tif (!buffer) {\n>  \t\tif (availableBuffers_.empty()) {\n>  \t\t\tLOG(IPU3, Error) << \"CIO2 buffer underrun\";\n> -\t\t\treturn -EINVAL;\n> +\t\t\treturn nullptr;\n>  \t\t}\n>\n>  \t\tbuffer = availableBuffers_.front();\n> @@ -279,7 +279,11 @@ int CIO2Device::queueBuffer(Request *request, FrameBuffer *rawBuffer)\n>\n>  \tbuffer->setRequest(request);\n>\n> -\treturn output_->queueBuffer(buffer);\n> +\tint ret = output_->queueBuffer(buffer);\n> +\tif (ret)\n> +\t\treturn nullptr;\n> +\n> +\treturn buffer;\n>  }\n>\n>  void CIO2Device::tryReturnBuffer(FrameBuffer *buffer)\n> diff --git a/src/libcamera/pipeline/ipu3/cio2.h b/src/libcamera/pipeline/ipu3/cio2.h\n> index fa813a989fd21aec..e8b491a0c104a3e2 100644\n> --- a/src/libcamera/pipeline/ipu3/cio2.h\n> +++ b/src/libcamera/pipeline/ipu3/cio2.h\n> @@ -52,7 +52,7 @@ public:\n>  \tCameraSensor *sensor() { return sensor_; }\n>  \tconst CameraSensor *sensor() const { return sensor_; }\n>\n> -\tint queueBuffer(Request *request, FrameBuffer *rawBuffer);\n> +\tFrameBuffer *queueBuffer(Request *request, FrameBuffer *rawBuffer);\n>  \tvoid tryReturnBuffer(FrameBuffer *buffer);\n>  \tSignal<FrameBuffer *> &bufferReady() { return output_->bufferReady; }\n>\n> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> index c559d160084f87e7..62e99a308a6136a7 100644\n> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> @@ -643,10 +643,10 @@ int PipelineHandlerIPU3::queueRequestDevice(Camera *camera, Request *request)\n>  \t * Queue a buffer on the CIO2, using the raw stream buffer provided in\n>  \t * the request, if any, or a CIO2 internal buffer otherwise.\n>  \t */\n> -\tFrameBuffer *rawBuffer = request->findBuffer(&data->rawStream_);\n> -\terror = data->cio2_.queueBuffer(request, rawBuffer);\n> -\tif (error)\n> -\t\treturn error;\n> +\tFrameBuffer *reqRawBuffer = request->findBuffer(&data->rawStream_);\n> +\tFrameBuffer *rawBuffer = data->cio2_.queueBuffer(request, reqRawBuffer);\n\nI wonder if we should not better overload CIO2Device::queueBuffer(),\none version that accepts an externally provided buffer, and one that\nuses an internal one. We can't overload on return value, so they\nshould be named differently, but the code here would look like:\n\n        FrameBuffer *rawBuffer = request->findBuffer(&data->rawStream_);\n        int ret;\n        if (!rawBuffer) {\n                rawBuffer = data->cio2_.queueInternalBuffer(request);\n                ret = !!rawBuffer;\n        } else {\n                ret = data->cio2_.queueInternalBuffer(request, rawBuffer);\n        }\n        if (ret)\n                return -ENOMEM;\n\nIt's less compact but more explicit. Up to you, what you have here is\ngood as well\n\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\nThanks\n   j\n\n> +\tif (!rawBuffer)\n> +\t\treturn -ENOMEM;\n>\n>  \t/* Queue all buffers from the request aimed for the ImgU. */\n>  \tfor (auto it : request->buffers()) {\n> --\n> 2.29.2\n>\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 0D32ABDB89\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  9 Nov 2020 10:54:46 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A5B306306B;\n\tMon,  9 Nov 2020 11:54:45 +0100 (CET)","from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net\n\t[217.70.183.195])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E031962D19\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  9 Nov 2020 11:54:44 +0100 (CET)","from uno.localdomain (93-34-118-233.ip49.fastwebnet.it\n\t[93.34.118.233]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay3-d.mail.gandi.net (Postfix) with ESMTPSA id 6F3F860010;\n\tMon,  9 Nov 2020 10:54:43 +0000 (UTC)"],"X-Originating-IP":"93.34.118.233","Date":"Mon, 9 Nov 2020 11:54:46 +0100","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Niklas =?utf-8?q?S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","Message-ID":"<20201109105446.cqblsthhjcxqurrd@uno.localdomain>","References":"<20201105001546.1690179-1-niklas.soderlund@ragnatech.se>\n\t<20201105001546.1690179-6-niklas.soderlund@ragnatech.se>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20201105001546.1690179-6-niklas.soderlund@ragnatech.se>","Subject":"Re: [libcamera-devel] [PATCH 05/11] libcamera: ipu3: cio2: Return\n\tthe FrameBuffer pointer used","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]