From patchwork Wed Nov 16 02:19:50 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 9430903 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 1353560469 for ; Wed, 16 Nov 2016 05:29:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 01F1A28DEA for ; Wed, 16 Nov 2016 05:29:06 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E7CA128DF8; Wed, 16 Nov 2016 05:29:05 +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 F348328DEA for ; Wed, 16 Nov 2016 05:29:04 +0000 (UTC) Received: by alsa0.perex.cz (Postfix, from userid 1000) id 479742673FE; Wed, 16 Nov 2016 06:29:03 +0100 (CET) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id B1A672673FD; Wed, 16 Nov 2016 06:26:38 +0100 (CET) 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 695FB2669BF; Wed, 16 Nov 2016 03:20:09 +0100 (CET) Received: from relmlie2.idc.renesas.com (relmlor3.renesas.com [210.160.252.173]) by alsa0.perex.cz (Postfix) with ESMTP id A54FD26697E for ; Wed, 16 Nov 2016 03:20:01 +0100 (CET) Received: from unknown (HELO relmlir1.idc.renesas.com) ([10.200.68.151]) by relmlie2.idc.renesas.com with ESMTP; 16 Nov 2016 11:19:59 +0900 Received: from relmlac3.idc.renesas.com (relmlac3.idc.renesas.com [10.200.69.23]) by relmlir1.idc.renesas.com (Postfix) with ESMTP id 9ADD64B5DD; Wed, 16 Nov 2016 11:19:59 +0900 (JST) Received: by relmlac3.idc.renesas.com (Postfix, from userid 0) id 8CCBA18070; Wed, 16 Nov 2016 11:19:59 +0900 (JST) Received: from relmlac3.idc.renesas.com (localhost [127.0.0.1]) by relmlac3.idc.renesas.com (Postfix) with ESMTP id 850E81806F; Wed, 16 Nov 2016 11:19:59 +0900 (JST) Received: from relmlii1.idc.renesas.com [10.200.68.65] by relmlac3.idc.renesas.com with ESMTP id MAF19483; Wed, 16 Nov 2016 11:19:59 +0900 X-IronPort-AV: E=Sophos;i="5.31,497,1473087600"; d="scan'";a="225474830" Received: from mail-hk2apc01lp0210.outbound.protection.outlook.com (HELO APC01-HK2-obe.outbound.protection.outlook.com) ([65.55.88.210]) by relmlii1.idc.renesas.com with ESMTP/TLS/AES256-SHA; 16 Nov 2016 11:19:56 +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=2JKBk4BjV7q2jEW7L1obsr/u5c5Zn8RyNQ+vhQgi8fU=; b=PdtmclCeTP/Cy6rtr0iTLf/D0nbws26dC+QuHQTpMC3B92dnIRs/ecXT1PnfFqCOWa+7s0pbMXOJ8BT2nBhmRSsIQ6p4jsV9zLwaYJhWlYrg0+0mKSmzqzfcDhkF0CC4A5FdaVQHFiZm1LzVg1lwf70kkOezv4gouETsHQjwyGA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; Received: from morimoto-PC.renesas.com (211.11.155.144) by PS1PR0601MB1452.apcprd06.prod.outlook.com (10.165.210.156) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.734.8; Wed, 16 Nov 2016 02:19:50 +0000 Message-ID: <87inrow4j9.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto User-Agent: Wanderlust/2.15.9 Emacs/24.3 Mule/6.0 MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") To: Rob Herring , Mark Brown In-Reply-To: <87polww4o2.wl%kuninori.morimoto.gx@renesas.com> References: <87polww4o2.wl%kuninori.morimoto.gx@renesas.com> Date: Wed, 16 Nov 2016 02:19:50 +0000 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: OS1PR01CA0027.jpnprd01.prod.outlook.com (10.164.162.9) To PS1PR0601MB1452.apcprd06.prod.outlook.com (10.165.210.156) X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1452; 2:IRLGAJon8k/hcJBKV04STkOMKmvGjGw/mM7g/mFWr1El4SSSUTeEmLN9fqsFP5ajK8aZJuvcsiP3npofWpHGVd1R6SCIYb2Wgv1OITnLBccTiQCj7AUYWpFN9j/oY7xThGHhuGKrT92lU4LB9ITOskFbsPFNTE0qlzqNob2pbHc=; 3:DYU/zoPbyu3mEHK/9Wptyr2TQacUjtzTeBjVPKdAvMledCB5QMfkfAxrq10pwopuvNaOadWnbhYYODelkxA0ucJVJNxSrYVCCLwAnt7KgItFhixD716Q33aa9GpJGOwk68RlneMz4ERM1JyIngO8NE2FFCQvJAULQeMddotC3lE= X-MS-Office365-Filtering-Correlation-Id: 4ee9c7e4-ca65-42ec-cbdb-08d40dc70c88 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:PS1PR0601MB1452; X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1452; 25:ZAe4hf4xzpHuu8SfCbDT1K3/mtDqtnNhrmQE5q0rl04ZfNZdRUXsGvY2xlWXWZG/rykm293WoNXv7jCdWu+C0CpYXzLvoZklYtoXQI/Qsxs+Oe0WH01xSyQDGX0wi3ancEdi7AWlm1rHvP3A3+CDXvzEPK0L/8EfRsJuleOHFfTk8Fo93ywOhb7kdyZNTSppXLct+rCU+Qb9yLdyPUE/3Iqp5G62XKZbplgBJ2judaRP3crZl7whO7BWisWKQ0rkDQy7paZZLK/l6tPUStO+e/RAG7/SXYgwOlCU4vSLT4qR0EMaqJ77neyjABtk0JnPT0JH+2B8hM1n7Kx/rFAlCkfhLPQU+tChnnb77K7po4Sbs/avbsijUFIbtQD9cGpCMp36h/Xf2rue1l0kahJD1j98kSgMbRLURitwyY1Oc85lA2dcxWe+eOC6amsBLQfxKo3jOPsNIMFQ3CSjKO9gMoBXdElkQr0wATka714Ij3P4QaED30eq1tiZqfdj/BXgH4QgCnsTvDxa7aRJ9JioAq4seMjSAP7bTsTzJGnKavTZ+NZxj89PuFcJ15ynXGpgLYptCD/KkunAojRk7J5wW6vySA+ggnEVXAN/XRVC+rnzt+O4jEHUkIuyfwuJpz+LDyof9zYibVwMqgdBKLKofiJ9xncffFFpRqkYTUrj9OO8vf93ueQ2HCw68Ff43V2ZjK652AzGMja7vKZtrFvsQejtvYkNdySsrOZgse2apKaeyJknUEGhinSu+tKMjqly X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1452; 31:km6++EfV6AU7GliZS515XZHvcE1qkeZOx3uW8Fd5teyxFaC3jyalRRsBWrS9l1MnM9UQ/D8SBgy98bTzv8vjmFsDFafgdZS3v29N8/nESOMuFFeawlXksXjTSbvHoIu7XclMnZBtEXb6jqXAaV5Ei2EaqRuyy3BW0H2iyMOjxQq6jliP0bJHgkR8VgpJlmPEcJiGaMG9vjsF0ZespYOd1OY5FqkS9kxmtNvVMbneJrMq5pR8E8KyH8VKsZ4zigf2B4NJTQxOTSe5PQD2OWUAOg==; 20:5IoidJFQNlzLVoUxsifcok3KLrpoJcEW4FhuOEVLtgrtaqojpC6kLpxnzcbmNEBqnAk1JMog3OzpZquLyA39tqe7pVC3f419yzjFdb2cpb6rQGFN6JLm2XXratCVryZbEOJHnwcQsTYuOohdhssRaRLfeQXVIJBjTAamFKdUzQqp7aDhMp+gjBFQJAKQV3PatavUDEAh7ibYc5nh2ZecfxJAVq/0eE/wiz9flTQIZhvf+U35FU+zvS14VMW1QR1a9mTYOlayr7UaNmYTakN/cCSi6kTet4IiojUoN3fchXxROhUF8fVhdbMJvIgnM6x2eCscUXnqQ02ioq13g5xeHMxcCdN702fYWALoJMphEjoNqxv1vT8eXtWeVsdCst3hvWhcuS+zdcLHiVFr5Gkog60+Gy/JO9o9R/AisfxuSqrsOoqMaBhGSO+0IWD6ApyEAIdnsZw8keLkaEVWuAtJqNZ4Eunxs3B1ccb2fgXwbntaOdPeM2N+/a5hiI3RfyJI X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6060326)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6061324)(6072148); SRVR:PS1PR0601MB1452; BCL:0; PCL:0; RULEID:; SRVR:PS1PR0601MB1452; X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1452; 4:Xig8EO27Tkliyco8FfwvvRCFhxMQG7//k6n8QauHOeXFmEUO18/q39Lp4kt8g4VVehnVUXIRErhutmf0jShAxarcLTvzlAGZKQD6S0WLyfD2IJj8mcZHYEwPtkraK1WCnDQ0pzWVgwVy7MkRPPxiXXzjYguKPghWwM5kMl6pQjZwbpqQ31tBIooUCbo8zryFWam0+GD7EufBhrUVLjJxksghh7ucUlrpKYUsd3YZLOdxSDd2ACfvRhLAGsJgQcvgHGlIhnnbHbJRbNPi/kC3vJ+hvFLDlTZy+cR2kMzuyMB5gktn6qCUCftBSSusskjdN5MOehb9LYWdT0gbf8k9BjUMTXlCPJOMxrsKHn41h0Iizc+rtGtsjRqEOlRVeE2uGx2aU7DnEsg6QOKIGbZimKOqbNvmttFr7PdF1/vZWgykA+7rsTQNzkm4K6IQrFWPbQHYJWQFd0D/8gX2rtjKAg== X-Forefront-PRVS: 01283822F8 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(7916002)(189002)(199003)(66066001)(47776003)(5660300001)(81156014)(81166006)(46406003)(68736007)(8676002)(53416004)(33646002)(2950100002)(83506001)(50466002)(92566002)(23726003)(77096005)(7416002)(2906002)(3846002)(6116002)(4326007)(69596002)(101416001)(54356999)(575784001)(105586002)(86362001)(50986999)(76176999)(106356001)(305945005)(8666005)(7736002)(7846002)(189998001)(5001770100001)(97736004)(4001350100001)(36756003)(42186005)(7059030)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:PS1PR0601MB1452; H:morimoto-PC.renesas.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; PS1PR0601MB1452; 23:7yf+uwrSNFPyhDitLK3Zg+UNIV2zJoEoUyKAtpL?= =?us-ascii?Q?u2ojw7JLEn/5vS6hvGI4g7xO0jxhCMsbvh6rQ/KA2hMNJcLhkguT+7HxAEm1?= =?us-ascii?Q?QG5WdsUqtTG2qRnbIfZYr6bfR6qJemFXTEnnDD0xkmE25QWi1oMbyi4tbbIC?= =?us-ascii?Q?ZQQEa7adQqWCmoaJcAD9xMe8lIcDqKlR7gCqmUUHWmv56zICRnSpUSd2VBF+?= =?us-ascii?Q?deZ4ff2l3K1Ivan3gi2rlb3aOL2tKKq32s3xI05qvoLvhg9YW2eTwAv44ET4?= =?us-ascii?Q?zpuzx/V1xtYPfMiuNVvG0/WS5qAaexQNfeL+0fCWr99SrqjG8tLsqe0pkvSr?= =?us-ascii?Q?/AXTv/XAGED4zT+fEF7/oTgdzwu9YljDk+uAwZFP/1pCB+B01wyxLOOn3tLj?= =?us-ascii?Q?5HLTba1ILBKI/sbYQNOet2OHgmxR82xnCjpybl43HEZCT9UCggVsvIk8Fyuk?= =?us-ascii?Q?NFaaqvUGcxqwvLgfCe20DyNPF9/lETDpqRmxcs2xbR1GSoB7oMMS4LDk/Vxi?= =?us-ascii?Q?2UkdK4LHmm014o0crDLafazu33Na7Z+EY4IbN61nUQaVynbj1IQvWjWrattB?= =?us-ascii?Q?YYrm7Wkf7Z1URw28kGppPv/WwZnWvCdI5KPZrIj/TBhKUi8L88NUgr6JIopW?= =?us-ascii?Q?lfTxa7qwtXL/VKQbq2eYrnJRwlX0LMo0F+aVCy04z0eM6speH1nDsuuqUrNG?= =?us-ascii?Q?2AvoxjNstvH44+FJ3pW9mVMrqtMUCtngzAhjd5TqxwqPeJZBHbsvEgxyhhmM?= =?us-ascii?Q?dcCjynP5ElsC/IE0Yoqg9FPXO0ny92wrj8b6JFQdzcMuEJDxIY40+nTT2rzK?= =?us-ascii?Q?fyPq3p0J0AkBRtRmX92BtJcONPlNHnZKdSclL9EvgXNuIF3Lwp2jbdUbX5ML?= =?us-ascii?Q?Rp0MrFPujD5Tr/zUlY+Zn0/2hpm1zhQiGxgKwdt/AMd7aYOTJphQz53gf/xG?= =?us-ascii?Q?U9tGrDmZJ0pM4i8QQeOTWTue/3dib63vcL1QFl0ZwQ0sXfp/8GCVd+evE/Bi?= =?us-ascii?Q?MWY+qfk/2iDxNm3K5THyjQ59uwS+swMVW7DSc2IKrhL8ZqXYruOs2VUY+L6v?= =?us-ascii?Q?5BOH6zsKmkBsiGZwpsNAJQIJfBu3FqYcLU8P5xb0jGixQHUxDdjLNoVRmN1e?= =?us-ascii?Q?n6JvH1xfVdl8rUlx5lWdujAx9LL8c1QwH3dTuBOsZEjsapsyYxAZ1s0BZ+tZ?= =?us-ascii?Q?HJrFVmhUtbwlbvZU=3D?= X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1452; 6:3/pJm9brO21KLhjaXja9RV0j8XbGn0mVJHpVz+w1dauVpSj2YNaUO9YDfU3yR490BxCGR+Qhj2zTxGG4Gko/hMSkgjuLwWfi+TpDQzhF66s7bd5MkHM6V1L7Q6u2zPnyd1DRdGStUdX04iyS6hzb5dpMUgJsMYb87g5esZj/Scol2dfufjptaqmA11FEtPGhU6J7OogUFSiGoOkgLE/4YcAKljd5PThWG48QuxGWqCeD7e4+9AkRWRMzShInirb9YVVr4ehBV4CEIsS1wfMFVncXDoP0t/SCGFvDV4o6/tHUS1JbKQOSPsDxoqi1ArowmNr49FLzEbnHpjF46DAHhRdsc9J5iQ3C0R73TkfAnncpwLYOcdf2IBpv5u81g2KZ; 5:ZR4lpnwvwPHB+79IWsWQxII5opebfDv2RrEwVVcT4JbsUrRSJ66LFVdxEDcC03KAQ9w8Cx+QMtnIxByoOfDJYq4da0lzZYIu/+COQeijV7T2yC0BzmxlAGRvrZQe/zUOQ5YyS/uy2iSJVW1aMrp0Iw==; 24:as3iD+Y7kSNV+iCh/9H+ZoUydG3LBCkk5N0h/EyFOtbu1G6s9k032F2zksN+pGocgkkTUtku/zWzYHzjSwyxtVYyFEASMyIdGvtdkQ4XXTw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1452; 7:qi9IGGYLRWmoZzF4amI5SdlmTvXjXoDl4UjjeoSWpaCjXwPCyQsWF2Vtw0Mh7vCmTZk1cHUi9FxAYG9AXLtygNjcNHdRvLwk5q55Lvzt6OOoZgiNKYB14zYo7ux7Z2SGLl65xOlF1Rh/HOY/6kfBIG/EmJ+OVfb6DoyVrtimn6GtI+2oS3KCTg+ctdnIxjdMyEw93JCRDh0O+BGc6WYGWCb8SWXc6bH2tiVpiGhgEmoq5yIO8s4IrkEs84vtu/Hmo9JnlThtZ8TU4iy0yJEldkMD1gERuMt2e1QF38cwnjp+1+FOe/qmltGklGVBkQL5GFEW19L6hj7qfUvk25aIeb6vnGJt7sfVycg42Cz8ot4=; 20:qIHqvjLmReZe8UeoX8dg6LcSIapofRW5mPZV8uTiVupfLK1htw7r5aAos0SYODXwG0nRBA0MCNh2ilx7vvkWn3DsuW4ozzNUBUtkbEEcPndPPA/IxhvSN8XMePeqLWU/EoDPhavLcOIiJDYyc5yAbm6sRL+omaR6tPP3ChUDMGU= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2016 02:19:50.1004 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: PS1PR0601MB1452 Cc: Linux-DT , Linux-ALSA , Liam Girdwood , Linux-Kernel , Simon , Laurent , Grant Likely , Frank Rowand , Guennadi Subject: [alsa-devel] [PATCH v4 05/12] of_graph: add of_graph_get_port/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 port/endpoint number, same as of_get_child_count(). This patch adds these functions. Signed-off-by: Kuninori Morimoto --- v3 -> v4 - no change drivers/of/base.c | 24 ++++++++++++++++++++++++ include/linux/of_graph.h | 8 ++++++++ 2 files changed, 32 insertions(+) diff --git a/drivers/of/base.c b/drivers/of/base.c index b11f533..e795d0f 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -2584,3 +2584,27 @@ struct device_node *of_graph_get_remote_port(const struct device_node *node) return of_get_next_parent(np); } EXPORT_SYMBOL(of_graph_get_remote_port); + +int of_graph_get_port_count(const struct device_node *np) +{ + struct device_node *port; + int num = 0; + + for_each_of_port(np, port) + num++; + + return num; +} +EXPORT_SYMBOL(of_graph_get_port_count); + +int of_graph_get_endpoint_count(const struct device_node *np) +{ + struct device_node *port, *endpoint; + int num = 0; + + for_each_of_endpoint(np, port, endpoint) + num++; + + return num; +} +EXPORT_SYMBOL(of_graph_get_endpoint_count); diff --git a/include/linux/of_graph.h b/include/linux/of_graph.h index 8207631..9089459 100644 --- a/include/linux/of_graph.h +++ b/include/linux/of_graph.h @@ -54,6 +54,8 @@ struct of_endpoint { #ifdef CONFIG_OF int of_graph_parse_endpoint(const struct device_node *node, struct of_endpoint *endpoint); +int of_graph_get_port_count(const struct device_node *np); +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_top_port(struct device *dev); struct device_node *of_graph_get_next_port(const struct device_node *parent, @@ -79,6 +81,12 @@ 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, + char *type) +{ + return 0; +} + static inline struct device_node *of_graph_get_port_by_id( struct device_node *node, u32 id) {