[{"id":14483,"web_url":"https://patchwork.libcamera.org/comment/14483/","msgid":"<20210108180610.p5tvatis6e5gmsdm@uno.localdomain>","date":"2021-01-08T18:06:10","subject":"Re: [libcamera-devel] [PATCH] libcamera: pipeline: ipu3: Stop ImgU\n\tand CIO2 on IPA error path","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Umang,\n\nOn Fri, Jan 08, 2021 at 11:31:13PM +0530, Umang Jain wrote:\n> Do not let freeBuffers() run before ImgU and CIO2 are stopped on IPA\n> configuration failure path.\n>\n\nThis is based on Niklas' in-review series, isn't it ?\n\n> Signed-off-by: Umang Jain <email@uajain.com>\n> Suggested-by: Jacopo Mondi <jacopo@jmondi.org>\n> Change-Id: Iadf0c950c24dcd3b6788275e36f2c028fbc53d7b\n\nUps, not Change-Id please :)\n\n> ---\n>  src/libcamera/pipeline/ipu3/ipu3.cpp | 2 ++\n>  1 file changed, 2 insertions(+)\n>\n> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> index 6cd1879a..3c7f98a9 100644\n> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> @@ -694,6 +694,8 @@ int PipelineHandlerIPU3::start(Camera *camera, [[maybe_unused]] ControlList *con\n>  \tif ((result.operation != IPU3_IPA_STATUS_CONFIGURATION) ||\n>  \t    (result.data.size() != 1) || (result.data.at(0) != 1)) {\n>  \t\tLOG(IPU3, Warning) << \"Failed to configure IPA\";\n> +\t\timgu->stop();\n> +\t\tcio2->stop();\n\nI would rather move these two instruction under the error: label and\nremove them from the above error paths\n\nThanks\n  j\n\n>  \t\tret = -EINVAL;\n>  \t\tgoto error;\n>  \t}\n> --\n> 2.29.2\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 4C528C0F1A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  8 Jan 2021 18:05:56 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id DCAC868056;\n\tFri,  8 Jan 2021 19:05:55 +0100 (CET)","from relay5-d.mail.gandi.net (relay5-d.mail.gandi.net\n\t[217.70.183.197])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id F30B868056\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  8 Jan 2021 19:05:54 +0100 (CET)","from uno.localdomain (2-224-242-101.ip172.fastwebnet.it\n\t[2.224.242.101]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay5-d.mail.gandi.net (Postfix) with ESMTPSA id 55CE51C000C;\n\tFri,  8 Jan 2021 18:05:53 +0000 (UTC)"],"X-Originating-IP":"2.224.242.101","Date":"Fri, 8 Jan 2021 19:06:10 +0100","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Umang Jain <email@uajain.com>","Message-ID":"<20210108180610.p5tvatis6e5gmsdm@uno.localdomain>","References":"<20210108180113.17039-1-email@uajain.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20210108180113.17039-1-email@uajain.com>","Subject":"Re: [libcamera-devel] [PATCH] libcamera: pipeline: ipu3: Stop ImgU\n\tand CIO2 on IPA error path","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=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":14521,"web_url":"https://patchwork.libcamera.org/comment/14521/","msgid":"<739776eb-c0d3-da86-feee-732cb34ae8da@uajain.com>","date":"2021-01-11T08:35:00","subject":"Re: [libcamera-devel] [PATCH] libcamera: pipeline: ipu3: Stop ImgU\n\tand CIO2 on IPA error path","submitter":{"id":1,"url":"https://patchwork.libcamera.org/api/people/1/","name":"Umang Jain","email":"email@uajain.com"},"content":"Hi Jacopo\n\nOn 1/8/21 11:36 PM, Jacopo Mondi wrote:\n> Hi Umang,\n>\n> On Fri, Jan 08, 2021 at 11:31:13PM +0530, Umang Jain wrote:\n>> Do not let freeBuffers() run before ImgU and CIO2 are stopped on IPA\n>> configuration failure path.\n>>\n> This is based on Niklas' in-review series, isn't it ?\n>\nRight. I realized it now, for some reason, I assumed it's in master :-S\n>> Signed-off-by: Umang Jain <email@uajain.com>\n>> Suggested-by: Jacopo Mondi <jacopo@jmondi.org>\n>> Change-Id: Iadf0c950c24dcd3b6788275e36f2c028fbc53d7b\n> Ups, not Change-Id please :)\n>\n>> ---\n>>   src/libcamera/pipeline/ipu3/ipu3.cpp | 2 ++\n>>   1 file changed, 2 insertions(+)\n>>\n>> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n>> index 6cd1879a..3c7f98a9 100644\n>> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n>> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n>> @@ -694,6 +694,8 @@ int PipelineHandlerIPU3::start(Camera *camera, [[maybe_unused]] ControlList *con\n>>   \tif ((result.operation != IPU3_IPA_STATUS_CONFIGURATION) ||\n>>   \t    (result.data.size() != 1) || (result.data.at(0) != 1)) {\n>>   \t\tLOG(IPU3, Warning) << \"Failed to configure IPA\";\n>> +\t\timgu->stop();\n>> +\t\tcio2->stop();\n> I would rather move these two instruction under the error: label and\n> remove them from the above error paths\nIf we move these two instructions under the error: label :\n\nI  spent some time looking into effects of different permutations on \nerror: label, for e.g. if cio2 fails and jumps to error: - it shall \nimgu->stop() directly (without starting it first). I concluded on the \npoint that stopping Imgu (cio2 for that matter) _directly_ won't be a \nproblem. The stop() in both cases calls to ioctl(VIDIOC_STREAMOFF,..) - \nwhich has clear documentation for calling it directly (without having a \ncall to ioctl(VIDIOC_STREAMON, ...)\nhttps://www.kernel.org/doc/html/v5.4/media/uapi/v4l/vidioc-streamon.html\n\nDoes it makes sense?\n>\n> Thanks\n>    j\n>\n>>   \t\tret = -EINVAL;\n>>   \t\tgoto error;\n>>   \t}\n>> --\n>> 2.29.2\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 5EFB8BD808\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 11 Jan 2021 08:35:07 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D8554680A1;\n\tMon, 11 Jan 2021 09:35:06 +0100 (CET)","from mail.uajain.com (static.126.159.217.95.clients.your-server.de\n\t[95.217.159.126])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5933E6010B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 11 Jan 2021 09:35:05 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=uajain.com header.i=@uajain.com\n\theader.b=\"oOM+i2rN\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=uajain.com; s=mail;\n\tt=1610354104; bh=ikPN518VAdvpQEk8QqmhWk5vC12f0EM1TRfJ5Q98xIg=;\n\th=Subject:To:Cc:References:From:In-Reply-To;\n\tb=oOM+i2rNvFLZJNf70LOSe8CkaWcw/QfoG5RdVwrBZzYN+X1AhJ5LTSs2MCTF6DY18\n\tiu6FCgJp8cfIm1m/2TUmge15oTn0J3f+qQEgEl9YWrxobhTYtbNoukyBqdqgyZv/MH\n\t6KgHl0G82vsrKN9mbG1NInzjYyLrZEoEAT3jNnqNa/POj8gcuUsN6j4C5OdGqfYhx5\n\tAaFgue5fVDd7ndhUD9g1XyvrY2stIDKPFx+qqG3/MSTedtfgVXu5dIScUG4v156N4t\n\tzqWHxGMD/8KafWY5G5CyEiThYCYWaxg8YJwYX+kyKJnP4xt/txMwogvBROTH1Jgnd+\n\t+8xjgJAWhrgMw==","To":"Jacopo Mondi <jacopo@jmondi.org>","References":"<20210108180113.17039-1-email@uajain.com>\n\t<20210108180610.p5tvatis6e5gmsdm@uno.localdomain>","From":"Umang Jain <email@uajain.com>","Message-ID":"<739776eb-c0d3-da86-feee-732cb34ae8da@uajain.com>","Date":"Mon, 11 Jan 2021 14:05:00 +0530","Mime-Version":"1.0","In-Reply-To":"<20210108180610.p5tvatis6e5gmsdm@uno.localdomain>","Content-Language":"en-US","Subject":"Re: [libcamera-devel] [PATCH] libcamera: pipeline: ipu3: Stop ImgU\n\tand CIO2 on IPA error path","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-Transfer-Encoding":"base64","Content-Type":"text/plain; charset=\"utf-8\"; Format=\"flowed\"","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":14522,"web_url":"https://patchwork.libcamera.org/comment/14522/","msgid":"<20210111092517.jkqqffs7vrogmwki@uno.localdomain>","date":"2021-01-11T09:25:17","subject":"Re: [libcamera-devel] [PATCH] libcamera: pipeline: ipu3: Stop ImgU\n\tand CIO2 on IPA error path","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Uman,\n\nOn Mon, Jan 11, 2021 at 02:05:00PM +0530, Umang Jain wrote:\n> Hi Jacopo\n>\n> On 1/8/21 11:36 PM, Jacopo Mondi wrote:\n> > Hi Umang,\n> >\n> > On Fri, Jan 08, 2021 at 11:31:13PM +0530, Umang Jain wrote:\n> > > Do not let freeBuffers() run before ImgU and CIO2 are stopped on IPA\n> > > configuration failure path.\n> > >\n> > This is based on Niklas' in-review series, isn't it ?\n> >\n> Right. I realized it now, for some reason, I assumed it's in master :-S\n> > > Signed-off-by: Umang Jain <email@uajain.com>\n> > > Suggested-by: Jacopo Mondi <jacopo@jmondi.org>\n> > > Change-Id: Iadf0c950c24dcd3b6788275e36f2c028fbc53d7b\n> > Ups, not Change-Id please :)\n> >\n> > > ---\n> > >   src/libcamera/pipeline/ipu3/ipu3.cpp | 2 ++\n> > >   1 file changed, 2 insertions(+)\n> > >\n> > > diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> > > index 6cd1879a..3c7f98a9 100644\n> > > --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> > > +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> > > @@ -694,6 +694,8 @@ int PipelineHandlerIPU3::start(Camera *camera, [[maybe_unused]] ControlList *con\n> > >   \tif ((result.operation != IPU3_IPA_STATUS_CONFIGURATION) ||\n> > >   \t    (result.data.size() != 1) || (result.data.at(0) != 1)) {\n> > >   \t\tLOG(IPU3, Warning) << \"Failed to configure IPA\";\n> > > +\t\timgu->stop();\n> > > +\t\tcio2->stop();\n> > I would rather move these two instruction under the error: label and\n> > remove them from the above error paths\n> If we move these two instructions under the error: label :\n>\n> I  spent some time looking into effects of different permutations on error:\n> label, for e.g. if cio2 fails and jumps to error: - it shall imgu->stop()\n> directly (without starting it first). I concluded on the point that stopping\n> Imgu (cio2 for that matter) _directly_ won't be a problem. The stop() in\n> both cases calls to ioctl(VIDIOC_STREAMOFF,..) - which has clear\n> documentation for calling it directly (without having a call to\n> ioctl(VIDIOC_STREAMON, ...)\n> https://www.kernel.org/doc/html/v5.4/media/uapi/v4l/vidioc-streamon.html\n>\n> Does it makes sense?\n\nYes, STREAMOFF should be harmeless to be called if STREAMON was not\ncalled.\n\nOtherwise, the error path could be made:\n\n        ret = cio2->start();\n        if (ret)\n                return ret;\n\n        ret = imgu->start();\n        if (ret)\n                goto error_cio2_stop;\n\n        ret = ....\n        if (ret)\n                goto error_imgu_stop;\n\nerror_imgu_stop:\n        imgu->stop();\nerror_cio2_stop:\n        cio2->stop();\n        freeBuffers(camera);\n        return ret;\n\nC++ is sometimes nasty with gotos, I haven't tried compiling this bit.\n\n> >\n> > Thanks\n> >    j\n> >\n> > >   \t\tret = -EINVAL;\n> > >   \t\tgoto error;\n> > >   \t}\n> > > --\n> > > 2.29.2\n> > >\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 634A4BD80C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 11 Jan 2021 09:25:03 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D4959680A3;\n\tMon, 11 Jan 2021 10:25:02 +0100 (CET)","from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net\n\t[217.70.183.199])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 41EF56010B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 11 Jan 2021 10:25:01 +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 relay9-d.mail.gandi.net (Postfix) with ESMTPSA id ADC97FF80E;\n\tMon, 11 Jan 2021 09:25:00 +0000 (UTC)"],"X-Originating-IP":"93.34.118.233","Date":"Mon, 11 Jan 2021 10:25:17 +0100","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Umang Jain <email@uajain.com>","Message-ID":"<20210111092517.jkqqffs7vrogmwki@uno.localdomain>","References":"<20210108180113.17039-1-email@uajain.com>\n\t<20210108180610.p5tvatis6e5gmsdm@uno.localdomain>\n\t<739776eb-c0d3-da86-feee-732cb34ae8da@uajain.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<739776eb-c0d3-da86-feee-732cb34ae8da@uajain.com>","Subject":"Re: [libcamera-devel] [PATCH] libcamera: pipeline: ipu3: Stop ImgU\n\tand CIO2 on IPA error path","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>"}},{"id":14523,"web_url":"https://patchwork.libcamera.org/comment/14523/","msgid":"<62076391-2940-15f8-f782-943b8dd9312a@ideasonboard.com>","date":"2021-01-11T09:39:57","subject":"Re: [libcamera-devel] [PATCH] libcamera: pipeline: ipu3: Stop ImgU\n\tand CIO2 on IPA error path","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Umang, Jacopo,\n\nOn 11/01/2021 09:25, Jacopo Mondi wrote:\n> Hi Uman,\n> \n> On Mon, Jan 11, 2021 at 02:05:00PM +0530, Umang Jain wrote:\n>> Hi Jacopo\n>>\n>> On 1/8/21 11:36 PM, Jacopo Mondi wrote:\n>>> Hi Umang,\n>>>\n>>> On Fri, Jan 08, 2021 at 11:31:13PM +0530, Umang Jain wrote:\n>>>> Do not let freeBuffers() run before ImgU and CIO2 are stopped on IPA\n>>>> configuration failure path.\n>>>>\n>>> This is based on Niklas' in-review series, isn't it ?\n>>>\n>> Right. I realized it now, for some reason, I assumed it's in master :-S\n>>>> Signed-off-by: Umang Jain <email@uajain.com>\n>>>> Suggested-by: Jacopo Mondi <jacopo@jmondi.org>\n>>>> Change-Id: Iadf0c950c24dcd3b6788275e36f2c028fbc53d7b\n>>> Ups, not Change-Id please :)\n>>>\n>>>> ---\n>>>>   src/libcamera/pipeline/ipu3/ipu3.cpp | 2 ++\n>>>>   1 file changed, 2 insertions(+)\n>>>>\n>>>> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n>>>> index 6cd1879a..3c7f98a9 100644\n>>>> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n>>>> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n>>>> @@ -694,6 +694,8 @@ int PipelineHandlerIPU3::start(Camera *camera, [[maybe_unused]] ControlList *con\n>>>>   \tif ((result.operation != IPU3_IPA_STATUS_CONFIGURATION) ||\n>>>>   \t    (result.data.size() != 1) || (result.data.at(0) != 1)) {\n>>>>   \t\tLOG(IPU3, Warning) << \"Failed to configure IPA\";\n>>>> +\t\timgu->stop();\n>>>> +\t\tcio2->stop();\n>>> I would rather move these two instruction under the error: label and\n>>> remove them from the above error paths\n>> If we move these two instructions under the error: label :\n>>\n>> I  spent some time looking into effects of different permutations on error:\n>> label, for e.g. if cio2 fails and jumps to error: - it shall imgu->stop()\n>> directly (without starting it first). I concluded on the point that stopping\n>> Imgu (cio2 for that matter) _directly_ won't be a problem. The stop() in\n>> both cases calls to ioctl(VIDIOC_STREAMOFF,..) - which has clear\n>> documentation for calling it directly (without having a call to\n>> ioctl(VIDIOC_STREAMON, ...)\n>> https://www.kernel.org/doc/html/v5.4/media/uapi/v4l/vidioc-streamon.html\n>>\n>> Does it makes sense?\n> \n> Yes, STREAMOFF should be harmeless to be called if STREAMON was not\n> called.\n> \n\nI believe that statement is what stopped me from merging:\n\n\"libcamera: v4l2_videodevice: Track streaming state\"\nhttps://patchwork.libcamera.org/patch/2221/\n\nAs I recall it was deemed unnecessary (though has RB tags)\n\n\n> Otherwise, the error path could be made:\n> \n>         ret = cio2->start();\n>         if (ret)\n>                 return ret;\n> \n>         ret = imgu->start();\n>         if (ret)\n>                 goto error_cio2_stop;\n> \n>         ret = ....\n>         if (ret)\n>                 goto error_imgu_stop;\n> \n> error_imgu_stop:\n>         imgu->stop();\n> error_cio2_stop:\n>         cio2->stop();\n>         freeBuffers(camera);\n>         return ret;\n> \n> C++ is sometimes nasty with gotos, I haven't tried compiling this bit.\n\nI would say that if it's safe to call stop() we can just keep it simple\nand call stop regardless on all devices.\n\nOtherwise if there is an issue calling stop on a stopped device from\nV4L2, we can apply the referenced patch, to track state in the object,\nand then we can call stop() regardless ;-)\n\n--\nKieran\n\n\n> \n>>>\n>>> Thanks\n>>>    j\n>>>\n>>>>   \t\tret = -EINVAL;\n>>>>   \t\tgoto error;\n>>>>   \t}\n>>>> --\n>>>> 2.29.2\n>>>>\n>>\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel\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 9CF39BD808\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 11 Jan 2021 09:40:02 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 25BB5680A5;\n\tMon, 11 Jan 2021 10:40:02 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id F35F56010B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 11 Jan 2021 10:40:00 +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 76DAC3E;\n\tMon, 11 Jan 2021 10:40:00 +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=\"GzfM0E/n\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1610358000;\n\tbh=FPSeqqwRzHMLMEP5RvNsR6CkxSVIfnQ3T9WMFq4tzrc=;\n\th=Reply-To:Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=GzfM0E/nFrPuIGiL0s3180+pwFzyur5lbtnOzfREt+dyO8gUNpHzdK9wmBQaJ033l\n\tdCZgRJw+ErhxHUH8gIplgodXY4ZSWRok5o6vMfVEo89vJt/24N0EwGg+Z/Jy8dy6ZX\n\tJ6UZMAUd0HpYh2dfYHA5IvjGKPt/kaOp6HdU+4Qs=","To":"Jacopo Mondi <jacopo@jmondi.org>, Umang Jain <email@uajain.com>","References":"<20210108180113.17039-1-email@uajain.com>\n\t<20210108180610.p5tvatis6e5gmsdm@uno.localdomain>\n\t<739776eb-c0d3-da86-feee-732cb34ae8da@uajain.com>\n\t<20210111092517.jkqqffs7vrogmwki@uno.localdomain>","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":"<62076391-2940-15f8-f782-943b8dd9312a@ideasonboard.com>","Date":"Mon, 11 Jan 2021 09:39:57 +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":"<20210111092517.jkqqffs7vrogmwki@uno.localdomain>","Content-Language":"en-GB","Subject":"Re: [libcamera-devel] [PATCH] libcamera: pipeline: ipu3: Stop ImgU\n\tand CIO2 on IPA error path","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","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>"}}]