From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id EB42AC433EF for ; Mon, 11 Jul 2022 01:38:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=IViz6EtWHCvwap2XBFJDqvUC9UkS7k9EO6XjstGGSy4=; b=OZRjm1v5UqJwQVCVKtewtcsnJh ziGsNR/lzrGUYt0GeIn6HatfubGmyGm7fE5nV2vQlO1sS9NQYrqY840J5xDk9PuH4DrFsUEbezRmH p6bzkIVcpt5q0LYYtFIZigYh5v2RGCOlZo0WdZebAP4jAq33nKOmAOQiSgubgNYd6UThacWpDrTNi QWhphbQRCKLqQ8sV6M1NHAKo0gv2kBq6egv3OFZkHZE3mhWkc0w0CkuK2FlqX+TM2B1JinWlb3tPJ AsWal16w/7qoNgVNzPWktUxVrs888opD/s1MlpOjKHMNYRK5UpcMg7rScT+Yx19MIpGvIVA3xRGIz SgO/GBCQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oAiNQ-00F2Go-73; Mon, 11 Jul 2022 01:38:20 +0000 Received: from wout1-smtp.messagingengine.com ([64.147.123.24]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oAiNN-00F2FF-AT for linux-rockchip@lists.infradead.org; Mon, 11 Jul 2022 01:38:19 +0000 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id 3921E32002F9; Sun, 10 Jul 2022 21:38:16 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Sun, 10 Jul 2022 21:38:16 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.com; h= cc:cc:content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to; s=fm3; t=1657503495; x=1657589895; bh=fU5pyebLqz JXq3xPC9UQRDzrTYaTazzmxNOCSIfErAk=; b=NULvAOlLRol7ahbPJu0RgRcjwy jftD19NQB0/E/hgonYssdQFpC49+j1FefqchmusPD5an6pF03dJ1DzAWUSg0oife xszge9tU5Zvpztk+QOab+38549dEVuzX60yPyi21Kvys1oJpd4JGK74xdM5tdl2O 3y/ZMeyO7fDV+JGfIT9w5ee2DaHE3o1ET2iXD+Hf+FstILtZnDwfc1kh98jYtzkK QRpsueXlbWpVXozlm+9lXhqup1jqw7nJ2PcZ41WUQZ6tQVznMPQ6Pgl4LS861pJk PXHgn3g0qhNZgiSyLXk7+hz3O/dBF/1oUdMd5EH8ewGTO/cyNT3Zd60W7/2g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1657503495; x=1657589895; bh=fU5pyebLqzJXq3xPC9UQRDzrTYaT azzmxNOCSIfErAk=; b=O/XyNT1Lzvbfbi7ugzr+gATsboAFFjlbd5256LkGrHbi 3DOxzz0+N0WmH2LQZ7zx2EwMptFuocRhx4TkD7e99OLYmX2JLSbKn3gcZ+cNgzBm G6235WLcGmuBGOPye/hPYNvQh+XmWv05VSxpOADCdQ8pYqPwKTGpsaTsCYQE4dbS jgfulm7XtYTl2FYUaCUXLs7RogLdgXAncEGmF9vbZGOGOdS9O4AspK7GUeU6otIb al4a2hY2pVYDw9qfF3CVbQnqIBXP7qiRjGQureLD4EHRQXDQCv6wwqRoINnqKuxz 0WAQzuH6FAGmD0poowe0W85PA0W1R58FUsaXIVGbMw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrudejvddghedtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtjeenucfhrhhomhepffgrfhhn rgcujfhirhhstghhfhgvlhguuceouggrfhhnrgesfhgrshhtmhgrihhlrdgtohhmqeenuc ggtffrrghtthgvrhhnpeevtdffuedtvedugfehvdfhheevkefhheejvdffveffffdtgfdt feetffdvheejhfenucffohhmrghinhepsggrshgvrdhiugdpihhnfhhrrgguvggrugdroh hrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegu rghfnhgrsehfrghsthhmrghilhdrtghomh X-ME-Proxy: Feedback-ID: i0e894699:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 10 Jul 2022 21:38:13 -0400 (EDT) Date: Mon, 11 Jul 2022 04:38:10 +0300 From: Dafna Hirschfeld To: Laurent Pinchart Cc: linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, Heiko Stuebner , Helen Koike , Paul Elder Subject: Re: [PATCH v2 41/55] media: rkisp1: Use fwnode_graph_for_each_endpoint Message-ID: <20220711013810.5pphbuzbekbccmfa@guri> References: <20220630230713.10580-1-laurent.pinchart@ideasonboard.com> <20220630230713.10580-42-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220630230713.10580-42-laurent.pinchart@ideasonboard.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220710_183817_416027_DEC67967 X-CRM114-Status: GOOD ( 11.55 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org On 01.07.2022 02:06, Laurent Pinchart wrote: >From: Paul Elder > >When registering the notifier, replace the manual while loop with >fwnode_graph_for_each_endpoint. This simplifies error handling. > >Signed-off-by: Paul Elder >Reviewed-by: Laurent Pinchart Reviewed-by: Dafna Hirschfeld >--- > .../platform/rockchip/rkisp1/rkisp1-dev.c | 44 +++++++++---------- > 1 file changed, 20 insertions(+), 24 deletions(-) > >diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c >index c3a7ab70bbef..0eb37ba557ce 100644 >--- a/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c >+++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c >@@ -168,29 +168,28 @@ static const struct v4l2_async_notifier_operations rkisp1_subdev_notifier_ops = > static int rkisp1_subdev_notifier_register(struct rkisp1_device *rkisp1) > { > struct v4l2_async_notifier *ntf = &rkisp1->notifier; >- unsigned int next_id = 0; >+ struct fwnode_handle *fwnode = dev_fwnode(rkisp1->dev); >+ struct fwnode_handle *ep; > unsigned int index = 0; >- int ret; >+ int ret = 0; > > v4l2_async_nf_init(ntf); > >- while (1) { >+ ntf->ops = &rkisp1_subdev_notifier_ops; >+ >+ fwnode_graph_for_each_endpoint(fwnode, ep) { > struct v4l2_fwnode_endpoint vep = { > .bus_type = V4L2_MBUS_CSI2_DPHY > }; > struct rkisp1_sensor_async *rk_asd; >- struct fwnode_handle *source = NULL; >- struct fwnode_handle *ep; >- >- ep = fwnode_graph_get_endpoint_by_id(dev_fwnode(rkisp1->dev), >- 0, next_id, >- FWNODE_GRAPH_ENDPOINT_NEXT); >- if (!ep) >- break; >+ struct fwnode_handle *source; > > ret = v4l2_fwnode_endpoint_parse(ep, &vep); >- if (ret) >- goto err_parse; >+ if (ret) { >+ dev_err(rkisp1->dev, "failed to parse endpoint %pfw\n", >+ ep); >+ break; >+ } > > source = fwnode_graph_get_remote_endpoint(ep); > if (!source) { >@@ -198,14 +197,15 @@ static int rkisp1_subdev_notifier_register(struct rkisp1_device *rkisp1) > "endpoint %pfw has no remote endpoint\n", > ep); > ret = -ENODEV; >- goto err_parse; >+ break; > } > > rk_asd = v4l2_async_nf_add_fwnode(ntf, source, > struct rkisp1_sensor_async); > if (IS_ERR(rk_asd)) { >+ fwnode_handle_put(source); > ret = PTR_ERR(rk_asd); >- goto err_parse; >+ break; > } > > rk_asd->index = index++; >@@ -216,27 +216,23 @@ static int rkisp1_subdev_notifier_register(struct rkisp1_device *rkisp1) > > dev_dbg(rkisp1->dev, "registered ep id %d with %d lanes\n", > vep.base.id, rk_asd->lanes); >+ } > >- next_id = vep.base.id + 1; >- >- fwnode_handle_put(ep); >- >- continue; >-err_parse: >+ if (ret) { > fwnode_handle_put(ep); >- fwnode_handle_put(source); > v4l2_async_nf_cleanup(ntf); > return ret; > } > >- if (next_id == 0) >+ if (!index) > dev_dbg(rkisp1->dev, "no remote subdevice found\n"); >- ntf->ops = &rkisp1_subdev_notifier_ops; >+ > ret = v4l2_async_nf_register(&rkisp1->v4l2_dev, ntf); > if (ret) { > v4l2_async_nf_cleanup(ntf); > return ret; > } >+ > return 0; > } > >-- >Regards, > >Laurent Pinchart > > >_______________________________________________ >Linux-rockchip mailing list >Linux-rockchip@lists.infradead.org >http://lists.infradead.org/mailman/listinfo/linux-rockchip _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip