[{"id":4952,"web_url":"https://patchwork.libcamera.org/comment/4952/","msgid":"<20200602090421.4dhxwb6fdoonj66z@uno.localdomain>","date":"2020-06-02T09:04:21","subject":"Re: [libcamera-devel] [PATCH 03/10] libcamera: ipu3: Fold\n\tmediaBusToFormat() into only caller","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Niklas,\n\nOn Tue, Jun 02, 2020 at 03:39:02AM +0200, Niklas Söderlund wrote:\n> Make the code easier to read and refactor.\n>\n> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> ---\n>  src/libcamera/pipeline/ipu3/ipu3.cpp | 38 ++++++++++++++--------------\n>  1 file changed, 19 insertions(+), 19 deletions(-)\n>\n> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> index 6df1e29281941ebf..f7363244e1d2d0ff 100644\n> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> @@ -133,8 +133,6 @@ public:\n>  \tint start();\n>  \tint stop();\n>\n> -\tstatic V4L2PixelFormat mediaBusToFormat(unsigned int code);\n> -\n>  \tV4L2VideoDevice *output_;\n>  \tV4L2Subdevice *csi2_;\n>  \tCameraSensor *sensor_;\n> @@ -1504,7 +1502,25 @@ int CIO2Device::configure(const Size &size,\n>  \tif (ret)\n>  \t\treturn ret;\n>\n> -\toutputFormat->fourcc = mediaBusToFormat(sensorFormat.mbus_code);\n> +\tV4L2PixelFormat v4l2Format;\n> +\tswitch (sensorFormat.mbus_code) {\n> +\tcase MEDIA_BUS_FMT_SBGGR10_1X10:\n> +\t\tv4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SBGGR10);\n> +\t\tbreak;\n> +\tcase MEDIA_BUS_FMT_SGBRG10_1X10:\n> +\t\tv4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SGBRG10);\n> +\t\tbreak;\n> +\tcase MEDIA_BUS_FMT_SGRBG10_1X10:\n> +\t\tv4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SGRBG10);\n> +\t\tbreak;\n> +\tcase MEDIA_BUS_FMT_SRGGB10_1X10:\n> +\t\tv4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SRGGB10);\n> +\t\tbreak;\n> +\tdefault:\n> +\t\treturn -EINVAL;\n> +\t}\n> +\n> +\toutputFormat->fourcc = v4l2Format;\n\nNit: you could assign outputFormat->fourcc directly and avoid the\ntemporary variable\n\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\nThanks\n  j\n\n>  \toutputFormat->size = sensorFormat.size;\n>  \toutputFormat->planesCount = 1;\n>\n> @@ -1578,22 +1594,6 @@ int CIO2Device::stop()\n>  \treturn output_->streamOff();\n>  }\n>\n> -V4L2PixelFormat CIO2Device::mediaBusToFormat(unsigned int code)\n> -{\n> -\tswitch (code) {\n> -\tcase MEDIA_BUS_FMT_SBGGR10_1X10:\n> -\t\treturn V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SBGGR10);\n> -\tcase MEDIA_BUS_FMT_SGBRG10_1X10:\n> -\t\treturn V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SGBRG10);\n> -\tcase MEDIA_BUS_FMT_SGRBG10_1X10:\n> -\t\treturn V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SGRBG10);\n> -\tcase MEDIA_BUS_FMT_SRGGB10_1X10:\n> -\t\treturn V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SRGGB10);\n> -\tdefault:\n> -\t\treturn {};\n> -\t}\n> -}\n> -\n>  REGISTER_PIPELINE_HANDLER(PipelineHandlerIPU3);\n>\n>  } /* namespace libcamera */\n> --\n> 2.26.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":"<jacopo@jmondi.org>","Received":["from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net\n\t[217.70.183.196])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B93AC603CA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  2 Jun 2020 11:01:00 +0200 (CEST)","from uno.localdomain (2-224-242-101.ip172.fastwebnet.it\n\t[2.224.242.101]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay4-d.mail.gandi.net (Postfix) with ESMTPSA id 3B102E0007;\n\tTue,  2 Jun 2020 09:00:59 +0000 (UTC)"],"X-Originating-IP":"2.224.242.101","Date":"Tue, 2 Jun 2020 11:04:21 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Niklas =?utf-8?q?S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20200602090421.4dhxwb6fdoonj66z@uno.localdomain>","References":"<20200602013909.3170593-1-niklas.soderlund@ragnatech.se>\n\t<20200602013909.3170593-4-niklas.soderlund@ragnatech.se>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20200602013909.3170593-4-niklas.soderlund@ragnatech.se>","Subject":"Re: [libcamera-devel] [PATCH 03/10] libcamera: ipu3: Fold\n\tmediaBusToFormat() into only caller","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>","X-List-Received-Date":"Tue, 02 Jun 2020 09:01:00 -0000"}},{"id":5002,"web_url":"https://patchwork.libcamera.org/comment/5002/","msgid":"<20200604030702.GO27695@pendragon.ideasonboard.com>","date":"2020-06-04T03:07:02","subject":"Re: [libcamera-devel] [PATCH 03/10] libcamera: ipu3: Fold\n\tmediaBusToFormat() into only caller","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Niklas,\n\nThank you for the patch.\n\nOn Tue, Jun 02, 2020 at 03:39:02AM +0200, Niklas Söderlund wrote:\n> Make the code easier to read and refactor.\n\nI'm not necessarily opposed to this, but given that mapping between\nmedia bus formats and V4L2 pixel formats on video nodes is an operation\nthat most pipeline handlers need to perform, and that it is\ndevice-specific, would it make sense to try and keep it in separate\nfunctions that would have the same name in all pipeline handlers ? We\ncould even create an static const std::map for that, and remove the\nfunction.\n\nIf you think the code is better with this patch, I'm fine with it.\n\n> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> ---\n>  src/libcamera/pipeline/ipu3/ipu3.cpp | 38 ++++++++++++++--------------\n>  1 file changed, 19 insertions(+), 19 deletions(-)\n> \n> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> index 6df1e29281941ebf..f7363244e1d2d0ff 100644\n> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> @@ -133,8 +133,6 @@ public:\n>  \tint start();\n>  \tint stop();\n>  \n> -\tstatic V4L2PixelFormat mediaBusToFormat(unsigned int code);\n> -\n>  \tV4L2VideoDevice *output_;\n>  \tV4L2Subdevice *csi2_;\n>  \tCameraSensor *sensor_;\n> @@ -1504,7 +1502,25 @@ int CIO2Device::configure(const Size &size,\n>  \tif (ret)\n>  \t\treturn ret;\n>  \n> -\toutputFormat->fourcc = mediaBusToFormat(sensorFormat.mbus_code);\n> +\tV4L2PixelFormat v4l2Format;\n> +\tswitch (sensorFormat.mbus_code) {\n> +\tcase MEDIA_BUS_FMT_SBGGR10_1X10:\n> +\t\tv4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SBGGR10);\n> +\t\tbreak;\n> +\tcase MEDIA_BUS_FMT_SGBRG10_1X10:\n> +\t\tv4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SGBRG10);\n> +\t\tbreak;\n> +\tcase MEDIA_BUS_FMT_SGRBG10_1X10:\n> +\t\tv4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SGRBG10);\n> +\t\tbreak;\n> +\tcase MEDIA_BUS_FMT_SRGGB10_1X10:\n> +\t\tv4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SRGGB10);\n> +\t\tbreak;\n> +\tdefault:\n> +\t\treturn -EINVAL;\n> +\t}\n> +\n> +\toutputFormat->fourcc = v4l2Format;\n>  \toutputFormat->size = sensorFormat.size;\n>  \toutputFormat->planesCount = 1;\n>  \n> @@ -1578,22 +1594,6 @@ int CIO2Device::stop()\n>  \treturn output_->streamOff();\n>  }\n>  \n> -V4L2PixelFormat CIO2Device::mediaBusToFormat(unsigned int code)\n> -{\n> -\tswitch (code) {\n> -\tcase MEDIA_BUS_FMT_SBGGR10_1X10:\n> -\t\treturn V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SBGGR10);\n> -\tcase MEDIA_BUS_FMT_SGBRG10_1X10:\n> -\t\treturn V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SGBRG10);\n> -\tcase MEDIA_BUS_FMT_SGRBG10_1X10:\n> -\t\treturn V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SGRBG10);\n> -\tcase MEDIA_BUS_FMT_SRGGB10_1X10:\n> -\t\treturn V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SRGGB10);\n> -\tdefault:\n> -\t\treturn {};\n> -\t}\n> -}\n> -\n>  REGISTER_PIPELINE_HANDLER(PipelineHandlerIPU3);\n>  \n>  } /* namespace libcamera */","headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7B7FE61012\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  4 Jun 2020 05:07:19 +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 E38A829B;\n\tThu,  4 Jun 2020 05:07:18 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"kC0ZEOst\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1591240039;\n\tbh=PzBHjwKEVAed+nBPM+5sf7kN1CPYjWR48psxA+7uo5c=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=kC0ZEOstpa/vT8RsZTE6EHj9LJ6NmUuB5eA+vINB1f+tf7Ov1HpTHyWYZCaYLbhXU\n\tUBRX6rQnAyMHy6gFbFAitVE+pJFESA4VXhEUQkMOLNxZAWB3zdkUDxpl6d8I5nL6bo\n\tUWXTU/syjx45p/5/zMrEGr8sUW9C3lurirCXjpdI=","Date":"Thu, 4 Jun 2020 06:07:02 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Niklas =?utf-8?q?S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20200604030702.GO27695@pendragon.ideasonboard.com>","References":"<20200602013909.3170593-1-niklas.soderlund@ragnatech.se>\n\t<20200602013909.3170593-4-niklas.soderlund@ragnatech.se>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20200602013909.3170593-4-niklas.soderlund@ragnatech.se>","Subject":"Re: [libcamera-devel] [PATCH 03/10] libcamera: ipu3: Fold\n\tmediaBusToFormat() into only caller","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>","X-List-Received-Date":"Thu, 04 Jun 2020 03:07:19 -0000"}},{"id":5086,"web_url":"https://patchwork.libcamera.org/comment/5086/","msgid":"<20200606105304.GT5864@oden.dyn.berto.se>","date":"2020-06-06T10:53:04","subject":"Re: [libcamera-devel] [PATCH 03/10] libcamera: ipu3: Fold\n\tmediaBusToFormat() into only caller","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 feedback.\n\nOn 2020-06-04 06:07:02 +0300, Laurent Pinchart wrote:\n> Hi Niklas,\n> \n> Thank you for the patch.\n> \n> On Tue, Jun 02, 2020 at 03:39:02AM +0200, Niklas Söderlund wrote:\n> > Make the code easier to read and refactor.\n> \n> I'm not necessarily opposed to this, but given that mapping between\n> media bus formats and V4L2 pixel formats on video nodes is an operation\n> that most pipeline handlers need to perform, and that it is\n> device-specific, would it make sense to try and keep it in separate\n> functions that would have the same name in all pipeline handlers ? We\n> could even create an static const std::map for that, and remove the\n> function.\n\nI'm not opposed to move code into helpers and creating infrastructure \nthat can be shared between different pipelines. If we go that route I \nthink we should define a base class that pipelines then may implement \ninstead of depending on soft convections around naming which will be \nhard to enforce.\n\nAs we are still in early stages of identifying what and how to share \ninfrastructure between pipelines I think it's better we make each \npipeline as neat as possible now and later break out common things when \nwe know how we wish it to look. In my experience preemptively trying to \nanticipate where things could be shared and build for a imaginary \ninfrastructure makes it harder identify a good design once work to \nactually share code starts :-) But I might be wrong.\n\nI will keep this patch as is for v2 unless anyone strongly oppose it.\n\n> \n> If you think the code is better with this patch, I'm fine with it.\n> \n> > Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> > ---\n> >  src/libcamera/pipeline/ipu3/ipu3.cpp | 38 ++++++++++++++--------------\n> >  1 file changed, 19 insertions(+), 19 deletions(-)\n> > \n> > diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> > index 6df1e29281941ebf..f7363244e1d2d0ff 100644\n> > --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> > +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> > @@ -133,8 +133,6 @@ public:\n> >  \tint start();\n> >  \tint stop();\n> >  \n> > -\tstatic V4L2PixelFormat mediaBusToFormat(unsigned int code);\n> > -\n> >  \tV4L2VideoDevice *output_;\n> >  \tV4L2Subdevice *csi2_;\n> >  \tCameraSensor *sensor_;\n> > @@ -1504,7 +1502,25 @@ int CIO2Device::configure(const Size &size,\n> >  \tif (ret)\n> >  \t\treturn ret;\n> >  \n> > -\toutputFormat->fourcc = mediaBusToFormat(sensorFormat.mbus_code);\n> > +\tV4L2PixelFormat v4l2Format;\n> > +\tswitch (sensorFormat.mbus_code) {\n> > +\tcase MEDIA_BUS_FMT_SBGGR10_1X10:\n> > +\t\tv4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SBGGR10);\n> > +\t\tbreak;\n> > +\tcase MEDIA_BUS_FMT_SGBRG10_1X10:\n> > +\t\tv4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SGBRG10);\n> > +\t\tbreak;\n> > +\tcase MEDIA_BUS_FMT_SGRBG10_1X10:\n> > +\t\tv4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SGRBG10);\n> > +\t\tbreak;\n> > +\tcase MEDIA_BUS_FMT_SRGGB10_1X10:\n> > +\t\tv4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SRGGB10);\n> > +\t\tbreak;\n> > +\tdefault:\n> > +\t\treturn -EINVAL;\n> > +\t}\n> > +\n> > +\toutputFormat->fourcc = v4l2Format;\n> >  \toutputFormat->size = sensorFormat.size;\n> >  \toutputFormat->planesCount = 1;\n> >  \n> > @@ -1578,22 +1594,6 @@ int CIO2Device::stop()\n> >  \treturn output_->streamOff();\n> >  }\n> >  \n> > -V4L2PixelFormat CIO2Device::mediaBusToFormat(unsigned int code)\n> > -{\n> > -\tswitch (code) {\n> > -\tcase MEDIA_BUS_FMT_SBGGR10_1X10:\n> > -\t\treturn V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SBGGR10);\n> > -\tcase MEDIA_BUS_FMT_SGBRG10_1X10:\n> > -\t\treturn V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SGBRG10);\n> > -\tcase MEDIA_BUS_FMT_SGRBG10_1X10:\n> > -\t\treturn V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SGRBG10);\n> > -\tcase MEDIA_BUS_FMT_SRGGB10_1X10:\n> > -\t\treturn V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SRGGB10);\n> > -\tdefault:\n> > -\t\treturn {};\n> > -\t}\n> > -}\n> > -\n> >  REGISTER_PIPELINE_HANDLER(PipelineHandlerIPU3);\n> >  \n> >  } /* namespace libcamera */\n> \n> -- \n> Regards,\n> \n> Laurent Pinchart","headers":{"Return-Path":"<niklas.soderlund@ragnatech.se>","Received":["from mail-lf1-x144.google.com (mail-lf1-x144.google.com\n\t[IPv6:2a00:1450:4864:20::144])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3E27461167\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat,  6 Jun 2020 12:53:07 +0200 (CEST)","by mail-lf1-x144.google.com with SMTP id 82so7315827lfh.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 06 Jun 2020 03:53:07 -0700 (PDT)","from localhost (h-209-203.A463.priv.bahnhof.se. [155.4.209.203])\n\tby smtp.gmail.com with ESMTPSA id\n\tv28sm2066507lfd.35.2020.06.06.03.53.05\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tSat, 06 Jun 2020 03:53:05 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected)\n\theader.d=ragnatech-se.20150623.gappssmtp.com\n\theader.i=@ragnatech-se.20150623.gappssmtp.com header.b=\"Ws5J6ABf\"; \n\tdkim-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=2TdJb+ZDDwCiZdh7YtDrwpUNpSvqyPbcdPklcfLdd8Y=;\n\tb=Ws5J6ABf5u70cmDg5RHPPPwTX587bsv6u3OoZraKkNyiesRv/fMQ9ZjlnapAgLDsfm\n\tEbB44J9jtbXQkx1n/L/j8BtDKJbh1QcAA2030UBG0kAfoa1TWl2p7PseAeKi2Co0kgOo\n\tg8IhD3794vh8dhY+0twJCLjn1H1UJwGHvWAaTHFnL3pCK5iAy/wwdKCdv5fxVswlGVO/\n\tIBWL1EI15LhiVQ5In1J2vpuTzG08Msoxfne0B3cxSnaP0a25jdWcLvEKDR0B+WXTcRmM\n\tFUhw/4/VNrn0ebU8hnW8EszwmTePbY6WBxHl5N4QK5Bxxj3vCUQDnqMNH8gVrlVXvT0B\n\topoQ==","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=2TdJb+ZDDwCiZdh7YtDrwpUNpSvqyPbcdPklcfLdd8Y=;\n\tb=VHw5/2LxFEkOpCM33x+qgGgeEcgcKnzBzqSZ/AgXuIP8EvObXZHdHLcyZB68mLSCaa\n\tT95ClOem+F0BFPB2YjteEr0x8ybCIGqx3xEebVEWj4GIeQRn0GAI9cBqSZ2hE2acs9pr\n\t+8T0rly7X1WT1KaOJsLTS3CftQ8LhhI5/A2ns5duPjihzFRYxWzKgqJVJfvruF/Nz+8u\n\tvY/y2pdOCj4kdrzbt+88rBap4e54+kvjFxcV3DAsXbIvWCtdNnn+5RosBcg9yiKeHbnd\n\tQdAi/eeJeYCBmRtFuhP3qyd6TB2nu2pjYOyv9ezCn0Y1n8uwbLyn34/f2mSMtj3HGbok\n\tzqTg==","X-Gm-Message-State":"AOAM532abhNxMVWyECeWvOwQKw4qDpuyXBfIgY3ICw/zR5TMtmFU7Xl0\n\t0qMyo+PwaTBeRITvrvXpRpIsTTFe0a8=","X-Google-Smtp-Source":"ABdhPJyG4zgr/e471CtQ4313UlUfGGTnX9lrBNz1bg9eLqZQ35v3WU02MOT3dwvxIrKpxpQM1v2A9w==","X-Received":"by 2002:ac2:54a8:: with SMTP id w8mr7490237lfk.53.1591440786530; \n\tSat, 06 Jun 2020 03:53:06 -0700 (PDT)","Date":"Sat, 6 Jun 2020 12:53:04 +0200","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20200606105304.GT5864@oden.dyn.berto.se>","References":"<20200602013909.3170593-1-niklas.soderlund@ragnatech.se>\n\t<20200602013909.3170593-4-niklas.soderlund@ragnatech.se>\n\t<20200604030702.GO27695@pendragon.ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=iso-8859-1","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20200604030702.GO27695@pendragon.ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH 03/10] libcamera: ipu3: Fold\n\tmediaBusToFormat() into only caller","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>","X-List-Received-Date":"Sat, 06 Jun 2020 10:53:07 -0000"}}]