From patchwork Thu Apr 27 02:02:22 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 9702301 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id ED4C4603F9 for ; Thu, 27 Apr 2017 02:17:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D0F492860F for ; Thu, 27 Apr 2017 02:17:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BE1402861A; Thu, 27 Apr 2017 02:17:16 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.8 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED, RCVD_IN_DNSWL_NONE, T_DKIM_INVALID autolearn=no version=3.3.1 Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id ECC852860F for ; Thu, 27 Apr 2017 02:17:15 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id B8E3A2671BE; Thu, 27 Apr 2017 04:02:49 +0200 (CEST) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa0.perex.cz (Postfix, from userid 1000) id 25E532671BE; Thu, 27 Apr 2017 04:02:48 +0200 (CEST) Received: from relmlie4.idc.renesas.com (relmlor1.renesas.com [210.160.252.171]) by alsa0.perex.cz (Postfix) with ESMTP id C7EBD267135 for ; Thu, 27 Apr 2017 04:02:28 +0200 (CEST) Received: from unknown (HELO relmlir3.idc.renesas.com) ([10.200.68.153]) by relmlie4.idc.renesas.com with ESMTP; 27 Apr 2017 11:02:24 +0900 Received: from relmlii1.idc.renesas.com (relmlii1.idc.renesas.com [10.200.68.65]) by relmlir3.idc.renesas.com (Postfix) with ESMTP id 5196F5EA86; Thu, 27 Apr 2017 11:02:24 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.37,256,1488812400"; d="scan'208";a="241044933" Received: from mail-os2jpn01lp0144.outbound.protection.outlook.com (HELO JPN01-OS2-obe.outbound.protection.outlook.com) ([23.103.139.144]) by relmlii1.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 27 Apr 2017 11:02:24 +0900 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesasgroup.onmicrosoft.com; s=selector1-renesas-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=zcxubBFo8cNTWKQDZbxOx+SzKuF1HxfxsHApwfB+do4=; b=aG7eRVssibfRkOUrKP859sbiQZaNUWEYAO1V93qpD31UbS/jykWI3yDr+9t/1FujDF/Z85gFy9FnN97HmnYw0mxeW/8OxmLdcwhYQ79b/5DFsJQG8riv1EkiWh0yny/ZX0Fs362eU+n1I/bFNaX0tzQl4iIA2jhErIqm965WSGo= Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none; kernel.org; dmarc=none action=none header.from=renesas.com; Received: from morimoto-PC.renesas.com (211.11.155.144) by TY1PR06MB0831.apcprd06.prod.outlook.com (10.163.245.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1047.13; Thu, 27 Apr 2017 02:02:22 +0000 Message-ID: <87shkur4r9.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto To: Mark Brown , Rob Herring User-Agent: Wanderlust/2.15.9 Emacs/24.3 Mule/6.0 MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") In-Reply-To: <871ssesjgn.wl%kuninori.morimoto.gx@renesas.com> References: <871ssesjgn.wl%kuninori.morimoto.gx@renesas.com> Date: Thu, 27 Apr 2017 02:02:22 +0000 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: TY1PR0201CA0006.apcprd02.prod.outlook.com (10.164.90.144) To TY1PR06MB0831.apcprd06.prod.outlook.com (10.163.245.25) X-MS-Office365-Filtering-Correlation-Id: 5556caf9-57b1-4f7b-e0ee-08d48d117193 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081)(201703131423075)(201703031133081); SRVR:TY1PR06MB0831; X-Microsoft-Exchange-Diagnostics: 1; TY1PR06MB0831; 3:KJe2TzyIsHSxD0SVUMDsQCMYEERyqHxIW4UsgHx9BpcQh2/YOfWM9F4bzIEsvjDr2QGy3/eyNfx4Q0sQJNkrLwz73ZqVg7U/X9ckbz+SvhgV9qh1VwDdxADMkJW5yg1zFgBZtQZzpMR0z4pinPTaelrD7SirCl21V2E0k4SPfOSD7LI6kNHs4rsynFQRbjh9jAdmoUBqMpPdyKIiHt4nbTWFE8FxI9FalxjywxZYFURe+kdOkS0P1Wndsj1OJs2mAyNQbC7tIhICDYtJ3KtTR/8IlmY0r6toLGXSDJ5b9jYxYxwBnLl/VzdrgsK3ekNQSX4lI/5IMuOIbK3IkDQ2fiKKr8Q+B7tAf50WeeyNeTk=; 25:QkCDh9UJV1OlCMqoSQM+O7VTAInJyq6aGLJHCiL+yP5Aw/gG9fyvQNQGU4EE+BPsGPJWteAOzd2BpRETgc5o2lzieHGYOnKKy+wDsVMIhF2KrEJXeRvpgHgq7zCjX+DZMqZiuS22PqOADpIccdMEkZKJcvXDy16osoC5aw129epkwVDVfMPWDVsiETozfMI3krvaIy3Mn6wEs9hHTbD5AKw7a/aSgK649nyCt1buWO4JmyspVtuhc0gEvpdz8Eu1jmMDnouJuBvxMlTzmyyZhv4NHxOG5nPyii7rXuGQzNHQwoQHkbqy2wfk5dJWNui6e7k8QlXltkZca2pfMsSwMtzY2BlmU3H71HfeLCb31G3cZ3Kc942TjXc6sTp8KhRfQI+v0pPlzWW7u3XIiKQ3+c4tnMZHVHGMaokaKTCtvcm2Zlu2U5msBpsW930emLdYlj0l+whyFdIOF/hXqrd3Tw== X-Microsoft-Exchange-Diagnostics: 1; TY1PR06MB0831; 31:r171BwsoeYNNQDf1TRht4frt47XCn/+JcQJGt4RIofzXF8xbNNGPhbsS29qdG7ZlVizqbmm88zZr/mW1BmpHcjE4amCyVb4W/AhXYQfzslMx9GAhT3yxjR2nvvmRAaD3n+t4yho7UXvg5rkhZZUrZxu+M0mRvEtGk6yZwNqNq5R2eLSOdnABxDAl9bNqhhdfrzjeduUvq31SkGYg21uOrHpJATWNFTed+qbdrszn/KI/1zuqqqyHZqmPu1OiKA/r; 20:wMIBMByruN6WozJ6u5pxqWpoT1znfEYTRHB5XQLHyngAx33rC3FKeJiWyYwQMamgq3fkU/HYG6uswlkWM9x0VkhzudyxF4439hN1HKBz3oFk+SEJpgPLKw9B0gCZ+aoCxghTe0e2WIQwG6LEgoRZxqCRFCBmXHI5Q5D5dKMlXlicW9mpw/zgDS86q4cH1P1xWYaymrDBCc6E9NoOpxEJeJt6/8uQcwIuZH8MA60DXHGs8ej9YIPhh75rExrHNzzJDQilOb5n1TezHF0nxAqlu2i3qA/iJ1RH79OTHJSCwhLr2ih8S1FpmICjfsCREYidfaSk+Vr8XcBgelm32eT8/fQubwfOCmeLHupbfTzqRMoQF1LrQNEDXC/0HM39G0PV2gxsS2hwJcAoU7OQBew4d7Ltb6MNZT8QI0q0cqCxt5OM3y2tQTNkLTK4clNywJhLRZ5rfh1wiFcq3trUfGeYquR1otKU7eE7KPY4z3Uglsxmd6UU34v4Gf2WViLyvD62 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041248)(20161123564025)(20161123560025)(20161123555025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(6072148); SRVR:TY1PR06MB0831; BCL:0; PCL:0; RULEID:; SRVR:TY1PR06MB0831; X-Microsoft-Exchange-Diagnostics: 1; TY1PR06MB0831; 4:cDrF8VeR4XSzgXN19MTb5HvkLDsBYC11TlSK8v/jZJiVBgkSwotpLaNLs0zwlLVCzK3/QLMr2Yew0MbQt+qtgIehURd1W+OdGASgAG5l+TxPqy/ISg5tIQERwSs7tRe3xbF8XYGlFnF7YZYgJ/YbGyo2Sm8AH9YA5th7OuDzsNJsr80VhVlt8iynB2NrhjQ92PsmgX3WNU6Kk7s13c2uvS3tDhu436yD7rXsEG7fuHRwuRX3AwBMBFJks/kxcCwEsJWSBeCW3jQlfaYkJsj9ftJm7+BmJ2/YeXevwOCn2ssVITRsqWX2nhVrqnPWvbRIGYYCBWOD8/itMskvhJypq713HRCYwwZAwRN55FizW75GFiH9fVZ+FikvUq7xRHBpeQIMpatjxcXrUCMzQboBs1lWMy6iasZ7dJ+6dUnXOUSFhZ8ytNbjvqrAMoirLVzoeBiV4YlKOx6LxLgo/dneSjPdJ9Mn5aKfNdD++4Y1IlQN4YrpRCvXs6IVxbdzFQrNDjTFQBMIfmUDrg2uhsdUcS5tRiWl0n+mBkATK9MQKhvNP6nvHsBgpbTDNXf/9T78rEWA0mq55CKu+pBpKQuxWlnbYOMdqJSn1BCRx91+rITnDmYX22u/MybI4lypHBPJSD+/cwPTSnv6vaYxtOfSFJbt6l7+0IUraaA9EPUoL6BNlBLW7UgIXJIzTO5AiigltgTLNVSlNC21FZRNjR4oAc0s3DdmEq/9sapnp7sywFs= X-Forefront-PRVS: 029097202E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(39840400002)(39450400003)(39400400002)(39410400002)(39860400002)(39850400002)(6116002)(23726003)(3846002)(83506001)(189998001)(76176999)(54356999)(4001350100001)(86362001)(2906002)(50466002)(38730400002)(46406003)(4326008)(50986999)(25786009)(54906002)(42186005)(53416004)(5660300001)(47776003)(2950100002)(36756003)(53936002)(6486002)(33646002)(81166006)(8676002)(305945005)(7736002)(66066001)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:TY1PR06MB0831; H:morimoto-PC.renesas.com; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; TY1PR06MB0831; 23:iufwidwRzJabvsp50r9nYK9xXhIE5/SJ0OaHKEBXZ?= =?us-ascii?Q?HcLtPvc0u4rtdiolz30V0T7eZmsE84saP8gxKruzI/5hk580YADsCeTb9Whb?= =?us-ascii?Q?/ie5Neja9SOqhNeGIQtdM/mDJKVf9jvOMs07CLNj2DQ0Jzk+yWn+Bn/SXzyw?= =?us-ascii?Q?HYidGLzKzNkUGWeOHyspR6Hlj1oqWZAYUqugCZ5O3T0gxQaVbmZUDr3S52G+?= =?us-ascii?Q?COhrcJns+mHAvQJGhZi0rG39IQAzIL6a1blebLOE/0VcbW4wiNUs4ggvNpPI?= =?us-ascii?Q?GnWy2h9XhbiaKesTa+v7iqIefdqhthWtsGhit2o8Sdq3KHYc9AeevddMtOms?= =?us-ascii?Q?+x6BWnKfi3ppwzPSnhXe22k2AaomCoKepkRGPojAvEw3a5dN4uXtAWTo0DtZ?= =?us-ascii?Q?RP9XLn3tptYSiEbmx4U0KS2fRJ1YYm74VXsX8/PFeTp1xALRE3ggGl34KVgG?= =?us-ascii?Q?QStizGhl0duLQzB/aw81NwJb+qSWyNpt2+fBLRjLdS62y/3tuySw9Ih/gjFS?= =?us-ascii?Q?LVF9LUzVgQWWGTFqqYp/+VOXbGs4pMZ+GULxCfnngKDSLYs0urir5arqNOV0?= =?us-ascii?Q?N4b5XzpdoYXBZxCwF3XOd+GEYmC6KIdA7jvwAJFiYdV9NCt+CshJWdIGDXCJ?= =?us-ascii?Q?e1snv+uurfKheLE4d4NThG3kjnYyANYDcJnVF8n5O1/Odeu+0Qq2gvqct8dn?= =?us-ascii?Q?dZ6c6e3bi6vN0r7ynVGV99HF73IOY7Ky3CW4iX7Bsuflb7xqPz60btuggqf9?= =?us-ascii?Q?/xyMhT9jmY7/CDUzI6ypEP6Sf6gStpVT3b78fHcKquux5sdA/zG+PdMMJkz2?= =?us-ascii?Q?h93AhR7MzeSV6uYJ2AwGZkObj6XEWs0OZes1C1hpTihlN7SitvREqgwe5zIL?= =?us-ascii?Q?Ug6UBBCI+wAkLt7GC6eSzqA+fZyOGOif/JasphKE+6YJG3d/HNv09NWwNEN2?= =?us-ascii?Q?gcKU4gOOYhaQEzLAvesCboV3DZJ7ijo93j/rguIALXrKqBYEZSgfjDjngPFr?= =?us-ascii?Q?cZK2iS9ehi/BCUqTcrk2CkmR5ZXh8g++uLfevzTR9I//oyDet0GyPgoVV5Vi?= =?us-ascii?Q?o0GZDA=3D?= X-Microsoft-Exchange-Diagnostics: 1; TY1PR06MB0831; 6:zRJVtqXSMOnTM7DbujzVeIz4p5BOcy0H+f1INMNJkbl4ev8e1+FXRoCgF4+/L+AJ0mueu9p6uikbgRVZvxTpOqtj3hw5poGyJIb0D8fEMpHjnRZX+UhkQzQpHFVGzmrEOq2gO4S0kB+B0WbFhLL6pPYRnwXIqAmBZp3daeEVRHSf2HSd2D20kf6xPcrf/ERq2zFaLMn8G9noaGCSvOKgnnDFSgQ8TLRQYKFMth0adVRiWUNAcQyMwqxwBmKqHd8OHoOJ46o18fb5KfnnOnz030ziZJyha3ADXJDJ3PfoX439U8OJSnSnq6kWrtTqIhv09FBPj7XMVE/lOYxI4ZFY2OXMMHVGj1iFQ0/KL1VfMtcB66dJeyaKUdEHUzj/YNg2esDQ+74pmUZoU40EWmQ8Kvu3SFmnR47x/SLMG00UygvhjpyG0sgNesPkM3XhC7qR018QwKPKg+ogf5vuSeFpEhb5uSJgxWbLHIfLKVa49pHBFqVEV5riRcwCZrud9Ak+4VH+1IaFdKavGFRQs7iuDirrlQkRp/sgnITZ+MWB28A=; 5:FubvrrqSM026ETBCQxk7uaNY2FeEnZ3jTnKHC3hS/pAQRu6VHn+GjNyh9CqMfq6ySxnQpMKA9BlXCLMx/LoGa7AeCglUqWuu/HkIP4S3RXBWYEHaX4qcBkWyejLyfkgh7ppd8hRN1Mng18eq4eO/qQ==; 24:Wpb6v9QVTxJ59ozKlMQtJIxri+A/rU5Ecv/733775v0eR5uAll3eXVrU73UZ7nSM7E8mYrLtJWph4M6CAbP/b/2F6gcKJX7yoiajoFigYGc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; TY1PR06MB0831; 7:mOgAlR1ZrvwKJxYPXx72pYrAJMFGTaeeqYsZz7QWe8oQD/wZfPAyqOBII6v4VGfK6rZNlrYP8MBIz6XBT67bpgxMFKnL3Vd9EtFTewYs/BWFJ3nvPIl1WwADBKoSOhFOoCULGl3/fWNKN+YkZqWTxwDYUVKj+ugvZ0SXSqj4Sbg6aRbwH87kHGTWvZxew472lUdS/INAA1CfO1uGto9YxqHQKj6YJ2FgJOkJSKoQKauv5SEj9Jj+HI7ydKOzIg39eEk3UHtqmxSA8YBdm0IUEGmRLUZos7zzNM/ZhYDtdZPO18liLsFVqohI9l3RJ0Kuz/1bJaaknMopJLwmYuvpww==; 20:XVu5Ieoo2VpVNDhRM1hSARdq5qWk87vr4DAWFmNSnI91Bqga/Bl/ncrlt0P2uNfu4SOwPKSiOlfZISYSb2Y7OLEvillxbpYHuqSMY/JFRiACWlqmvD++t4Fp0Tkjw/w3evcGEdYMyKAke9HqRxy1FWTukcXNmJGdVU2FsTXk9O4= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Apr 2017 02:02:22.4498 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY1PR06MB0831 Cc: Linux-DT , Linux-ALSA , Simon Subject: [alsa-devel] [PATCH v7 4/9][resend] of_graph: add of_graph_get_endpoint_count() X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org X-Virus-Scanned: ClamAV using ClamSMTP From: Kuninori Morimoto OF graph want to count its endpoint number, same as of_get_child_count(). This patch adds of_graph_get_endpoint_count() Signed-off-by: Kuninori Morimoto --- v6 -> v7 - no change drivers/of/base.c | 12 ++++++++++++ include/linux/of_graph.h | 6 ++++++ 2 files changed, 18 insertions(+) diff --git a/drivers/of/base.c b/drivers/of/base.c index acda15b..bc42f91 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -2529,6 +2529,18 @@ struct device_node *of_graph_get_remote_port(const struct device_node *node) } EXPORT_SYMBOL(of_graph_get_remote_port); +int of_graph_get_endpoint_count(const struct device_node *np) +{ + struct device_node *endpoint; + int num = 0; + + for_each_endpoint_of_node(np, endpoint) + num++; + + return num; +} +EXPORT_SYMBOL(of_graph_get_endpoint_count); + /** * of_graph_get_remote_node() - get remote parent device_node for given port/endpoint * @node: pointer to parent device_node containing graph port/endpoint diff --git a/include/linux/of_graph.h b/include/linux/of_graph.h index 9db632d..3e058f0 100644 --- a/include/linux/of_graph.h +++ b/include/linux/of_graph.h @@ -43,6 +43,7 @@ struct of_endpoint { #ifdef CONFIG_OF int of_graph_parse_endpoint(const struct device_node *node, struct of_endpoint *endpoint); +int of_graph_get_endpoint_count(const struct device_node *np); struct device_node *of_graph_get_port_by_id(struct device_node *node, u32 id); struct device_node *of_graph_get_next_endpoint(const struct device_node *parent, struct device_node *previous); @@ -64,6 +65,11 @@ static inline int of_graph_parse_endpoint(const struct device_node *node, return -ENOSYS; } +static inline int of_graph_get_endpoint_count(const struct device_node *np) +{ + return 0; +} + static inline struct device_node *of_graph_get_port_by_id( struct device_node *node, u32 id) {