From patchwork Fri Nov 11 01:20:43 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 9422775 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 AD478601C0 for ; Fri, 11 Nov 2016 11:51:24 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9E7D829A7D for ; Fri, 11 Nov 2016 11:51:24 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9340029A7F; Fri, 11 Nov 2016 11:51:24 +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 3B6B929A7D for ; Fri, 11 Nov 2016 11:51:22 +0000 (UTC) Received: by alsa0.perex.cz (Postfix, from userid 1000) id 7B742266569; Fri, 11 Nov 2016 12:51:21 +0100 (CET) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 6B84926647B; Fri, 11 Nov 2016 12:48:59 +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 55CE72669AF; Fri, 11 Nov 2016 02:20:55 +0100 (CET) Received: from relmlie4.idc.renesas.com (relmlor1.renesas.com [210.160.252.171]) by alsa0.perex.cz (Postfix) with ESMTP id 22090266971 for ; Fri, 11 Nov 2016 02:20:48 +0100 (CET) Received: from unknown (HELO relmlir2.idc.renesas.com) ([10.200.68.152]) by relmlie4.idc.renesas.com with ESMTP; 11 Nov 2016 10:20:47 +0900 Received: from relmlac3.idc.renesas.com (relmlac3.idc.renesas.com [10.200.69.23]) by relmlir2.idc.renesas.com (Postfix) with ESMTP id 855FE48659; Fri, 11 Nov 2016 10:20:47 +0900 (JST) Received: by relmlac3.idc.renesas.com (Postfix, from userid 0) id 7EDE118070; Fri, 11 Nov 2016 10:20:47 +0900 (JST) Received: from relmlac3.idc.renesas.com (localhost [127.0.0.1]) by relmlac3.idc.renesas.com (Postfix) with ESMTP id 772071806F; Fri, 11 Nov 2016 10:20:47 +0900 (JST) Received: from relmlii2.idc.renesas.com [10.200.68.66] by relmlac3.idc.renesas.com with ESMTP id LAQ30785; Fri, 11 Nov 2016 10:20:47 +0900 X-IronPort-AV: E=Sophos;i="5.31,620,1473087600"; d="scan'";a="225661701" Received: from mail-hk2apc01lp0207.outbound.protection.outlook.com (HELO APC01-HK2-obe.outbound.protection.outlook.com) ([65.55.88.207]) by relmlii2.idc.renesas.com with ESMTP/TLS/AES256-SHA; 11 Nov 2016 10:20:46 +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=SX6my7pE1IdCe7WXLo9qElQxP1j1DyXFk4R1xBfj8VM=; b=b+YI11UnhgOuJ+nocDH757xI1rAEFkQQpzE3JdEc57JV3obzpBE/HGWhUxozoxemwhNwADUfzEYrGfnJB9kZFPMX7Net6aKeObhAmV53LrUFjB7j3OjNbYWGWk/81tytO0wmF1aaTIMCy2G7yKU/8tD2KJWnhclNhLjnpxwVzgw= 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 SG2PR0601MB1454.apcprd06.prod.outlook.com (10.169.106.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.707.6; Fri, 11 Nov 2016 01:20:43 +0000 Message-ID: <87k2carex8.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto User-Agent: Wanderlust/2.15.9 Emacs/24.3 Mule/6.0 To: Rob Herring , Mark Brown In-Reply-To: <87vavurf4y.wl%kuninori.morimoto.gx@renesas.com> References: <87vavurf4y.wl%kuninori.morimoto.gx@renesas.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Date: Fri, 11 Nov 2016 01:20:43 +0000 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: TYXPR01CA0032.jpnprd01.prod.outlook.com (10.168.40.42) To SG2PR0601MB1454.apcprd06.prod.outlook.com (10.169.106.20) X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1454; 2:xKZOMHFOtH9f3ppmUt1f3RsJhiueRu7GPegbGF16NYCBMWo6ItfBFXgcvh0EGGZBGxVskdtbesxu4WhbXSwSPF77iIlDlA7CY8zT3QJzqfi/sbpi0iZczhJxL+Ux+ZK9Q2FYLj7wbAl56oCXiQyuRAHFIqE9Qe7OFdwGPNnZD3w=; 3:/Rgz2hPfBM+UvLcTLJa22wA1Bze7+YTZBd1iHQCsLDtBAD2YenjsKiA6/udyuLuBcI8h1wCs0juX6XpRQd6oUzXMu3FcL+kxG5nGf4Pgo6iiS8IY0yDRsxjyN8mLKAKCa23reeaeNOqVXlaCMeoxs+2h6DXaS2BMSsid+/vwv2s=; 25:jjqrxquzkZ4GtB0dLiIwdd+YRbs9U28TZy3DnRDp4YpSj9FAN9I2ueDLsgp4cqW/nZEP1cD2sdah71NVeDI428wJ4WpXO6og25Y8dmgjQYedMZnBPY2GoYS6s5SetJEwZnUUEv4lAriPOzJz4XGf26oebR/P3kiQOtFegl+xqHbs9XpGIOzYJjwrYzlcxLR3jtSCxT13tf79Pikdk19kSMasO6AAjmDc1VPiJdWTOkJOfWFkeEaZYhJ56w/jD4h7bS6pMIpNwPmnvZUBacEVtHD3NkgcH92p1zKgyT2AwqOOxAgDiVsEsgDaDpRANYQ92kdwGYHbgH0GSrGEMEZ/psjhmsCwo5Nep9MASx2VtLrRBScF5IycEKgjRm0XVnSEySBcgX7QOFm9LiBjPVnNLdrlsjAxWl1YrMIwRO0VJuLrWpf7xjiY12Thpus2O/2C X-MS-Office365-Filtering-Correlation-Id: 85a841b6-d4dc-444d-96b3-08d409d0f5b3 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:SG2PR0601MB1454; X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1454; 31:U8F+bCs1A8sPJ9Y1xPI4xRfx15FTMe8SllAjdCaxHW4em9G2lsAM+0BMgqEoZupwKhhxSvSoVNQ9M0TCZTFLV92lHbzWfpQGGNLNgv3ndB+jF+ofLTlxhmZTxjE4Dx8UTHYRsHCAynQQm6nBrgUdfdj7Q51WEtw+xHkbD+bRVSxRc5Fvm+OwdeZvSN1nOjrZw1BQWdow1NGmyHWpN6Y0+EatXEizDBjhL9p0bos4RgjGo6k1orT0KRmivqgL5IuexUtyP0vsc1wew9vABTBJEw==; 20:4B/zmwwHWZuvosWKRYs9ADCgkK+qqD9KhW8yRloCs1ALylOPl/qf9Vz3mAjMVAJXgOGCzUK/H/VDsVKrIE0jGXOFVZYN+oK0+hHavIElo+jB9AjcIBYWf+2ejreM7lhThhJ6S4jR/P1dgXmREbhEaES0dhsRqBbHta14t56ShMDei+gH4iegBrP4ew+05So8oTRK4CGPNKhJk03RMd/+7t86q+Sw6xI7y4SPHmh8xVb/lw4CgQTagk9tjipkq8fuq3W5xi+N7r5HbCK2Pe4xARrA1/VQ4LogI1jCt2h9b69bVYoL1WN/q9T1kPV0IWcBd3GEcZItaZfcvm46DKKvoPHLM6eonBO1zBRhUXX0Ad+SlDKY5IWFi9Ii1Kib3jBmW78mCmUSwojnrsssowN1SZ+Ocy2pxyVqUXnWWQsrrGRdY1B8igcsBJdx3sDUH7+uI+m+pfr0oggrz5QHXsUDtroGbmouA+5KEo5T7dkq/2wgGtaQI6/inMJVmCgqvmgO X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026); SRVR:SG2PR0601MB1454; BCL:0; PCL:0; RULEID:; SRVR:SG2PR0601MB1454; X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1454; 4:xqAXX/f8lPehH+/GiLD5Y9qxo3ScRzHwU60H8QMGcaR34pU82nEe6zoKYlRUEFiFce07i3e2S2aI6HruST3EKWhOUH34YzN9wzz+k2XR+SkLCkJejPIf/bhlK9h5nrXUrIbgr5Rwa6aRz7lQbBdnvA1xLqIlEHnZ33EmcLJTgXjK6XdJ2WQhz44crIEZLgMomJ/aWwvjobWOn4UvsPyTMNPQvHtapFTZdc/6FONr4Q0IBLTDdMKaQ9aHywWv/GfF9CjOPj7dVMg/0g/pChLjknnh9+kc9xUKOnDgaEjT/Six+9Hj0X2AUecrbu5SV717csPDe+guKWIWzPyhIzx75V+SZqSXJVTpWkRyg48Km3JNcUq83QnVXYIyLZw+jRxOFZfK/za8gRfkhCGPbX13h1lijewKHDqqR3Rvbg/ZgUw= X-Forefront-PRVS: 012349AD1C X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(7916002)(189002)(199003)(586003)(86362001)(53416004)(23726003)(42186005)(66066001)(4326007)(575784001)(36756003)(2906002)(77096005)(7416002)(92566002)(46406003)(50466002)(81156014)(7846002)(8666005)(81166006)(7736002)(8676002)(305945005)(6116002)(3846002)(2950100002)(47776003)(105586002)(106356001)(5001770100001)(4001350100001)(189998001)(5660300001)(69596002)(33646002)(50986999)(76176999)(54356999)(68736007)(83506001)(101416001)(97736004)(7059030)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:SG2PR0601MB1454; H:morimoto-PC.renesas.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: renesas.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SG2PR0601MB1454; 23:YjnxTAV8ly+w2bZgXXx7C8WgDz9FQyqVW4ogofS?= =?us-ascii?Q?Vdf6X9LKWY4NGyueMrduhkLveo1Ui/+lQ9ERU8te4SM4lzfg20KAo7k8u6IM?= =?us-ascii?Q?KnhwxwteS8DuoLObxojoSNuuwMbHzfnv3QCM4xS3GYQdAb+Oep3SqCcpfdO2?= =?us-ascii?Q?jg8aMakVBEf4hjV+5WYnIb0Eslvs2tJn4f+DtWYNXBvc/M6ogwpTla3lqUiv?= =?us-ascii?Q?cHn+y9F/sCKhWiyuDWKfwoQm6wy/0jQ7KrWZ8pmynWWAgYR05quCD2JJJhFs?= =?us-ascii?Q?lIbteLddNkK+oDWT7i4A3heGh1jgEg28qCmf5WTXmkNimgYJ9IIrbYmn+C0b?= =?us-ascii?Q?G5w364DYn8gE2M8hXj2mueeXWj6iIWlNvdflOh557H9YYfvnutcSl7XrHfDb?= =?us-ascii?Q?wdALMI3kaAvNoAxO/rqac9HQ+ReMvufq/v6egSSKxagCw4WNwEy39+DmgE3J?= =?us-ascii?Q?E3OVBJaIx5x5c3RtruhrhnoDRPQKL6xZEaVhSSU5JneOq/VEkqG0pfmUNzrG?= =?us-ascii?Q?0AnqZilyymVHTZ7u6THekKnFqXh8tVuQ0JEUsD+gutzauZmcN3Rz0UbhlwGM?= =?us-ascii?Q?EZBRyK9zU+qej66MY3sgzh8RpnpeX1AYUzi2N76uztU7h9KTgU4P8rTwTdlW?= =?us-ascii?Q?JZUQqOVqMiRzT4olYqTSF0pmuT7YdBuzHUkDhzfOrsJ0lS2pjk/2lubo18yt?= =?us-ascii?Q?3rRDef5ZacKfz/kScwS+N4ArQYw0vey45BXDxEzcHcHbFvLr4nNQeiwkSbTF?= =?us-ascii?Q?CiE3xXGcCMsZd2qJDJkPR3VAzcniqVbplupr8bqhqa1NoNg8g43WtIIb9/63?= =?us-ascii?Q?gEhFZvueaXshtJdLPq8Q3v3HpXQmPi8b2E7Xnc5YzwADjF9JH59FXjCzVg8Z?= =?us-ascii?Q?YLOWXBAmtEnsdpMvWYUGK7IqfSYFhSA6XpjXDa72ETPuXTHsbInoWvvXMIfW?= =?us-ascii?Q?VDDu6LVhXX4xnReacTc/cTA/Br5loKtvu4t0m5rBo2u67Z42xkLECezJbh+2?= =?us-ascii?Q?KHbmxQMRjBerrZPiKW9WjIlfEQ/WmNnfNXVumNpcKzyGuKt6vQcIC637/3Xb?= =?us-ascii?Q?EQRxt+BJIvi8DasVOH2aC/Yb5mrD31oYk8tJw/ty9hsx3AjOLTnHe3MSb1wc?= =?us-ascii?Q?6b6TG4AjFAyet/S4lZl7lwWGJAaBdjwRcD0qt6Dx8M3I23NJZ6DTy8UUvVzx?= =?us-ascii?Q?doKNV5G2fZ5Fhc7H+T1zAlHMDHMPSC7HxjOCf?= X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1454; 6:S6bYDKHdlWwIfA23TWtOy/OL8gpSCkJ5FuQCFA8eoad3NleEt8hYlgH9q3zD87/OLxjj090K2qK//H88k8Cz9RZzK8vfBBnpcI+4XllEAfMe+7lZniGPkz3ZkIz6PFbrP4m0dSGsZXcBYBB9AQ1dFFxx70+LLwymFSWt2tU7am9YAAv2g7DlN/RL4NwqTUGEmtN46mEqbeFA+hiIY1S/zF5vea556Ym+x8rLa96t2Nr9VLI63Bqai2XTf4QikBnipJrIxpxXToYoinaoaT2SPDxSCso1Ye7HLPEI/T8XVEhZJDxCEEDc7kAuqnXn3jVPaqJ6NBRiivpZC2Ym13F7hlu2GVIb0Xc/Bfx9fy9Oyjg=; 5:DKBCKzNUAFKywEjp+4VAJdEaDcufRU6PYwta1v13UTublnfCY1Mzpgmx9ABuimRT3ewbDJJtwxNFpP8yp98YMXBpvIYD4ncQSu3jo/KYYgNzprY4VgNSmOJ1X0IeyMvr0ROSxyQY+eCYCfrJefBTGA==; 24:nisvnLk4cIYpMzi3SJ/QeYfZ0owJ1hqBxwxTyZBuhbFapiNiVmQbv3AV0MNymNviH/bl7OpqU+ZPIU29b3FW7XN6qJVsQ8yqBibvlo6PqyM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1454; 7:CGStUjDQKOZs/kND3zF/pRXMLo7CUTfVwJj+v3T87kwNBLbyrHlC2El3QvKG6KlXkBYzii4VdtDW0RcuU0816zecC9a+pxFh3slqQCsYICWoH4qbvFAUuFEfJqpcV/K4Jb0QARHgfpdqS/8QpKlfuNXRY+2MDmg4cUyOk98ExOyOcpxYsgqWDrPqqTyCbZ2HIg5G/9g6W4SN14OZ9qVrcH8mTzS9WGnKlqeD5QClyx82vj+4xrVWd7NBokKhmVMihOMpRaPot+UqkgZQZPe1AtKMJErsmThf2E3o2CwQholU3qVX01yZRWdBjz+doeCRqP/MJhmImxQoRiqFBUqtaev2Wjh/B9SCY7ehPztLsMM=; 20:Y4J4IDzhlAsJNZwyrrI4teKY3g7bBkU4z+ifXB4g27xShTBKROtUtpEiwU+85sP7vmCXpGEhaNOaCOv7+lpBjmO8Bxu/3imwy59IEK0Iu5fV6tGlds0yyOTUoHi4YuGCfxz2HjbCvIHby4u1Qn9ZqDeGdEUEaZhb6ZAChQdRnCg= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2016 01:20:43.5328 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SG2PR0601MB1454 Cc: Linux-DT , Linux-ALSA , Liam Girdwood , Linux-Kernel , Simon , Laurent , Grant Likely , Frank Rowand , Guennadi Subject: [alsa-devel] [PATCH v3 08/17] of_graph: add of_graph_get_top_port() 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 driver want to get top level of port[s] node. This patch adds of_graph_get_top_port() for this purpose Signed-off-by: Kuninori Morimoto --- v2 -> v3 - no change drivers/of/base.c | 24 ++++++++++++++++++++++++ include/linux/of_graph.h | 2 ++ 2 files changed, 26 insertions(+) diff --git a/drivers/of/base.c b/drivers/of/base.c index fed0b023..e49eb28 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -2330,6 +2330,30 @@ struct device_node *of_graph_get_port_by_id(struct device_node *parent, u32 id) EXPORT_SYMBOL(of_graph_get_port_by_id); /** + * of_graph_get_top_port() - get the top port node + * @dev: pointer to the device + * + * Return: A 'port' node pointer with refcount incremented. The caller + * has to use of_node_put() on it when done. + */ +struct device_node *of_graph_get_top_port(struct device *dev) +{ + struct device_node *np = dev->of_node; + struct device_node *node; + + node = of_get_child_by_name(np, "ports"); + if (node) + return node; + + node = of_get_child_by_name(np, "port"); + if (node) + return node; + + return NULL; +} +EXPORT_SYMBOL(of_graph_get_top_port); + +/** * of_graph_get_next_endpoint() - get next endpoint node * @parent: pointer to the parent device node * @prev: previous endpoint node, or NULL to get first diff --git a/include/linux/of_graph.h b/include/linux/of_graph.h index 80ced0c..ee823c6 100644 --- a/include/linux/of_graph.h +++ b/include/linux/of_graph.h @@ -14,6 +14,7 @@ #ifndef __LINUX_OF_GRAPH_H #define __LINUX_OF_GRAPH_H +#include #include #include @@ -44,6 +45,7 @@ struct of_endpoint { int of_graph_parse_endpoint(const struct device_node *node, struct of_endpoint *endpoint); 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_endpoint(const struct device_node *parent, struct device_node *previous); struct device_node *of_graph_get_endpoint_by_regs(