[{"id":10969,"web_url":"https://patchwork.libcamera.org/comment/10969/","msgid":"<20200629145638.GH1852218@oden.dyn.berto.se>","date":"2020-06-29T14:56:38","subject":"Re: [libcamera-devel] [PATCH v1 9/9] libcamera: pipeline:\n\traspberrypi: Don't handle any actions in stop state","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"content":"Hi Laurent,\n\nThanks for your work.\n\nOn 2020-06-29 02:19:34 +0300, Laurent Pinchart wrote:\n> The RPI_IPA_ACTION_V4L2_SET_ISP is handled regardless of the pipeline\n> handler state, but is only generated by the IPA when the pipeline is\n> running. Don't handle it in the stopped state, which simplifies the\n> handling of actions.\n> \n> Additionally, handleState() is a no-op when the state is State::Stopped,\n> so don't call it in that case.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nReviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n\n> ---\n>  .../pipeline/raspberrypi/raspberrypi.cpp      | 25 +++++++------------\n>  1 file changed, 9 insertions(+), 16 deletions(-)\n> \n> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> index 137e07379cf5..2a5d27fefe0c 100644\n> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> @@ -1190,24 +1190,12 @@ int RPiCameraData::configureIPA()\n>  void RPiCameraData::queueFrameAction(unsigned int frame, const IPAOperationData &action)\n>  {\n>  \t/*\n> -\t * The following actions can be handled when the pipeline handler is in\n> -\t * a stopped state.\n> +\t * Actions are only handled when the pipeline handler is not in a\n> +\t * stopped state.\n>  \t */\n> -\tswitch (action.operation) {\n> -\tcase RPI_IPA_ACTION_V4L2_SET_ISP: {\n> -\t\tControlList controls = action.controls[0];\n> -\t\tisp_[Isp::Input].dev()->setControls(&controls);\n> -\t\tgoto done;\n> -\t}\n> -\t}\n> -\n>  \tif (state_ == State::Stopped)\n> -\t\tgoto done;\n> +\t\treturn;\n>  \n> -\t/*\n> -\t * The following actions must not be handled when the pipeline handler\n> -\t * is in a stopped state.\n> -\t */\n>  \tswitch (action.operation) {\n>  \tcase RPI_IPA_ACTION_V4L2_SET_STAGGERED: {\n>  \t\tconst ControlList &controls = action.controls[0];\n> @@ -1216,6 +1204,12 @@ void RPiCameraData::queueFrameAction(unsigned int frame, const IPAOperationData\n>  \t\tbreak;\n>  \t}\n>  \n> +\tcase RPI_IPA_ACTION_V4L2_SET_ISP: {\n> +\t\tControlList controls = action.controls[0];\n> +\t\tisp_[Isp::Input].dev()->setControls(&controls);\n> +\t\tbreak;\n> +\t}\n> +\n>  \tcase RPI_IPA_ACTION_STATS_METADATA_COMPLETE: {\n>  \t\tunsigned int bufferId = action.data[0];\n>  \t\tFrameBuffer *buffer = isp_[Isp::Stats].getBuffers()->at(bufferId).get();\n> @@ -1253,7 +1247,6 @@ void RPiCameraData::queueFrameAction(unsigned int frame, const IPAOperationData\n>  \t\tbreak;\n>  \t}\n>  \n> -done:\n>  \thandleState();\n>  }\n>  \n> -- \n> Regards,\n> \n> Laurent Pinchart\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 1BF7ABF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 29 Jun 2020 14:56:41 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id DB38E609D6;\n\tMon, 29 Jun 2020 16:56:40 +0200 (CEST)","from mail-lf1-x142.google.com (mail-lf1-x142.google.com\n\t[IPv6:2a00:1450:4864:20::142])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 517EC603B4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 29 Jun 2020 16:56:40 +0200 (CEST)","by mail-lf1-x142.google.com with SMTP id g139so9233013lfd.10\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 29 Jun 2020 07:56:40 -0700 (PDT)","from localhost (h-209-203.A463.priv.bahnhof.se. [155.4.209.203])\n\tby smtp.gmail.com with ESMTPSA id l1sm28680ljc.65.2020.06.29.07.56.39\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tMon, 29 Jun 2020 07:56:39 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=ragnatech-se.20150623.gappssmtp.com\n\theader.i=@ragnatech-se.20150623.gappssmtp.com\n\theader.b=\"oF+9KWUg\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ragnatech-se.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:content-transfer-encoding:in-reply-to;\n\tbh=0XUNqdgVGzmTuhZNFy/SrYq+PMiu9qNM586Qlhoh3BM=;\n\tb=oF+9KWUgiRIHsC1ioK9Ixx9YGWhBklr6tOWhbqk8slt9sh0/zj7ptCkvoQpJE7/IUM\n\tGOwGLugDjUBlzJOnq2oF855TwRPk1B140aT0gU4OfOgBCf3wKFTe9snJqcPEQbLv6yjC\n\tlEW51/0vul697DYz8n3qxxLiUPG33Kd/4CFAyaWqAAXMPzWD84DWQXu+HohLEdxN/MA2\n\tdyoNEHXI44WFw95galEN2yS2pHOByQef/LCz2dQDcvjnwoZmXLMj8iWn5puT4ooxlwKu\n\t18eFqCW7ijqoZHX3VKIQTvDv5cI+VJH3HI/E5fzkooeM8CXk/6ghNWVh5gnnrxK5puWQ\n\tAJBA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:content-transfer-encoding\n\t:in-reply-to;\n\tbh=0XUNqdgVGzmTuhZNFy/SrYq+PMiu9qNM586Qlhoh3BM=;\n\tb=Kxs51VUU2O9tOKIR90Kyu97CHT3e7kEwV2bpOTClhc3ch3LohG6NGxl9kxd+gK1IeG\n\t71s+8pFAcyf1nbIu2EStXixyO3zgVahlE71HMzRD1J1vbinLwxCRLVb5CbfkiSBECtKG\n\t4RzpUkc0JNVowMbh1lWjE8S3KwdsKIBc2ioVujCx8Ae9yztrEcphdxorxCtF7NJgdMke\n\tRb3EwGfPttbJGnAm322VjFJ5sJQl/AYRH8jfZMN8skAtnRg4uuhrLq05TBWTJlLIIpyt\n\tB+YPWMJCgsaRrcj5/mTinLkTFrTdVh6s6dSTZwYLH11gRRSxpyW26ng0TEwDHLqjHLyE\n\tsDvg==","X-Gm-Message-State":"AOAM531ZwMT/ul2dXoWCyR7ckpXu9srzuz4eX7QPZfmlf6nw6HSCkUl5\n\tTE//kJnmIKAofLU0JSB47txoX+vZFEs=","X-Google-Smtp-Source":"ABdhPJyj7KwJiOmE3Pk/mTD0f89UQJxL3rNygeu3hLp3rs10szUJvbFhb1g47xe9sEaho7l1DpBtGg==","X-Received":"by 2002:ac2:518c:: with SMTP id u12mr9321363lfi.91.1593442599784;\n\tMon, 29 Jun 2020 07:56:39 -0700 (PDT)","Date":"Mon, 29 Jun 2020 16:56:38 +0200","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20200629145638.GH1852218@oden.dyn.berto.se>","References":"<20200628231934.29025-1-laurent.pinchart@ideasonboard.com>\n\t<20200628231934.29025-10-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20200628231934.29025-10-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v1 9/9] libcamera: pipeline:\n\traspberrypi: Don't handle any actions in stop state","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=\"iso-8859-1\"","Content-Transfer-Encoding":"quoted-printable","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":10977,"web_url":"https://patchwork.libcamera.org/comment/10977/","msgid":"<CAEmqJPpGp7QoGmBs+mFpr5v=wNnznGaS_Bq_1CwThAQjHf_VHA@mail.gmail.com>","date":"2020-06-29T17:08:21","subject":"Re: [libcamera-devel] [PATCH v1 9/9] libcamera: pipeline:\n\traspberrypi: Don't handle any actions in stop state","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi Laurent,\n\nThank you for the patch.\n\nOn Mon, 29 Jun 2020 at 00:19, Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> The RPI_IPA_ACTION_V4L2_SET_ISP is handled regardless of the pipeline\n> handler state, but is only generated by the IPA when the pipeline is\n> running. Don't handle it in the stopped state, which simplifies the\n> handling of actions.\n>\n> Additionally, handleState() is a no-op when the state is State::Stopped,\n> so don't call it in that case.\n>\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n>  .../pipeline/raspberrypi/raspberrypi.cpp      | 25 +++++++------------\n>  1 file changed, 9 insertions(+), 16 deletions(-)\n>\n> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> index 137e07379cf5..2a5d27fefe0c 100644\n> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> @@ -1190,24 +1190,12 @@ int RPiCameraData::configureIPA()\n>  void RPiCameraData::queueFrameAction(unsigned int frame, const IPAOperationData &action)\n>  {\n>         /*\n> -        * The following actions can be handled when the pipeline handler is in\n> -        * a stopped state.\n> +        * Actions are only handled when the pipeline handler is not in a\n> +        * stopped state.\n>          */\n> -       switch (action.operation) {\n> -       case RPI_IPA_ACTION_V4L2_SET_ISP: {\n> -               ControlList controls = action.controls[0];\n> -               isp_[Isp::Input].dev()->setControls(&controls);\n> -               goto done;\n> -       }\n> -       }\n> -\n>         if (state_ == State::Stopped)\n> -               goto done;\n> +               return;\n\nNot sure about this one.  In a separate discussion, we are considering\npassing in a Request before the camera starts.  In these cases, we do\nwant to allow the IPA to program the ISP and sensor with parameters\nwhile still in a stopped state, correct?  I need to think this one\nthrough a bit more.\n\nRegards,\nNaush\n\n\n>\n> -       /*\n> -        * The following actions must not be handled when the pipeline handler\n> -        * is in a stopped state.\n> -        */\n>         switch (action.operation) {\n>         case RPI_IPA_ACTION_V4L2_SET_STAGGERED: {\n>                 const ControlList &controls = action.controls[0];\n> @@ -1216,6 +1204,12 @@ void RPiCameraData::queueFrameAction(unsigned int frame, const IPAOperationData\n>                 break;\n>         }\n>\n> +       case RPI_IPA_ACTION_V4L2_SET_ISP: {\n> +               ControlList controls = action.controls[0];\n> +               isp_[Isp::Input].dev()->setControls(&controls);\n> +               break;\n> +       }\n> +\n>         case RPI_IPA_ACTION_STATS_METADATA_COMPLETE: {\n>                 unsigned int bufferId = action.data[0];\n>                 FrameBuffer *buffer = isp_[Isp::Stats].getBuffers()->at(bufferId).get();\n> @@ -1253,7 +1247,6 @@ void RPiCameraData::queueFrameAction(unsigned int frame, const IPAOperationData\n>                 break;\n>         }\n>\n> -done:\n>         handleState();\n>  }\n>\n> --\n> Regards,\n>\n> Laurent Pinchart\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 E2151BF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 29 Jun 2020 17:08:40 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7AA49603B2;\n\tMon, 29 Jun 2020 19:08:40 +0200 (CEST)","from mail-lj1-x244.google.com (mail-lj1-x244.google.com\n\t[IPv6:2a00:1450:4864:20::244])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E7897603B2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 29 Jun 2020 19:08:38 +0200 (CEST)","by mail-lj1-x244.google.com with SMTP id 9so18912842ljc.8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 29 Jun 2020 10:08:38 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"aakYsVEC\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=KbPSmc8RVHIo2Yi1UTYi7DUX3JxA5VV+voWXpooVzSs=;\n\tb=aakYsVECM2w7VTmzYSe5ZNDSic4/Kh53enybk9uWWtFN8rl/xI1Z/8f4AzdATjVwtC\n\tqOhaZQ5G05s9rBf47ojetjXPlKs/Ob5Q8m+anty7z3Tgy5Jmg1Pkz5hnTdEEvnVO0bmB\n\tnVYem42nJO/5ZcftWtRl4lcd68eGj73yV+oNnJtXya91e2IcjFrsZEBfmlYNt2TyUYwH\n\tWJfIt86kEN9FFkWO1+/IeraroV/wg3NSb8AlN5ZjjsmK7wfbHnDhjbp0FnRh9Tegvkti\n\tjxwRtR88kg4Ds0nHKcvZOg6viSSS7TMG/GGYohpCDzxY+OkpN9xGe850Rnzsedg1xk6H\n\tRhHg==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=KbPSmc8RVHIo2Yi1UTYi7DUX3JxA5VV+voWXpooVzSs=;\n\tb=rBnptxcLqjyO2MJW0NL3G73WyUEc6Q5B1uvrkxsNQ2sw/taa+tZ0H5kFFwjn1c+izV\n\t7zJCJ08y9xrktaoYUPvzx6uuua3SPoGVAj+rJu6QZLgQKE/nuiGCKvb6sD2oqVZnrXv5\n\tNXNeLCI7B1o7uB/GhqO+8Jugb4ZU/TgWdPbz3R3TEh4h8bXKIce1e15RaMs3qlkqkJHI\n\tDkiaaUyoVq4aw7kQeV3DtK5FmOPLmFIhnstR8StsZAAUEskpTrAno0lXK7+kvaw+KCke\n\tHmIeOYjJvrhOgiwvk8v8Z7pVzU/Sz+coZoDHHKqAz+gg5qjr07zhc7+6CpiJQ2tb+lwN\n\tIGmA==","X-Gm-Message-State":"AOAM532ebOr+11UYNITaeAFC3ITG7N53zyFOQ2Q63InK9hG34/wGNQ/3\n\t4X4N2g5HCT6stfVQyU/bfLkbTNhJcKmrKxWXgr3sCQ==","X-Google-Smtp-Source":"ABdhPJy/wLnGl0zjiM7lW3GsgCbGzUmC9NmB0U0Z0jcVwcy3OUu70uHshIPkpES4AVOlyNPMM9tqXpaSsejlqJOQekk=","X-Received":"by 2002:a2e:3a04:: with SMTP id h4mr8778158lja.103.1593450518160;\n\tMon, 29 Jun 2020 10:08:38 -0700 (PDT)","MIME-Version":"1.0","References":"<20200628231934.29025-1-laurent.pinchart@ideasonboard.com>\n\t<20200628231934.29025-10-laurent.pinchart@ideasonboard.com>","In-Reply-To":"<20200628231934.29025-10-laurent.pinchart@ideasonboard.com>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Mon, 29 Jun 2020 18:08:21 +0100","Message-ID":"<CAEmqJPpGp7QoGmBs+mFpr5v=wNnznGaS_Bq_1CwThAQjHf_VHA@mail.gmail.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v1 9/9] libcamera: pipeline:\n\traspberrypi: Don't handle any actions in stop state","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":10985,"web_url":"https://patchwork.libcamera.org/comment/10985/","msgid":"<20200629203430.GR10681@pendragon.ideasonboard.com>","date":"2020-06-29T20:34:30","subject":"Re: [libcamera-devel] [PATCH v1 9/9] libcamera: pipeline:\n\traspberrypi: Don't handle any actions in stop state","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Naush,\n\nOn Mon, Jun 29, 2020 at 06:08:21PM +0100, Naushir Patuck wrote:\n> On Mon, 29 Jun 2020 at 00:19, Laurent Pinchart wrote:\n> >\n> > The RPI_IPA_ACTION_V4L2_SET_ISP is handled regardless of the pipeline\n> > handler state, but is only generated by the IPA when the pipeline is\n> > running. Don't handle it in the stopped state, which simplifies the\n> > handling of actions.\n> >\n> > Additionally, handleState() is a no-op when the state is State::Stopped,\n> > so don't call it in that case.\n> >\n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > ---\n> >  .../pipeline/raspberrypi/raspberrypi.cpp      | 25 +++++++------------\n> >  1 file changed, 9 insertions(+), 16 deletions(-)\n> >\n> > diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > index 137e07379cf5..2a5d27fefe0c 100644\n> > --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > @@ -1190,24 +1190,12 @@ int RPiCameraData::configureIPA()\n> >  void RPiCameraData::queueFrameAction(unsigned int frame, const IPAOperationData &action)\n> >  {\n> >         /*\n> > -        * The following actions can be handled when the pipeline handler is in\n> > -        * a stopped state.\n> > +        * Actions are only handled when the pipeline handler is not in a\n> > +        * stopped state.\n> >          */\n> > -       switch (action.operation) {\n> > -       case RPI_IPA_ACTION_V4L2_SET_ISP: {\n> > -               ControlList controls = action.controls[0];\n> > -               isp_[Isp::Input].dev()->setControls(&controls);\n> > -               goto done;\n> > -       }\n> > -       }\n> > -\n> >         if (state_ == State::Stopped)\n> > -               goto done;\n> > +               return;\n> \n> Not sure about this one.  In a separate discussion, we are considering\n> passing in a Request before the camera starts.  In these cases, we do\n> want to allow the IPA to program the ISP and sensor with parameters\n> while still in a stopped state, correct?  I need to think this one\n> through a bit more.\n\nYou're right. Let's delay this patch until that discussion comes to a\nconclusion, there's no urgency. The s/goto done/return/ could probably\nstill be applied already, but I don't think it deserves a patch to fix\nit now.\n\n> > -       /*\n> > -        * The following actions must not be handled when the pipeline handler\n> > -        * is in a stopped state.\n> > -        */\n> >         switch (action.operation) {\n> >         case RPI_IPA_ACTION_V4L2_SET_STAGGERED: {\n> >                 const ControlList &controls = action.controls[0];\n> > @@ -1216,6 +1204,12 @@ void RPiCameraData::queueFrameAction(unsigned int frame, const IPAOperationData\n> >                 break;\n> >         }\n> >\n> > +       case RPI_IPA_ACTION_V4L2_SET_ISP: {\n> > +               ControlList controls = action.controls[0];\n> > +               isp_[Isp::Input].dev()->setControls(&controls);\n> > +               break;\n> > +       }\n> > +\n> >         case RPI_IPA_ACTION_STATS_METADATA_COMPLETE: {\n> >                 unsigned int bufferId = action.data[0];\n> >                 FrameBuffer *buffer = isp_[Isp::Stats].getBuffers()->at(bufferId).get();\n> > @@ -1253,7 +1247,6 @@ void RPiCameraData::queueFrameAction(unsigned int frame, const IPAOperationData\n> >                 break;\n> >         }\n> >\n> > -done:\n> >         handleState();\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 BE1EEBFFE2\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 29 Jun 2020 20:34:35 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3400B609DD;\n\tMon, 29 Jun 2020 22:34:35 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id EEB88609C9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 29 Jun 2020 22:34:33 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 78B01299;\n\tMon, 29 Jun 2020 22:34:33 +0200 (CEST)"],"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=\"NMvfXArW\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1593462873;\n\tbh=NBGgFTt1cdBoY2qGT/cKhCYvhNgOXkaborfVV+is5f4=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=NMvfXArW4jXMkXSlq7hDxBcn9zbCt3x/a/WWiKYth8zgUI19WKpeAPOoluHETl4r3\n\tZsQO2ymAuwxEEjmadEl8pIm2wsBXGzzDqflKDsAwkBpIxEXauhEUh1eILKUcbMDEAg\n\tS4V9Dl9uFDbGelJm3ISgqP2iCSApD+kQJawcEqrU=","Date":"Mon, 29 Jun 2020 23:34:30 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Naushir Patuck <naush@raspberrypi.com>","Message-ID":"<20200629203430.GR10681@pendragon.ideasonboard.com>","References":"<20200628231934.29025-1-laurent.pinchart@ideasonboard.com>\n\t<20200628231934.29025-10-laurent.pinchart@ideasonboard.com>\n\t<CAEmqJPpGp7QoGmBs+mFpr5v=wNnznGaS_Bq_1CwThAQjHf_VHA@mail.gmail.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<CAEmqJPpGp7QoGmBs+mFpr5v=wNnznGaS_Bq_1CwThAQjHf_VHA@mail.gmail.com>","Subject":"Re: [libcamera-devel] [PATCH v1 9/9] libcamera: pipeline:\n\traspberrypi: Don't handle any actions in stop state","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>"}}]