From patchwork Tue Mar 21 05:22:09 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 9636009 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 98B1F602CC for ; Tue, 21 Mar 2017 05:22:42 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 89E5926E1A for ; Tue, 21 Mar 2017 05:22:42 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7E6F7279E0; Tue, 21 Mar 2017 05:22:42 +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 9E85527B81 for ; Tue, 21 Mar 2017 05:22:41 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 851E2267022; Tue, 21 Mar 2017 06:22:40 +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 50E7D267022; Tue, 21 Mar 2017 06:22:39 +0100 (CET) Received: from relmlie4.idc.renesas.com (relmlor1.renesas.com [210.160.252.171]) by alsa0.perex.cz (Postfix) with ESMTP id AE328267046 for ; Tue, 21 Mar 2017 06:22:14 +0100 (CET) Received: from unknown (HELO relmlir2.idc.renesas.com) ([10.200.68.152]) by relmlie4.idc.renesas.com with ESMTP; 21 Mar 2017 14:22:13 +0900 Received: from relmlac1.idc.renesas.com (relmlac1.idc.renesas.com [10.200.69.21]) by relmlir2.idc.renesas.com (Postfix) with ESMTP id D0D486098A; Tue, 21 Mar 2017 14:22:12 +0900 (JST) Received: by relmlac1.idc.renesas.com (Postfix, from userid 0) id AE2A580088; Tue, 21 Mar 2017 14:22:12 +0900 (JST) Received: from relmlac1.idc.renesas.com (localhost [127.0.0.1]) by relmlac1.idc.renesas.com (Postfix) with ESMTP id AD77580086; Tue, 21 Mar 2017 14:22:12 +0900 (JST) Received: from relmlii1.idc.renesas.com [10.200.68.65] by relmlac1.idc.renesas.com with ESMTP id QAE09414; Tue, 21 Mar 2017 14:22:12 +0900 X-IronPort-AV: E=Sophos;i="5.36,198,1486393200"; d="scan'208";a="237247721" Received: from mail-pu1apc01lp0015.outbound.protection.outlook.com (HELO APC01-PU1-obe.outbound.protection.outlook.com) ([65.55.88.15]) by relmlii1.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 21 Mar 2017 14:22:10 +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=2PzEebAw/EGAcFIgCIrA1imSbAVf28g+bqXclablENk=; b=H6OiyofxKZaBHeHcLiy8EOpk5ZE8zaWbiSgFMsG4V7Ut1mknKeKFx4wPoLQVGWAFu9Gnjhn2LgJjZ1G/ksvy4eVr3deAVIK69CkuE94nH54bheBqzxnxzAd8pY+t4oIDnRGMLed3hmTRlE4yBbpQscHe6zQi8Ay50PvrgiFw/3U= 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 HK2PR06MB0819.apcprd06.prod.outlook.com (10.162.240.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.977.11; Tue, 21 Mar 2017 05:22:09 +0000 Message-ID: <87y3vz8ay1.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: Mark Brown , Rob Herring In-Reply-To: <8737e79pkq.wl%kuninori.morimoto.gx@renesas.com> References: <8737e79pkq.wl%kuninori.morimoto.gx@renesas.com> Date: Tue, 21 Mar 2017 05:22:09 +0000 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: KAWPR01CA0079.jpnprd01.prod.outlook.com (10.174.230.15) To HK2PR06MB0819.apcprd06.prod.outlook.com (10.162.240.149) X-MS-Office365-Filtering-Correlation-Id: 582b1011-d886-42bc-9f1d-08d4701a3941 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081); SRVR:HK2PR06MB0819; X-Microsoft-Exchange-Diagnostics: 1; HK2PR06MB0819; 3:OM2ta0bnRZfONLuIKTXG8eEZWIaG0+5K8tEhZzLTR4AO9/2MXl98gaG61mcvEt956oHNUR/Dujf5pzrwCnxR5MxFyXqNNFvoE+mC7UdimhOUgTEoxT38ZR2fZ9jzjA309k5VDFa6DdOO1Y9uVvOO4uqCpya9LWQUuRqTCom9rZv17zb0UvqVeeDVA6cChzkFnrVnREDz3HgU/9fie2qLzC6Th0Mc2FBHquppIqZjAO6lOwgRoPuKYuYl86+a/uXx92B7eZAVoW3OGLbXgtL5ObmSAPLDKsgLAjg5R+f7n28=; 25:Mk+OHnDZBix/LUuxLXFQJeRIafhy+pWESeAuyZ+Rozu480ApFD2C9jCYrBZdCuFzX8GtclS+Y3hzC4XbiyZkRWwCcqzH8vWKcsnPcWPADQqJVdmLISmpXNplBFsHqAEJWdqnweSs39sFlBL5HYGAVywDvuREDKS2WJHTxH5qw4D5UrIGwAC9t+eLTR4e976Apfn8/cfnhWAiZrBUFMO4bRxzxu+DtqZ7e8LFgbCKca8XWTQgiRhNlMtM/JdFbj1JhyiO9h90OyOntAs5HcOX8H5jcXg7onUxxO4MN1ZKiTzsqJut7XPA0zMgNkTgD5gvU8UQz/SfElboytiyXNWpT06YdWP3K4oI036FFcpUE/lBh/64/n3IqvqvekCcFV+pANhWLnEtS9gSDqZf2CswIE70ZcXtvdRJy7pQNDlEZMXdNFMlkZAYpsz21/X01YHrp2wqdlSTvGvh1L7gz8JHlQ== X-Microsoft-Exchange-Diagnostics: 1; HK2PR06MB0819; 31:1Dzb6Y+qGnYhV9Hvr2nZczig/wGzoOIhARtQZgj6caaJGwMa6c5NikQ1zvmmcyrfaHb177RIeU07V1r2Rh/MiZpn4L2Itl7LQuyoCu1F3w4U5QTfmjrz3WUp+n2PLsYBGkcWSdYPpRHjh3PFewlW0K63qENGAcFy3a9aVpCwdfXidX/H1ECEETEtOy9v8IFXPsWsY80DhU3Srr246wEvB0UtVZswAS0MyFMccoFuRLv3ObQx6fixLx0nDNxP8ECx; 20:LRCjXQ3msYgjNjiBqad2oZ5stknsqX+aNh9sHtqkkZDRcNHVlfU2K4XjFXrc9hOKK0CWffD4lqInzp2eolEuoxFQDdzyVWnnDediLjKThHwplJFwSRJ6Do16Bm/LvZnQ8uFOc+Hdspx25Kt66TkDYo7Brugh4q/RpgCfJwljSXVmoVCmSY2K+ZUSRQdQn1l2tIJdWVPdio9N+1P1bhzPUOpdxpjenZQqFTEvSq6frzyFZ8Z11O6VLvRmGvIrXv0eqCn+xHnmKySqUYTYbu+lFh9RbfMI8iOJUWV9dSw9Zy4G1DUstSPHS7XTLRYKsNxlT5cyyA1NkdqNZ0g5kSuzGLx9Q0EEYbkCTn7AA1RwASvVWYjwUUk78Z3O7uvTiWlVeIWx4e8fT8Hgy/yyozh2BNl0zSBNTczTA/sVQC3jiZtNvdyD0RqEX+87dxzVvGRWes6clJe7K0VIzlJ4gQVm6zn10SOevGkuiYUh2CQdtClIX6aI541qccGWOxjTIjoR X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026)(6041248)(20161123564025)(20161123560025)(20161123562025)(20161123558025)(20161123555025)(6072148); SRVR:HK2PR06MB0819; BCL:0; PCL:0; RULEID:; SRVR:HK2PR06MB0819; X-Microsoft-Exchange-Diagnostics: 1; HK2PR06MB0819; 4:b5M6r7SCaWGqO3Iw42dFnl9uiOKIcrsNsM6mrZ3ze32cXEV84urbaqyGVQKKR6CVL/zrzBqzJkdVFmq5tce+eiqhqEin56dTRaP8MQ5Y8CPLakfcYupaAS84a9ESl4rUY9l+WWAfW0ALnc2QPoVXpKmbwf08xdC2zxww9ddpeui7tT8PmK5WoZWGsVaS0AZumaptk2S2DLPvnH6C4yNugAhzf2P8JSmt2Cv0zmgaNuf/Y5z9jV9OIkG7NHyeKfm89UDMzo9Y89m5PiveqXAiwSqpzF+FAGR7AfCsorSTevSsbKXxIoM8QytkiBnAcFPZz3Yc0I5d4osJB8r6gGROx5oZbd3d2WD7bXHpN3Xx5Stu7JV65CsAWHB6A18Cw2a4ZufTq1R+kquDxVzkvzKTu3+3l2bo9zLXFXU6fikr/257XQVzn6StSem2sFAsAXVzi0tB9n2Lm1CPxjbqmr/8AS6EvAwkHi2zFGd0zPZjy13e72BkBj5qIrSXFo/G8KTnvjuR2lsJDP/saVVi6xBg+Eyk5IPrHiLvHS8/XcHTC8fiBIWgLKeVd/PcPsfFXwdv5qUvlqtrUdwZdnCSsUzuYlNfJve+N4fvOEI++jL1S338FZvMb35HN6GPxDlVuvSz X-Forefront-PRVS: 02530BD3AA X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(39410400002)(39450400003)(39860400002)(39840400002)(39850400002)(6116002)(23726003)(54356999)(33646002)(66066001)(47776003)(50986999)(2950100002)(76176999)(38730400002)(7736002)(4326008)(86362001)(3846002)(4001350100001)(8676002)(81166006)(53416004)(42186005)(53936002)(54906002)(305945005)(5660300001)(189998001)(36756003)(25786008)(83506001)(46406003)(6486002)(50466002)(2906002)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:HK2PR06MB0819; H:morimoto-PC.renesas.com; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HK2PR06MB0819; 23:7RWS4anpgCIjxc3MbMaD8KLmUOWWlrbSGZEA3xIxh?= =?us-ascii?Q?qFHvJQ1q2wPkI0X8+5E2PfIAFhkZ1geIOCuOwNk8GucpvuT8nmUPJxiwuJzv?= =?us-ascii?Q?QYXDuVQEMbODatBS/AY57wMy16M0x4yZv0Cv8kbfghVynAC4VtO/8/xDtV85?= =?us-ascii?Q?XNcImo5NT+YU0auFZlEoGm2H6h/jHpD9378l2OscZ8kTzIKu69n7rKkeVKpz?= =?us-ascii?Q?gOdd3CLtABodlgnJEept9/9N6+8VHXf/Bpm+ffDUsu68e0L7vb5od6JTlTQl?= =?us-ascii?Q?bVOZ2Xk7c2Ng/bID9Vm0QwKQiSikj+nokjXSfuogZoealjKl2ScyOK9GZYzx?= =?us-ascii?Q?2lRRy1Heyb7SGd0pcHZyUizxKhADg4CUvRblyBCDMxy2RqlZGXRrsAkYu5jW?= =?us-ascii?Q?gzuz8NwVJQ9hDqVmojTm6QsqksLIUhCqRxh3qeUVy4sSS551+vzR+6YQA+fu?= =?us-ascii?Q?qXji4EOpxxgKXVHOLEUNv4b54KswK+1JYSl1QX1VSkNlTKptNVVOMpn0UpUY?= =?us-ascii?Q?hpcBFZ0e/eWfS+RGH7OCq37Kce8uARhfpixoMWjx1Y4gSB+YqYYPIEGcHQof?= =?us-ascii?Q?0xd+tMS1lpumE3/eMQtPrPeirVGQIjP7pec2robIe5B2Fj/ztfvuWmhWaSQS?= =?us-ascii?Q?EsXm9k7zuUmrvt46LeFgGshlKZ77Rzegoh8zzadZFjfrx3Iy7vTc7lSLgQX0?= =?us-ascii?Q?e6mOlZ9PZ+w0v7eWcilphLyG3TXhB+KqyE+VMB9mqLj3DQCWuqxH24gxoRtC?= =?us-ascii?Q?GCuS21qYXr3o4d8vvAQ8CiIEfdVdfNrEs9mhtVOSxhMGjeVHiHOnuYR93JPr?= =?us-ascii?Q?A6ZiOgP+uh9nu+EC6pSHuuLWo5sRW7V3NImTasOP89A6f/2TrI9r593qO3L8?= =?us-ascii?Q?BfUXt2/eOw3W5nAvmXTYaFpnWniwCZbkOUX2TmaMSrl9XzGxZLPs7A4IeeYo?= =?us-ascii?Q?UJYCjZKQu7i0ap+v63YTM0PgJplLJs9lwcpc0aoNcBxcxVYLiCx3L2EmlOvz?= =?us-ascii?Q?6K2roVsO4AB/8Mw/0D6awyE?= X-Microsoft-Exchange-Diagnostics: 1; HK2PR06MB0819; 6:4CqdTwen1AtVmgdhphOBmJwvlw9w5mPvrdIRqUxQbKttpb9wshjODqxUeCqfpME75MSFO0BSdKoIAtIoGmBzMX/0edRFiMkyJeWnqPmJYmBsyu8a3sutRjuLUhQq+y/UwKL5qBMYVPy9OiOTMlot7FKqwmq8H5Y23bJ5AIAQPQolApiL333AktCKFCqxqVriJn6184q2q4Zo/inAzBwm6j/mF2RVTEq2s+UvM6XWyv4NFMEDlhSDn2bWiwP85GtV8PUJcDqvf3r+YEt+vBsnU1UfkSbZXNgTsQ/0Nmm/6jd+aGl9V+zbYhxcYHVLVAiStvh73hXMQnxy35M2DI4J9AGHyiwai6f4fVjDjsxi70V5hgIyJXx+PaDZq5dUYMd0tBhWby8H7bJc5z1baKwNNQ==; 5:PIS/x6stu1KaWI4RDEV6VRE3FVcCl39Ne7xWTPbVZcI7f+COH2wXPEYjjRbKfCQVym0VT0szq9P5RszQ8kn3oX/Cevru3uzGvjV8th+gBNfJSb+ExUm+HHembirGSyB2ZaAf12ihB7OhS48p4Pu+0w==; 24:VDSWOlV7ZXOyZkcN85mSnjONqpYPegOKbsJELn9rwHBTUBYLVObBxvGlWlzip9+vxoEXWsrQwdHJPehIocWjs5Jxn/pE6MjHpLSvYDFGiQQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HK2PR06MB0819; 7:OhqB6LuGR896ynzYS/j1vGiqi3eWCBB5opNnmkTPePyg3pZ5XhtmQrPyDY0woKQkVvkTJtyrzxEWfYTAtV43oPz+wlQ2sKvHKkqEjyMT14MhvkLfVGB6I3I04nLXeaCBsqfiTOzEC3YkOFiUaGairguN7Cr33coad/4r3REk0jBqo6LG1dD7uRdZIjtaUCCXu0tNehW/XSqPhvF+2AhjVTzAOpWlY0b6f/8OSH0P0TcsUL9ZFl1mizChsNmoUcFrese/AweqaSUvzZj7HdgfUNNMVS8FO3WHXimf8v32dX7kGrMeZfjcT/2BxsrDqFinvEZWzGV0bIfmSGsEGBQ8Uw==; 20:5eyirrrcDkQNS2AFVPiBGdQINM8IPbn4rBr/DfoESTO3Bb/vWsxK75S5+OOn1SmTil57pJt3lxvYR6GrZR56/2bIJt8xSvV/vFbVOG+0j5SDsguZUumJ9onjKJ2MRj0kF2Z/Vqm3m8Tkegn24LIiWUuI1Oix6GQqgd0O5VqGGm8= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2017 05:22:09.3771 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HK2PR06MB0819 Cc: Linux-DT , Linux-ALSA , Simon Subject: [alsa-devel] [PATCH v5 3/9] 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 --- v4 -> v5 - 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 eac37014..812edb9 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -2527,6 +2527,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) {