{"id":20992,"url":"https://patchwork.libcamera.org/api/patches/20992/?format=json","web_url":"https://patchwork.libcamera.org/patch/20992/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20240822153527.25320-4-laurent.pinchart+renesas@ideasonboard.com>","date":"2024-08-22T15:35:23","name":"[v2,3/7] media: sun4i_csi: Don't use v4l2_subdev_link_validate() for video device","commit_ref":null,"pull_url":null,"state":"not-applicable","archived":false,"hash":"1de27cdda4df4d9aec13182dfdf452a1229ded1b","submitter":{"id":204,"url":"https://patchwork.libcamera.org/api/people/204/?format=json","name":"Laurent Pinchart","email":"laurent.pinchart+renesas@ideasonboard.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/20992/mbox/","series":[{"id":4533,"url":"https://patchwork.libcamera.org/api/series/4533/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=4533","date":"2024-08-22T15:35:20","name":"media: v4l2: Improve media link validation","version":2,"mbox":"https://patchwork.libcamera.org/series/4533/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/20992/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/20992/checks/","tags":{},"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 A9CD1C32C2\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 22 Aug 2024 15:35:41 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B16B1633DE;\n\tThu, 22 Aug 2024 17:35:40 +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 1E569633D4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 22 Aug 2024 17:35:34 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi\n\t[81.175.209.231])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 5C64F1225;\n\tThu, 22 Aug 2024 17:34:31 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"IRdqJ3hW\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1724340871;\n\tbh=vWnDrPPWzy4Zl3mZqqk63elPGbjLXf+2JHhw+izsKsI=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=IRdqJ3hWMtrdatgdFksti2LbIJHasADUvVF4+ej6uijwiNdTxHWWb0wsTHhbcS9VB\n\tP+j7Wr7/BFq5K44yzuhqpuUd44IfaS//Y5TprBIT/cvah97+yFpnYo/2Jx+/10K87/\n\tjR2bCOYsCjDviUFj269KB6hKZENGO/l4xy/7zg2M=","From":"Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Cc":"Chen-Yu Tsai <wens@csie.org>, Eugen Hristev <eugen.hristev@collabora.com>,\n\tHans Verkuil <hverkuil-cisco@xs4all.nl>,\n\tJacopo Mondi <jacopo.mondi@ideasonboard.com>,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>,\n\tMaxime Ripard <mripard@kernel.org>, Sakari Ailus <sakari.ailus@iki.fi>,\n\tTomi Valkeinen <tomi.valkeinen@ideasonboard.com>,\n\tlinux-renesas-soc@vger.kernel.org, linux-sunxi@lists.linux.dev","Subject":"[PATCH v2 3/7] media: sun4i_csi: Don't use\n\tv4l2_subdev_link_validate() for video device","Date":"Thu, 22 Aug 2024 18:35:23 +0300","Message-ID":"<20240822153527.25320-4-laurent.pinchart+renesas@ideasonboard.com>","X-Mailer":"git-send-email 2.44.2","In-Reply-To":"<20240822153527.25320-1-laurent.pinchart+renesas@ideasonboard.com>","References":"<20240822153527.25320-1-laurent.pinchart+renesas@ideasonboard.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"The v4l2_subdev_link_validate() function is a helper designed to\nvalidate links whose sink is a subdev. When called on a link whose sink\nis a video device, it only prints a warning and returns. Its usage in\nthe sun4i_csi driver is wrong, leaving the link from the sub4i_csi\nsubdev to the capture video device unvalidated.\n\nPlanned improvements to the v4l2_subdev_link_validate() function will\nturn the warning into an error, breaking the sun4i_csi driver. As an\ninterim measure, move the warning to the sun4i_csi driver in a custom\nvalidation handler, and drop the call to the helper.\n\nSigned-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>\nAcked-by: Chen-Yu Tsai <wens@csie.org>\n---\n drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c | 9 ++++++++-\n 1 file changed, 8 insertions(+), 1 deletion(-)","diff":"diff --git a/drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c b/drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c\nindex dbb26c7b2f8d..d07e980aba61 100644\n--- a/drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c\n+++ b/drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c\n@@ -35,8 +35,15 @@ struct sun4i_csi_traits {\n \tbool has_isp;\n };\n \n+static int sun4i_csi_video_link_validate(struct media_link *link)\n+{\n+\tdev_warn_once(link->graph_obj.mdev->dev,\n+\t\t      \"Driver bug: link validation not implemented\\n\");\n+\treturn 0;\n+}\n+\n static const struct media_entity_operations sun4i_csi_video_entity_ops = {\n-\t.link_validate = v4l2_subdev_link_validate,\n+\t.link_validate = sun4i_csi_video_link_validate,\n };\n \n static const struct media_entity_operations sun4i_csi_subdev_entity_ops = {\n","prefixes":["v2","3/7"]}