[{"id":14091,"web_url":"https://patchwork.libcamera.org/comment/14091/","msgid":"<20201206053818.hdggrx2uh67wuvzx@basti.Speedport_W_724V_Typ_A_05011603_06_001>","date":"2020-12-06T05:38:18","subject":"[libcamera-devel] WRONG mailing list: [PATCH] media: rkisp1: Add\n\tthe enum_frame_size ioctl","submitter":{"id":73,"url":"https://patchwork.libcamera.org/api/people/73/","name":"Sebastian Fricke","email":"sebastian.fricke.linux@gmail.com"},"content":"Sorry for polluting the mailing list! I send this to the correct\nreceiver now.\n\nOn 05.12.2020 14:41, Sebastian Fricke wrote:\n>Implement the VIDIOC_SUBDEV_ENUM_FRAME_SIZE ioctl, check if the mbus\n>code is valid for the given pad. This call is not available for the\n>parameter or metadata pads of the RkISP1.\n>\n>Signed-off-by: Sebastian Fricke <sebastian.fricke.linux@gmail.com>\n>---\n>\n>I have tested this patch with the following script:\n>https://github.com/initBasti/Linux_kernel_media_tree_fork/commit/efc4b399cff53fb36fadde999594961a3d84073e\n>\n>The results on my NanoPC-T4 (Linux nanopct4 5.10.0-rc6-rockchip64):\n>\n>pad 0 = RKISP1_ISP_PAD_SINK_VIDEO\n>pad 1 = RKISP1_ISP_PAD_SINK_PARAMS\n>pad 2 = RKISP1_ISP_PAD_SOURCE_VIDEO\n>pad 3 = RKISP1_ISP_PAD_SOURCE_STATS\n>\n>basti@nanopct4:~$ python3 rkisp1_enum_frame_size_test.py\n>TEST  0: pad 0 - code 0x300f - size 32x32 - 4032x3024\n>TEST  1: pad 0 - code 0x3007 - size 32x32 - 4032x3024\n>TEST  2: pad 0 - code 0x300e - size 32x32 - 4032x3024\n>TEST  3: pad 0 - code 0x300a - size 32x32 - 4032x3024\n>TEST  4: pad 0 - code 0x3012 - size 32x32 - 4032x3024\n>TEST  5: pad 0 - code 0x3008 - size 32x32 - 4032x3024\n>TEST  6: pad 0 - code 0x3010 - size 32x32 - 4032x3024\n>TEST  7: pad 0 - code 0x3011 - size 32x32 - 4032x3024\n>TEST  8: pad 0 - code 0x3014 - size 32x32 - 4032x3024\n>TEST  9: pad 0 - code 0x3001 - size 32x32 - 4032x3024\n>TEST 10: pad 0 - code 0x3013 - size 32x32 - 4032x3024\n>TEST 11: pad 0 - code 0x3002 - size 32x32 - 4032x3024\n>TEST 12: pad 0 - code 0x2011 - size 32x32 - 4032x3024\n>TEST 13: pad 0 - code 0x2012 - size 32x32 - 4032x3024\n>TEST 14: pad 0 - code 0x200f - size 32x32 - 4032x3024\n>TEST 15: pad 0 - code 0x2010 - size 32x32 - 4032x3024\n>TEST 16: pad 1 - code 0x7001 - size /\n>TEST 17: pad 2 - code 0x2008 - size 32x32 - 4032x3024\n>TEST 18: pad 2 - code 0x300f - size 32x32 - 4032x3024\n>TEST 19: pad 2 - code 0x3007 - size 32x32 - 4032x3024\n>TEST 20: pad 2 - code 0x300e - size 32x32 - 4032x3024\n>TEST 21: pad 2 - code 0x300a - size 32x32 - 4032x3024\n>TEST 22: pad 2 - code 0x3012 - size 32x32 - 4032x3024\n>TEST 23: pad 2 - code 0x3008 - size 32x32 - 4032x3024\n>TEST 24: pad 2 - code 0x3010 - size 32x32 - 4032x3024\n>TEST 25: pad 2 - code 0x3011 - size 32x32 - 4032x3024\n>TEST 26: pad 2 - code 0x3014 - size 32x32 - 4032x3024\n>TEST 27: pad 2 - code 0x3001 - size 32x32 - 4032x3024\n>TEST 28: pad 2 - code 0x3013 - size 32x32 - 4032x3024\n>TEST 29: pad 2 - code 0x3002 - size 32x32 - 4032x3024\n>TEST 30: pad 3 - code 0x7001 - size /\n>TEST 31: pad 0 - code 0xdead - size / (test with an invalid media bus code)\n>TEST 32: pad 6 - code 0x300f - size / (test with an invalid pad)\n>TEST 33: pad 0 - code 0x2008 - size / (test with a format that is not supported by the pad)\n>TEST 34: pad 2 - code 0x2010 - size / (test with a format that is not supported by the pad)\n>\n>---\n>\n> .../platform/rockchip/rkisp1/rkisp1-isp.c     | 39 +++++++++++++++++++\n> 1 file changed, 39 insertions(+)\n>\n>diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c\n>index 889982d8ca41..fa7540155d71 100644\n>--- a/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c\n>+++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c\n>@@ -599,6 +599,44 @@ static int rkisp1_isp_enum_mbus_code(struct v4l2_subdev *sd,\n>\n> \treturn -EINVAL;\n> }\n>+static int rkisp1_isp_enum_frame_size(struct v4l2_subdev *sd,\n>+\t\t\t\t      struct v4l2_subdev_pad_config *cfg,\n>+\t\t\t\t      struct v4l2_subdev_frame_size_enum *fse)\n>+{\n>+\tint i;\n>+\tbool code_match = false;\n>+\n>+\tif (fse->pad == RKISP1_ISP_PAD_SINK_PARAMS ||\n>+\t    fse->pad == RKISP1_ISP_PAD_SOURCE_STATS)\n>+\t\treturn -EINVAL;\n>+\n>+\tif (fse->index > 0)\n>+\t\treturn -EINVAL;\n>+\n>+\tfor (i = 0; i < ARRAY_SIZE(rkisp1_isp_formats); i++) {\n>+\t\tconst struct rkisp1_isp_mbus_info *fmt = &rkisp1_isp_formats[i];\n>+\n>+\t\tif (fmt->mbus_code == fse->code) {\n>+\t\t\tcode_match = true;\n>+\t\t\tif (!(fmt->direction & RKISP1_ISP_SD_SINK) &&\n>+\t\t\t    fse->pad == RKISP1_ISP_PAD_SINK_VIDEO)\n>+\t\t\t\treturn -EINVAL;\n>+\t\t\tif (!(fmt->direction & RKISP1_ISP_SD_SRC) &&\n>+\t\t\t    fse->pad == RKISP1_ISP_PAD_SOURCE_VIDEO)\n>+\t\t\t\treturn -EINVAL;\n>+\t\t}\n>+\t}\n>+\n>+\tif (!code_match)\n>+\t\treturn -EINVAL;\n>+\n>+\tfse->min_width = RKISP1_ISP_MIN_WIDTH;\n>+\tfse->max_width = RKISP1_ISP_MAX_WIDTH;\n>+\tfse->min_height = RKISP1_ISP_MIN_HEIGHT;\n>+\tfse->max_height = RKISP1_ISP_MAX_HEIGHT;\n>+\n>+\treturn 0;\n>+}\n>\n> static int rkisp1_isp_init_config(struct v4l2_subdev *sd,\n> \t\t\t\t  struct v4l2_subdev_pad_config *cfg)\n>@@ -880,6 +918,7 @@ static int rkisp1_subdev_link_validate(struct media_link *link)\n>\n> static const struct v4l2_subdev_pad_ops rkisp1_isp_pad_ops = {\n> \t.enum_mbus_code = rkisp1_isp_enum_mbus_code,\n>+\t.enum_frame_size = rkisp1_isp_enum_frame_size,\n> \t.get_selection = rkisp1_isp_get_selection,\n> \t.set_selection = rkisp1_isp_set_selection,\n> \t.init_cfg = rkisp1_isp_init_config,\n>-- \n>2.20.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 AE54CBDB1F\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun,  6 Dec 2020 05:38:22 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2D915635F2;\n\tSun,  6 Dec 2020 06:38:22 +0100 (CET)","from mail-wr1-x444.google.com (mail-wr1-x444.google.com\n\t[IPv6:2a00:1450:4864:20::444])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 53AEA60325\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun,  6 Dec 2020 06:38:21 +0100 (CET)","by mail-wr1-x444.google.com with SMTP id l9so188003wrt.13\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 05 Dec 2020 21:38:21 -0800 (PST)","from localhost\n\t(p200300d1ff4084001dd1f519956627b5.dip0.t-ipconnect.de.\n\t[2003:d1:ff40:8400:1dd1:f519:9566:27b5])\n\tby smtp.gmail.com with ESMTPSA id\n\tv4sm9908407wru.12.2020.12.05.21.38.20\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tSat, 05 Dec 2020 21:38:20 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"AKQm2LqB\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:in-reply-to:user-agent;\n\tbh=OoQqvda1AhehN/+Rfa9mY9p4I6AKoAvTsJZwzIwp66Q=;\n\tb=AKQm2LqBmY+0LDw/N/gQBMQw/YOr9hC6l9EIdwbjSCKHa61Th7O3R4POIywLVR5jMp\n\tqTrmr1g+clxWnZmNGfhG8U5x0uSnF9kfzNj24h7K9y/OaiHVpPLvieVBKGJ5tyDQq/IE\n\tjNIEx1/803u8oIO5nLNy2bQLsBgxkX0xGQPNWU9Ehu+Z5LzMqNlrPlQ2FDyUiEhax5wy\n\tj0+AbZzt6KbiEWPnDdnp8x9kjm+A1AcCJgXd3x4zbHQC4OnB1ZJ0EgoYk78xBi2+bD3u\n\th5iRZSZCuaX27QkweJyMbP8fxuLMRquK1MnaVZIwV+E7Frl0SdT3ep3CEIRsdnh2Gfau\n\tkHHA==","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:in-reply-to:user-agent;\n\tbh=OoQqvda1AhehN/+Rfa9mY9p4I6AKoAvTsJZwzIwp66Q=;\n\tb=LV9JvNIPajaY3UPZieCd5B9jFAuuKICn0K5U1Cxqug651TYGHGgDIBZDiA/X8RoBmo\n\t33CGN0iUY5qd2CdUXgLbA26KgLLgXBAp9VQsFyW+yQjfdAy+9z2B6K45KcvrOsvgJ8Hp\n\t2jGW2jmeSL4cXa34BDMU44YsrXhxsdpP1DvtPkrTuhk3bNOGscKuHwV4sRZ9Q4kEHVyo\n\tB9S3cd9yoNixRwt4qecGtWwLSSPCtRvXkXJfLxW0PA+jZn4BRXYZgKbA+AnlgbMvxeOY\n\tL1lD+xCJXXSP57gypROhhRSq9+xAsCJxApuUJF6WtZjiBlIhlWLnf4UO8gO6k1QJSD+3\n\tM2lw==","X-Gm-Message-State":"AOAM531QwWvd2iDbiAP1BstWaLJRWYxvB/ml86a65AuxONF3c6p+fGmB\n\tgI8llPmACQ09g5WqbvYWWnfVKL0hFBWXcA==","X-Google-Smtp-Source":"ABdhPJylMKlEjc8GNBgTGZEzWXqjvVcBTmq9n9g1aUDUSBZvrWkB4ACcgQmR1Lpj4J+4iYaxCdQttA==","X-Received":"by 2002:adf:f8d2:: with SMTP id\n\tf18mr12782044wrq.379.1607233100596; \n\tSat, 05 Dec 2020 21:38:20 -0800 (PST)","Date":"Sun, 6 Dec 2020 06:38:18 +0100","From":"Sebastian Fricke <sebastian.fricke.linux@gmail.com>","To":"libcamera-devel@lists.libcamera.org","Message-ID":"<20201206053818.hdggrx2uh67wuvzx@basti.Speedport_W_724V_Typ_A_05011603_06_001>","References":"<20201205134125.11115-1-sebastian.fricke.linux@gmail.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20201205134125.11115-1-sebastian.fricke.linux@gmail.com>","User-Agent":"NeoMutt/20180716","Subject":"[libcamera-devel] WRONG mailing list: [PATCH] media: rkisp1: Add\n\tthe enum_frame_size ioctl","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>","Content-Transfer-Encoding":"7bit","Content-Type":"text/plain; charset=\"us-ascii\"; Format=\"flowed\"","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]