[{"id":24992,"web_url":"https://patchwork.libcamera.org/comment/24992/","msgid":"<166333526499.836189.9760619635010426803@Monstersaurus>","date":"2022-09-16T13:34:24","subject":"Re: [libcamera-devel] [PATCH v1 2/2] pipeline: raspberrypi: Improve\n\tUnicam timeout handling","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Naushir Patuck via libcamera-devel (2022-09-16 11:05:17)\n> Currently, if a Unicam timeout is signalled, the pipeline handler only raises\n> an error message. Update the error handling to put the pipeline handler in an\n> internal error state, disable all device streams, and return all outstanding\n> requests as cancelled. Any subsequent requests that come into the pipeline\n> handler will also be returned as cancelled.\n\nDoes this mean that currently the application will stop and exit?\n\n> \n> Any further error handling (e.g. a reset with camera stop()/start()) is up to\n> the application to perform as it requires.\n> \n> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> ---\n>  src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 11 +++++++++++\n>  1 file changed, 11 insertions(+)\n> \n> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> index d429cb444d58..4464d4d07f15 100644\n> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> @@ -1819,6 +1819,17 @@ void RPiCameraData::unicamTimeout()\n>         LOG(RPI, Error) << \"Unicam has timed out!\";\n>         LOG(RPI, Error) << \"Please check that your camera sensor connector is attached securely.\";\n>         LOG(RPI, Error) << \"Alternatively, try another cable and/or sensor.\";\n> +\n> +       state_ = RPiCameraData::State::Error;\n> +       /*\n> +        * To allow the application to attempt a recovery from this timeout,\n> +        * stop all device streaming, and return any outstanding requests as\n\ns/device/devices/\n\n> +        * incomplete and cancelled.\n> +        */\n> +       for (auto const stream : streams_)\n> +               stream->dev()->streamOff();\n> +\n> +       clearIncompleteRequests();\n\nAgain, I think this is fine for RPi, but I wonder if this is something\nwe should also (instead of?/as well as) handle this in the Camera object\ndirectly ?\n\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n>  }\n>  \n>  void RPiCameraData::unicamBufferDequeue(FrameBuffer *buffer)\n> -- \n> 2.25.1\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 541AAC0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 16 Sep 2022 13:34:29 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C777161FBA;\n\tFri, 16 Sep 2022 15:34:28 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B147261FAB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 16 Sep 2022 15:34:27 +0200 (CEST)","from pendragon.ideasonboard.com\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 45406DD;\n\tFri, 16 Sep 2022 15:34:27 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1663335268;\n\tbh=OvsfqaZwpCAveFBSUU7MeSZHJ6fppvCRii0RGhREVu4=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=VV9qXuhBfQYvvpHF19OqBxrMMiTxurLCneMl2q7QyWopikTkqCuw7ObmMP/OosirA\n\tRiVmF/zCc5ZTl3Xa2jEVyElHIVu5xPy3EFUIUdzofn08wSiIq91bhzINq4t7QZE3xV\n\t2s9V32zF1F067wDmmFgx/Vskxb9xrMCLw9ekWYf0Uw0kpOD0uMF7NCzvhYbibk8AMX\n\tf6DhhgyQuXk19s8UwvskRluUOam59WSTwtrzzvlBgIFsrsntLsR39ZAbOLNVgdem80\n\tt+dg00Pw4APmXkzClpgvy+0T3SgmsUTxZ6H9jYtSY+0JrN9L19PO+TDo064pHn2+e5\n\tZLYo70PbKHDJQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1663335267;\n\tbh=OvsfqaZwpCAveFBSUU7MeSZHJ6fppvCRii0RGhREVu4=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=QQBYIsvHMnkktSwDU8iOv2d+IcTc/YHz1RC3PEeOdUD9HjEPeUgtkCGyoeIA32oNT\n\tWzE5tPtnCtIvoWTarD3PXmrl95OiseMIZ1E7XJdn3Nq1adCwzjI5oWPJMmDXuNbzMx\n\tUDEk9K4CPVOy1rMa4OaB1vS4j/ufsbAoFxjyG2Yc="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"QQBYIsvH\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20220916100517.12446-3-naush@raspberrypi.com>","References":"<20220916100517.12446-1-naush@raspberrypi.com>\n\t<20220916100517.12446-3-naush@raspberrypi.com>","To":"Naushir Patuck <naush@raspberrypi.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Fri, 16 Sep 2022 14:34:24 +0100","Message-ID":"<166333526499.836189.9760619635010426803@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH v1 2/2] pipeline: raspberrypi: Improve\n\tUnicam timeout handling","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>","From":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24994,"web_url":"https://patchwork.libcamera.org/comment/24994/","msgid":"<CAEmqJPqqKrHb1Yw9iV7pUMt=UYuiGPmaEJAZUpx84+LCtxcR6A@mail.gmail.com>","date":"2022-09-16T13:45:04","subject":"Re: [libcamera-devel] [PATCH v1 2/2] pipeline: raspberrypi: Improve\n\tUnicam timeout handling","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi Kieran,\n\nThanks for the feedback.\n\nOn Fri, 16 Sept 2022 at 14:34, Kieran Bingham <\nkieran.bingham@ideasonboard.com> wrote:\n\n> Quoting Naushir Patuck via libcamera-devel (2022-09-16 11:05:17)\n> > Currently, if a Unicam timeout is signalled, the pipeline handler only\n> raises\n> > an error message. Update the error handling to put the pipeline handler\n> in an\n> > internal error state, disable all device streams, and return all\n> outstanding\n> > requests as cancelled. Any subsequent requests that come into the\n> pipeline\n> > handler will also be returned as cancelled.\n>\n> Does this mean that currently the application will stop and exit?\n>\n> >\n> > Any further error handling (e.g. a reset with camera stop()/start()) is\n> up to\n> > the application to perform as it requires.\n> >\n> > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > ---\n> >  src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 11 +++++++++++\n> >  1 file changed, 11 insertions(+)\n> >\n> > diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > index d429cb444d58..4464d4d07f15 100644\n> > --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > @@ -1819,6 +1819,17 @@ void RPiCameraData::unicamTimeout()\n> >         LOG(RPI, Error) << \"Unicam has timed out!\";\n> >         LOG(RPI, Error) << \"Please check that your camera sensor\n> connector is attached securely.\";\n> >         LOG(RPI, Error) << \"Alternatively, try another cable and/or\n> sensor.\";\n> > +\n> > +       state_ = RPiCameraData::State::Error;\n> > +       /*\n> > +        * To allow the application to attempt a recovery from this\n> timeout,\n> > +        * stop all device streaming, and return any outstanding\n> requests as\n>\n> s/device/devices/\n>\n> > +        * incomplete and cancelled.\n> > +        */\n> > +       for (auto const stream : streams_)\n> > +               stream->dev()->streamOff();\n> > +\n> > +       clearIncompleteRequests();\n>\n> Again, I think this is fine for RPi, but I wonder if this is something\n> we should also (instead of?/as well as) handle this in the Camera object\n> directly ?\n>\n\nIt might be possible to put this in a layer above - perhaps the base\npipeline handler\nclass?  But then we might not be able to make it entirely generic for all\npipeline\nhandlers, unless we have a defined abort() member function that each\npipeline handler\nneeds to implement? Perhaps this is something for the future :)\n\nRegards,\nNaush\n\n\n>\n>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>\n> >  }\n> >\n> >  void RPiCameraData::unicamBufferDequeue(FrameBuffer *buffer)\n> > --\n> > 2.25.1\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 D6776C3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 16 Sep 2022 13:45:22 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2E7276203B;\n\tFri, 16 Sep 2022 15:45:22 +0200 (CEST)","from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com\n\t[IPv6:2a00:1450:4864:20::12c])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id C2B1E61FAB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 16 Sep 2022 15:45:20 +0200 (CEST)","by mail-lf1-x12c.google.com with SMTP id u18so35652412lfo.8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 16 Sep 2022 06:45:20 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1663335922;\n\tbh=zaJz9TTkSpeVJIgH749InS9i3TTBf8pl+AjQKlvyD4w=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=vsFpQHHO5Iuq9U6/IWnmQGsPLsra1NBwCpQrHisIj/mTErRWR7xL29gyYzxfjPeY6\n\tRzEoqRKrr8pJJJuDbpJZdvk07RYjfwujuX/Gd9RHrmXpi1Sh9Gz6LM1LC+2M2WcMEO\n\teHKbhEFEzjP++6mcoBc4Gnc7CATihg1DpKVAS/89MfGVTYh2BLhfnV6VFHQtHeSca1\n\t9cyUXvUtPdgyaaatCshBVpK6OHqEf+EEsd6sZkJEET8V/SdbSXJzfTFL6OblxpMOkc\n\tUCZhfGXTFOW6d7lhNNOJR89J+DsQvl37VoqnP45d8P1f4vnON2vH12ikIOzzZZlUhg\n\ts98fbpVs1HIpQ==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date;\n\tbh=AjW486sQT6U/GZgLmMtnOpYEKrzJgbJMluUn6qrZRsg=;\n\tb=te9GXtZuzkKEkdbNLcoCEEX9p9etJmJizcm9y9nnegG//GBFq0ccOa1C1fMeITL3Ca\n\td5CNzU9z6BDefXunWAniDVe4FhJfcYfB4YGYMKIA8lw4ZnXzUeLx4fLM8ygWzlH/jIr3\n\t4RT73wAtdqyVQuKSkC45eM0qG1ISZN+DetrqPpn+KXHnAnfbiJ7sbhf5TfOz3qOYSIb0\n\tRsG3P8t4HRtYnzBH4GXBqP88Su5V88cOCOULA4Q8CkTjaeK2gOgEQf5XOG5hflMMloTJ\n\tBZS2AIGimAhKUjE+BdPl68AEPCSzbhEICIH+XL7O1TH5Gm2KCWGmFbCvTc3p+fZsXPLW\n\tEWfA=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"te9GXtZu\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-message-state:from:to:cc:subject:date;\n\tbh=AjW486sQT6U/GZgLmMtnOpYEKrzJgbJMluUn6qrZRsg=;\n\tb=LOsDcf6vVvc5M7CVhOLUHWZZ6EcLRLk9+8EGP2SnT9fG5u8uVdvux6o2HRriO0T/IJ\n\tWfLk6fjlo3jiupXFC++hDY+6/lO2j21XQwVNf9+IKGuM8ko+BKzMJI2YeUJ8vgnReXpj\n\tOUqOfbex0bdzwNNS2WxuDZx5ytFQLfjlU/PLISN7J/ipyxYDlJ/l48U98BsOQAWJyS1t\n\tgGH+G6knG9V++MRjOyJi0PBxE/xIzHfPWGHmejlDcYICW8cRFR/NE8xSmYe+Wxr0Z+0L\n\t1iWWvA6e8QvJ5zjIX6ZH1zRlrPbhhEOM4U+paKECRCjxMo/BFpQ6gxQSsuhLDcFboyRP\n\t45MA==","X-Gm-Message-State":"ACrzQf02bO5FNzMIaTjgnHMLGoER6LOACN14tEKJjSy7JJMn+7q60a2h\n\t9F5nXybQol96tX9JjsN9ZKOfcTdK/Ar386lGwKB1KfeKhIbPJA==","X-Google-Smtp-Source":"AMsMyM7n5ILYq1LKzI+4oY+htUJtjUsg5f9qnPew4Q7b8cuboElFP+m4Aen/IPZbMnxhLSEO2cdhZrQSdHN09Ecvxw0=","X-Received":"by 2002:a05:6512:3d18:b0:498:fafb:229f with SMTP id\n\td24-20020a0565123d1800b00498fafb229fmr1932455lfv.356.1663335920227;\n\tFri, 16 Sep 2022 06:45:20 -0700 (PDT)","MIME-Version":"1.0","References":"<20220916100517.12446-1-naush@raspberrypi.com>\n\t<20220916100517.12446-3-naush@raspberrypi.com>\n\t<166333526499.836189.9760619635010426803@Monstersaurus>","In-Reply-To":"<166333526499.836189.9760619635010426803@Monstersaurus>","Date":"Fri, 16 Sep 2022 14:45:04 +0100","Message-ID":"<CAEmqJPqqKrHb1Yw9iV7pUMt=UYuiGPmaEJAZUpx84+LCtxcR6A@mail.gmail.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Content-Type":"multipart/alternative; boundary=\"000000000000aaf04405e8cb92e4\"","Subject":"Re: [libcamera-devel] [PATCH v1 2/2] pipeline: raspberrypi: Improve\n\tUnicam timeout handling","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>","From":"Naushir Patuck via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Naushir Patuck <naush@raspberrypi.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24995,"web_url":"https://patchwork.libcamera.org/comment/24995/","msgid":"<CAEmqJPpFGcNvdRB0vBxxpPW3T8wSmf6RWJb86d8vbHpw_wCZJA@mail.gmail.com>","date":"2022-09-16T14:58:47","subject":"Re: [libcamera-devel] [PATCH v1 2/2] pipeline: raspberrypi: Improve\n\tUnicam timeout handling","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi Kieran,\n\n\nOn Fri, 16 Sept 2022 at 14:34, Kieran Bingham <\nkieran.bingham@ideasonboard.com> wrote:\n\n> Quoting Naushir Patuck via libcamera-devel (2022-09-16 11:05:17)\n> > Currently, if a Unicam timeout is signalled, the pipeline handler only\n> raises\n> > an error message. Update the error handling to put the pipeline handler\n> in an\n> > internal error state, disable all device streams, and return all\n> outstanding\n> > requests as cancelled. Any subsequent requests that come into the\n> pipeline\n> > handler will also be returned as cancelled.\n>\n> Does this mean that currently the application will stop and exit?\n>\n\nSorry, I forgot to respond to this question.\n\nRight now, when a timeout occurs, we simply throw out a logging message,\nthen\nthe application stalls waiting for a request to complete - which\nnever happens.\n\nBy cancelling the requests, the application then has the choice of what to\ndo.\nWe will change libcamera-apps to do a full teardown and restart to try and\ncontinue\nthe use case (in testing, this seems to work well for ov5647), but other\napplications\nmight decide to just quit.\n\nRegards,\nNaush\n\n\n>\n> >\n> > Any further error handling (e.g. a reset with camera stop()/start()) is\n> up to\n> > the application to perform as it requires.\n> >\n> > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > ---\n> >  src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 11 +++++++++++\n> >  1 file changed, 11 insertions(+)\n> >\n> > diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > index d429cb444d58..4464d4d07f15 100644\n> > --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > @@ -1819,6 +1819,17 @@ void RPiCameraData::unicamTimeout()\n> >         LOG(RPI, Error) << \"Unicam has timed out!\";\n> >         LOG(RPI, Error) << \"Please check that your camera sensor\n> connector is attached securely.\";\n> >         LOG(RPI, Error) << \"Alternatively, try another cable and/or\n> sensor.\";\n> > +\n> > +       state_ = RPiCameraData::State::Error;\n> > +       /*\n> > +        * To allow the application to attempt a recovery from this\n> timeout,\n> > +        * stop all device streaming, and return any outstanding\n> requests as\n>\n> s/device/devices/\n>\n> > +        * incomplete and cancelled.\n> > +        */\n> > +       for (auto const stream : streams_)\n> > +               stream->dev()->streamOff();\n> > +\n> > +       clearIncompleteRequests();\n>\n> Again, I think this is fine for RPi, but I wonder if this is something\n> we should also (instead of?/as well as) handle this in the Camera object\n> directly ?\n>\n>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>\n> >  }\n> >\n> >  void RPiCameraData::unicamBufferDequeue(FrameBuffer *buffer)\n> > --\n> > 2.25.1\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 9F054C0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 16 Sep 2022 14:59:06 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E9AC862046;\n\tFri, 16 Sep 2022 16:59:05 +0200 (CEST)","from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com\n\t[IPv6:2a00:1450:4864:20::12b])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DA46961FAB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 16 Sep 2022 16:59:03 +0200 (CEST)","by mail-lf1-x12b.google.com with SMTP id a2so11987669lfb.6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 16 Sep 2022 07:59:03 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1663340345;\n\tbh=jNgmvitpZnGSs8umsbFXbT03b1qS0YX8mMGm8gBLSJ0=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=cERPHtVKsKRWk4CAJMUtVigxRhwcRYd8cq9GLmaOfZmKvByP79qNnmaMxZWWZAGUG\n\tPM8i6/pQRoKHb9dmxP/v4dw0jzm5n1AuZNwpqYLqIdXRASNZGicDhOK+eCBV47nPH1\n\tKdXFCauxQI8g3jm4qkuyN80x/5jnosbqGmrqYOBc17etZo0N1yaEU+66r7luCHv5mF\n\tJt7ZSx8KGjemNRKL7xh2AauAG3Eji1tJQ6Szr036oSK6aWZO6WUZiv1f+PhO9fIhq0\n\t9+pEn2dnztDla/i/GeduonjCUpllbHt03b7nLLf7tgZVtyMGopNqJm5EgV5FNLXEsN\n\tO8X6wCidstEHQ==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date;\n\tbh=NBT6Iqcev47Giwxn0hz70kDkzNQMq5/C22kMMGa1fik=;\n\tb=lEuLQ4Yb/acXt2JqcqFaEw3jsRE6hDf4lN5NOn3LqSBq1OiQ3vDQI1RKCkzkv9MUxs\n\tntzSj3zg3i5fDRrv1nx9kO3J+ryK4VIsbKKZxD5OU2+/Dpv7ulTJcHQcZeQkQOKipmIe\n\tjyJqgDxS3krN0npZ351LboSznmSypF4J/Ofx1kxEzFzpRFebPlBA/UxlvcLCyAFOuiME\n\tCydElayDASqA7LwrvMZPAYViWQyVxohc6zu54rqTEMC4DqthCqy6O6Htp7geN4ioxU0m\n\tSUtsq81nAbLI1sj9UAcvzmb9k7l8zjtAgNN7MjETuxFvTNx/kAHJtQwKEF1Hy5VAhEPH\n\tCZcw=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"lEuLQ4Yb\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-message-state:from:to:cc:subject:date;\n\tbh=NBT6Iqcev47Giwxn0hz70kDkzNQMq5/C22kMMGa1fik=;\n\tb=aF0475UpO8BUEbvvNoNcj0ULJ0noaNmsWAiFHVXK8zyzZeGhDvNFGCsLgZCloj729l\n\t1IMzuwmgsJNiOPQE/zp+I5nOQx4g5k8X8+pMLusvL+ueuYGwOKxS68r94CY9PQjWEROT\n\tt4QFw7Cw0ziLY0kPb2543qplbxatDFGtuYgmXS5jTLdKTIGQi9jKdCTmIG/1lkNJDJN5\n\trMq5lZa9gAnR4htXQ4Hz+emeH5AhOFDTNmGTJ2h5FmQvN7cMRMUn3JB+GxJoLHfA/eYD\n\t6Ik10DZRc/0mUaPGHeyYC+jZ1pL5g+dYJcHD5MCFtviTj5RijoQC50yzHki/76v9ckVD\n\t7+mA==","X-Gm-Message-State":"ACrzQf2OyoPSt6tcO1erW0VCS+wBLsLH2yOAhkSU0tIiT0pa+p/JljC+\n\tYi4fMODngtV8AEkAXL9LoX/KHaeGR3//6LMR/aebo/IyGwQQkg==","X-Google-Smtp-Source":"AMsMyM4AgV8TXqINN6nvimBIItJ8Anl3kqK+d5ONYjYDvutHGAMOxxFyJjuff+7zoIMaGdw0MYC8qHesSL8+v4Q0vEg=","X-Received":"by 2002:a05:6512:3d18:b0:498:fafb:229f with SMTP id\n\td24-20020a0565123d1800b00498fafb229fmr2052326lfv.356.1663340343178;\n\tFri, 16 Sep 2022 07:59:03 -0700 (PDT)","MIME-Version":"1.0","References":"<20220916100517.12446-1-naush@raspberrypi.com>\n\t<20220916100517.12446-3-naush@raspberrypi.com>\n\t<166333526499.836189.9760619635010426803@Monstersaurus>","In-Reply-To":"<166333526499.836189.9760619635010426803@Monstersaurus>","Date":"Fri, 16 Sep 2022 15:58:47 +0100","Message-ID":"<CAEmqJPpFGcNvdRB0vBxxpPW3T8wSmf6RWJb86d8vbHpw_wCZJA@mail.gmail.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Content-Type":"multipart/alternative; boundary=\"0000000000004bd24c05e8cc9a2c\"","Subject":"Re: [libcamera-devel] [PATCH v1 2/2] pipeline: raspberrypi: Improve\n\tUnicam timeout handling","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>","From":"Naushir Patuck via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Naushir Patuck <naush@raspberrypi.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]