[{"id":23913,"web_url":"https://patchwork.libcamera.org/comment/23913/","msgid":"<20220715073946.GD3411283@pyrite.rasen.tech>","date":"2022-07-15T07:39:46","subject":"Re: [libcamera-devel] [PATCH 4/4] utils: rkisp1: Support optional\n\tCSI-2 receiver subdev","submitter":{"id":97,"url":"https://patchwork.libcamera.org/api/people/97/","name":"Nicolas Dufresne via libcamera-devel","email":"libcamera-devel@lists.libcamera.org"},"content":"Hi Laurent,\n\nOn Tue, Jun 21, 2022 at 12:06:58AM +0300, Laurent Pinchart via libcamera-devel wrote:\n> The media graph may include a CSI-2 receiver entity between the sensor\n> and the ISP for platforms that have a CSI-2 receiver external to the\n> ISP. Support this by configuring the pipeline accordingly.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n\n> ---\n>  utils/rkisp1/rkisp1-capture.sh | 56 +++++++++++++++++++++++++++++++++-\n>  1 file changed, 55 insertions(+), 1 deletion(-)\n> \n> diff --git a/utils/rkisp1/rkisp1-capture.sh b/utils/rkisp1/rkisp1-capture.sh\n> index 2549779d0f78..c5f859f21001 100755\n> --- a/utils/rkisp1/rkisp1-capture.sh\n> +++ b/utils/rkisp1/rkisp1-capture.sh\n> @@ -14,6 +14,37 @@\n>  # - raw2rgbpnm (from git://git.retiisi.org.uk/~sailus/raw2rgbpnm.git)\n>  # - yavta (from git://git.ideasonboard.org/yavta.git)\n>  \n> +# Return the entity connected to a given pad\n> +# $1: The pad, expressed as \"entity\":index\n> +mc_remote_entity() {\n> +\tlocal entity=\"${1%:*}\"\n> +\tlocal pad=\"${1#*:}\"\n> +\n> +\t${mediactl} -p | awk '\n> +/^- entity / {\n> +\tin_entity=0\n> +}\n> +\n> +/^- entity [0-9]+: '\"${entity}\"' / {\n> +\tin_entity=1\n> +}\n> +\n> +/^[ \\t]+pad/ {\n> +\tin_pad=0\n> +}\n> +\n> +/^[ \\t]+pad'\"${pad}\"': / {\n> +\tin_pad=1\n> +}\n> +\n> +/^[ \\t]+(<-|->) \"[^\"]+\"/ {\n> +\tif (in_entity && in_pad) {\n> +\t\tprint gensub(/^[^\"]+\"([^\"]+)\":([0-9]+).*$/, \"\\\\1\", \"g\")\n> +\t\texit\n> +\t}\n> +}'\n> +}\n> +\n>  # Locate the sensor entity\n>  find_sensor() {\n>  \tlocal bus\n> @@ -28,6 +59,17 @@ find_sensor() {\n>  \techo \"$sensor_name $bus\"\n>  }\n>  \n> +# Locate the CSI-2 receiver\n> +find_csi2_rx() {\n> +\tlocal sensor_name=$1\n> +\tlocal csi2_rx\n> +\n> +\tcsi2_rx=$(mc_remote_entity \"$sensor_name:0\")\n> +\tif [ \"$csi2_rx\" != rkisp1_isp ] ; then\n> +\t\techo \"$csi2_rx\"\n> +\tfi\n> +}\n> +\n>  # Locate the media device\n>  find_media_device() {\n>  \tlocal mdev\n> @@ -63,15 +105,27 @@ configure_pipeline() {\n>  \tlocal format=\"fmt:$sensor_mbus_code/$sensor_size\"\n>  \tlocal capture_mbus_code=$1\n>  \tlocal capture_size=$2\n> +\tlocal csi2_rx\n>  \n>  \techo \"Configuring pipeline for $sensor in $format\"\n>  \n> +\tcsi2_rx=$(find_csi2_rx \"$sensor\")\n> +\n>  \t$mediactl -r\n>  \n> -\t$mediactl -l \"'$sensor':0 -> 'rkisp1_isp':0 [1]\"\n> +\tif [ -n \"$csi2_rx\" ] ; then\n> +\t\t$mediactl -l \"'$sensor':0 -> '$csi2_rx':0 [1]\"\n> +\t\t$mediactl -l \"'$csi2_rx':1 -> 'rkisp1_isp':0 [1]\"\n> +\telse\n> +\t\t$mediactl -l \"'$sensor':0 -> 'rkisp1_isp':0 [1]\"\n> +\tfi\n>  \t$mediactl -l \"'rkisp1_isp':2 -> 'rkisp1_resizer_mainpath':0 [1]\"\n>  \n>  \t$mediactl -V \"\\\"$sensor\\\":0 [$format]\"\n> +\tif [ -n \"$csi2_rx\" ] ; then\n> +\t\t$mediactl -V \"'$csi2_rx':0 [$format]\"\n> +\t\t$mediactl -V \"'$csi2_rx':1 [$format]\"\n> +\tfi\n>  \t$mediactl -V \"'rkisp1_isp':0 [$format crop:(0,0)/$sensor_size]\"\n>  \t$mediactl -V \"'rkisp1_isp':2 [fmt:$capture_mbus_code/$sensor_size crop:(0,0)/$sensor_size]\"\n>  \t$mediactl -V \"'rkisp1_resizer_mainpath':0 [fmt:$capture_mbus_code/$sensor_size crop:(0,0)/$sensor_size]\"","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 B40D8BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 15 Jul 2022 07:39:55 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7E3FF63312;\n\tFri, 15 Jul 2022 09:39:55 +0200 (CEST)","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 CF6C36330B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 15 Jul 2022 09:39:53 +0200 (CEST)","from pyrite.rasen.tech (softbank036240121080.bbtec.net\n\t[36.240.121.80])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 5CFA5993;\n\tFri, 15 Jul 2022 09:39:52 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1657870795;\n\tbh=VHCgROmxvbCCsCSR1UlwaQ4V6/EWlbluQ8I6TVP8o00=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=JfZ/JW0DOu/I7kcJAx+LgEKj9Ru7vQ08rukEhpngm7z9sjsuYbGOFsDrHBq+j43BW\n\t5vePlzOePZAy+OTppUltfQ5uSJeXN9FhtoQxpUAwSE4ZAR6pK5L5YUOWXLnipC1dQq\n\tTAUZZiV6Bo4RjF4RmoRIvThe+L5VCYne452nGcB5cNMJWnU6BFFHZ6YZOIr7THczK1\n\txWSOAMOxVJUH5jMza/5UISoGxEY9dnxzr36CYKqvF+gnIka9KLjIPtewXJO1uTN1Y4\n\tS8vkfER/bptplRkuoEycxsC+JI0O1/JF0VsSOAN0Ld8+/JtZc8TdE91awlKhwcwIA6\n\t+GgJo8/rYE4Lw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1657870793;\n\tbh=VHCgROmxvbCCsCSR1UlwaQ4V6/EWlbluQ8I6TVP8o00=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=lZXaSYvXVPvnhR3fWftTBAawX/jK7bBEaNCz3XK3AFy+UNG4AfAhqo7HWlQI/injC\n\tjfMoywTvrgkfYuCXmcs7EVII3I5ROeRIBQgpM+m0Kbz9+3Cvsf8MdgpTmJExQTHI5y\n\tFWTa9u2MM9eTeV78fmayWR64BXk9xAsrE95X2LRo="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"lZXaSYvX\"; dkim-atps=neutral","Date":"Fri, 15 Jul 2022 16:39:46 +0900","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20220715073946.GD3411283@pyrite.rasen.tech>","References":"<20220620210658.20288-1-laurent.pinchart@ideasonboard.com>\n\t<20220620210658.20288-5-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20220620210658.20288-5-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH 4/4] utils: rkisp1: Support optional\n\tCSI-2 receiver subdev","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":"Paul Elder via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"paul.elder@ideasonboard.com","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]