From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752612AbcF2AfZ (ORCPT ); Tue, 28 Jun 2016 20:35:25 -0400 Received: from relmlor3.renesas.com ([210.160.252.173]:28654 "EHLO relmlie2.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752440AbcF2AfS (ORCPT ); Tue, 28 Jun 2016 20:35:18 -0400 X-IronPort-AV: E=Sophos;i="5.22,559,1449500400"; d="scan'";a="213979206" Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; Message-ID: <87h9ccg7oi.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto Subject: [PATCH v2 2/7] of_graph: add of_graph_get_remote_endpoint() 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 , Mark Brown , Laurent , Guennadi , Grant Likely , Frank Rowand CC: Linux-Kernel , Linux-DT , Linux-ALSA In-Reply-To: <87k2h8g7rr.wl%kuninori.morimoto.gx@renesas.com> References: <87k2h8g7rr.wl%kuninori.morimoto.gx@renesas.com> Content-Type: text/plain; charset="US-ASCII" Date: Wed, 29 Jun 2016 00:35:11 +0000 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: KAWPR01CA0018.jpnprd01.prod.outlook.com (10.161.24.28) To KL1PR06MB1701.apcprd06.prod.outlook.com (10.167.63.15) X-MS-Office365-Filtering-Correlation-Id: 96339be2-5762-4e0c-f73c-08d39fb53b92 X-Microsoft-Exchange-Diagnostics: 1;KL1PR06MB1701;2:GY7zmHaDzc+YuKtddokT6l7G9xiVHtiOeZ8yBQTAmpOQKzY1/FGU70hYmZNbj4Ba3dpACbyUYqtaqYDqqAINjeDP1YoVq06MAXycbFNuwRdBkRjbgtPMzS6O0tDtWCSc2gLyLU9Nw3e7JY/wcnYor6VkFd3XulMSII/7SOk0uJ2RKaFRTYxeWVdvI4wpncKa;3:4fOVMU2lsVAZ5HO22i8g2fCKjc5E9lA27olRiMEZE2siTPqzB21hO4Iun+cobeGwNeFofjf/9yS4q1jGFLrXIt5gV35AvgcTZKachUrjBoc1AbVx4ybqnivRo5D68DJ9;25:qtsHYOh4pMjrd1i986ymP6lRUflh003e2IcwMGy/eE9rPqGQ9WDw7wxkRftFJ3jrMFHtH0JEIu3M5l5luCLN4j+VGjwHTflJ+HzWzIBAyEIeF0S6U/rxr19Hp4LGj8l3/fSq6M7P58zYxyXCCKoBBQKkz4yyM7JXAgHxS/s737NC4Qik/Jkey86fCE393HNdgrsN4ZtD0WkUkY3muZYL/KWpbe3vq4NZbQ5EYhTrp201U5XkvVTkcBCf49l8jzZG3QUgl5fqUp34hBhbea6CsuWtT067Jm6v2QcYR3OttzGkfn358hElOawBhpZfhw3NCSm8NVwa8JVH8gAwIrDdKCqAS8h0CTsjPTvhWcykLJf2c6GP8ju+XCUcr3I+0KfQHhd+z370x4YxKg4lZ4Ogl0JQnKyaC//38tlsn9FOaYY=;31:qcRzT3TWkE2ZcXJVAhsc7ZWYJcsfbf/x6N7+mJiKyNULv34UQwpcJ5fxNyK1unAhtgqG8CPu4gMOdtoJaRXa7NLxF7HfTlrHJRYHt4/t3ohijWc8usHbBABY/kQkCOP3vOyftglM9oM16OB59vdiev0jLODTecsUxdLde2n6QluJLc9RLVaD/XAGRrHDgn6U9ZF3+7LWK7Z9h5ckPgRP 4w== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:KL1PR06MB1701; X-Microsoft-Exchange-Diagnostics: 1;KL1PR06MB1701;20:xHHJvBSAdi56um3CJCKutTcVGaCDHHqG+d7tc1oxLp+4p/GecTsrJsXnwyT7sPugPVGPNttKraatD9WWaQiZ+vkJmA7m0eqdtsXslVLZHQyWihMwYyiKdKO1j0n5VF06WnPIbI7uAqD0ETElcPGd9Vl0xd94hzabPLD9Qb17CcHCYDxnG2ttYb6bxwkEAhTMya9XC9D31GhUligz8HoxM7I/hw0o8ARZEZfqoIqDCFDg5iZ7sShOnAsygbquXyBiph0j8xErpnLZiNx6OgcyYAavVHFQn94wCoVKj+dIp/n4zGpit3O7yrfg6Zvdk58qPAWZFzzEmfEkBDSfwBbXTFHsLfY2VzNGn1YJCcscwqn38NPBhdOK+ttuWcdL6JfFtf6pmWd0G7C/KKT2fCYAlTds2ilkwEhC/geDnWZ29SA2t2l702UE7s762N8qWUXt/92YZ7GExyUYTX+dKCFWF0sNijfyXhcRJDptdoh6PAXwfhSUc6/jdBtxdxUQ3MK4;4:VAk7A6CGfwulLGOZ63BLxwpbyrUu8j0Kt2UuneZkoGJLNI+kwl9DkOv7g+OYbtYoOuHV+k6K1U4DbAOt70KaQVl8Z7ZYDI9zQJcVr7B+KnmYG/rG7dxbcN0DCLQt0Hc8C5n56OrjemOtvA/4BZqL8Fw+IMm1xdgmF+au8a4QbkH4lAXaSLqyyeWUzB7r+CGTLxhHT/zfaeYbZ5K6g9wsTaxtOE5XbKnBxZx2CJPwG5IB4DYr+9T9O7+TPc6byyHY+jka5yRf/ZF6TRQiNXLFBliGGNw8BI50h/gONpu3zDFH9QTssA67YEOYczcn3zMfyAawT/3FMl9vLPSerzVeQLRBnmmIWRvgwWG2GU2SgBVKqzMBW+vor9lc4FLva/KXeW147MDb5rQLipPWPRQxvw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026);SRVR:KL1PR06MB1701;BCL:0;PCL:0;RULEID:;SRVR:KL1PR06MB1701; X-Forefront-PRVS: 09888BC01D X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(7916002)(189002)(199003)(105586002)(101416001)(106356001)(46406003)(92566002)(2950100001)(86362001)(77096005)(76176999)(36756003)(50986999)(42186005)(53416004)(54356999)(229853001)(33646002)(7736002)(7846002)(23726003)(2906002)(305945005)(19580405001)(19580395003)(50466002)(4001350100001)(81166006)(189998001)(81156014)(97736004)(5001770100001)(4326007)(6116002)(66066001)(83506001)(47776003)(69596002)(586003)(68736007)(3846002)(8666005)(8676002)(7059030)(16060500001);DIR:OUT;SFP:1102;SCL:1;SRVR:KL1PR06MB1701;H:morimoto-PC.renesas.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;KL1PR06MB1701;23:IwT2S+gVOujx7yqNfBh8V2rDDaezO1EbcMPIRAzbk?= =?us-ascii?Q?g2p4wWa4oqQM1qRPLkIjdje+Ri0nxo7ZtbmXHQcbKhuc9YHDOv7371OkmOxD?= =?us-ascii?Q?okWLjnevSFcqEAaDFCgLuJMiV9sPp7B8MC81nYawCEDkjR7mzGK+6b0fRR4t?= =?us-ascii?Q?Use9kbAqs0INEYJSzhGrMhI3x2dRqTjNX1BXP+RXPx2eFEowAaAk0wDABAnd?= =?us-ascii?Q?pY30FTds2nFMF/lw9zXbWulWpPFhxUa76FawZGl9fEQSgmYmOcD/ZoXOp9tZ?= =?us-ascii?Q?zg+rrwiOw4Pl4fw0yLLFY5McFtJL5tJb/sJcoPThS9RY0z7GyrFJcFmKiIRx?= =?us-ascii?Q?E0kLlFeXlt62PVwT0LVX02VRyouJ8MEbpUNJ4uQL3uhbpPqXx3AUwikYa+Kf?= =?us-ascii?Q?ShXL1N5FAepEkslnmWV3ULGFv67p8vfZ8dwA6/QwLYG+GojF85/OJbqAzC8p?= =?us-ascii?Q?XE1e7B6BznaB4kHfpN7s2rY1l+Zfh8uHHG/jdsZdUca9H6aOFpqe+xDWQMjW?= =?us-ascii?Q?3ysow8WyDSk31Tdzqpxv2aDPWWhAQ6JHJh4j87qQym/JDBLaeujZeJU/CXec?= =?us-ascii?Q?AjYLeMQ250BZiBsAATN+Ps3AlE16TIm97ZyDQH1RmsrvFFi8VyQvS2PIeFZv?= =?us-ascii?Q?CEoj2iNjB8CMHoP2p8rHJvqJU81SwjyWhZE9fdeY4zGfKgoTsujZz+Bfp0+4?= =?us-ascii?Q?msIkgk78UE2TI+87Nb5kLkfRyx+VfMZj20iyKeWrVN+T1GZswDL+ZDNf7rt6?= =?us-ascii?Q?l9+ZWAZI8D3D4zjRd59czqSv0Ola30dSNtXrP/ilYaoYVn4yyj0AcHq6ht8c?= =?us-ascii?Q?lIl8Y/YVRt4N5q6a4YZ3Gsa6bcxJY2Jdr0P+Qe6NlcBSHwICOQCFGi2Hb2O5?= =?us-ascii?Q?HvVb1+SxKBwxonEwP19TTLO5kFPkiDfrtC8UuuOK9InrFNY5BElohMluZjl2?= =?us-ascii?Q?/Aotg95O+yf1p3CcpVmrsE5xrVx9vxG0HcsfUyLS0YaQ/fosgzzSvCjevutB?= =?us-ascii?Q?ixeMcWn+q5okFEURUpx5qP4XtM8EvKEQveFzZnTz55JrtXpG52cq5wXijTnD?= =?us-ascii?Q?NUJez2bBA+oO5dNTcgdNuwS/D1wGfI3NKc/eQRAMVPKIM+lmUX8JBlZpqCEK?= =?us-ascii?Q?Y1Xf9FPfhtOOXWuv9iEXXDa/XFJDO2qHvXunvhcEiyqmTkiv0ByMvFDDTcr0?= =?us-ascii?Q?8SsupHVY70tA8SviOtw7hValQUUcH7DgUfZ?= X-Microsoft-Exchange-Diagnostics: 1;KL1PR06MB1701;6:FMSrHcVFImPKS5nL9hgtCBKQOoazFZO7KHTByECOvce15DnUKiZfXaEVj6KL8m+DqFuC6UXD7ALBysBk4In7bBWbRec8Ku8t9cFWfWd0Rk7Ea4DiwiyfIeDWbLI5SArE/1MKvhmHzV/u5uoTm/QhbUs8DTsazyBSXngWoLhS2gyENFyaSoPZcoCFwjbPtt7XRLE+GaMXa3Q5/cS9paxPzKiHbrFtdFoVqElu+IhJ4MeATrHmmKXnxPLYlWeDP7zudfV3Rgq2qgyRcIe4SFpvfzekW4sXl6TR6MmEKhj57hsMo5IvOac/rlnjFS2itmkHXTfbZyWRroWPmw4IMh+c6A==;5:mExiBx9hyXuCukbn1qoJ0GsPuYPWcLy3YdUq41P75t2fOAq27sWkALFg1jL73xkAzgzCq3TYUcA1zasIWHu5peRs1Vy9Oef2JYS3/6fr5bbs8wBmiAzsBAb3yGYcvHSs+iEQ2I4i208eSTaYYj2voA==;24:iAW7rERto4Bgd0aiErJ7hHnfhSgi93mpzIa8Xc8H1GHunn+gR3UMovwH2fOoZlAcMbERY3fBeo61qJvPmufcprYJsExdQbCgQD1jk+92jJo=;7:2Yaiu07lQ5jpomWdVr05WfjR1q6rcKG80KIKhDkNyq4GNW3vaOsu/JaxPdf4VFsJrNQjhM/eY2A48TL5I4DKNeieSiaDZrwTc2z1fgrtIGEF3Y0BBwRPYkgIUHPqJ6Eb1HjM7ae3XnA/yPXYJCEfPLgJcgJsY7nntLdKswDk8a78+k9tQnEtKUAjIpA9JMKLvC3mZyvX4POMR1OS9j65zCKZMi7gahE6KUqBz7pyoXOOiDhqfa5n5mL1GCTArZFD SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;KL1PR06MB1701;20:+cm6mLMMgUCTq/3rx0XpGdxlKj6mh+U0uBOzD/OiOd+1ZoUU5QbyL8VQ8XB2cpJmvz4ESBy7vlTkytv+V9W4AygE/JSI0tMMwKr+Pnk+5vseCYkEfOWkj51/Uu5z+iNrVULSSMTcy8dCGsE3anchFMIOX7+oim5A/S16N9HJ/bM= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jun 2016 00:35:11.5721 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: KL1PR06MB1701 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Kuninori Morimoto It should use same method to get same result. To getting remote-endpoint node, let's use of_graph_get_remote_endpoint() Signed-off-by: Kuninori Morimoto --- v1 -> v2 - no change drivers/of/base.c | 18 ++++++++++++++++-- include/linux/of_graph.h | 8 ++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/drivers/of/base.c b/drivers/of/base.c index ebf84e3..347118e 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -2327,6 +2327,20 @@ struct device_node *of_graph_get_endpoint_by_regs( EXPORT_SYMBOL(of_graph_get_endpoint_by_regs); /** + * of_graph_get_remote_endpoint() - get remote endpoint node + * @node: pointer to a local endpoint device_node + * + * Return: Remote endpoint node associated with remote endpoint node linked + * to @node. Use of_node_put() on it when done. + */ +struct device_node *of_graph_get_remote_endpoint(const struct device_node *node) +{ + /* Get remote endpoint node. */ + return of_parse_phandle(node, "remote-endpoint", 0); +} +EXPORT_SYMBOL(of_graph_get_remote_endpoint); + +/** * of_graph_get_remote_port_parent() - get remote port's parent node * @node: pointer to a local endpoint device_node * @@ -2340,7 +2354,7 @@ struct device_node *of_graph_get_remote_port_parent( unsigned int depth; /* Get remote endpoint node. */ - np = of_parse_phandle(node, "remote-endpoint", 0); + np = of_graph_get_remote_endpoint(node); /* Walk 3 levels up only if there is 'ports' node. */ for (depth = 3; depth && np; depth--) { @@ -2364,7 +2378,7 @@ struct device_node *of_graph_get_remote_port(const struct device_node *node) struct device_node *np; /* Get remote endpoint node. */ - np = of_parse_phandle(node, "remote-endpoint", 0); + np = of_graph_get_remote_endpoint(node); if (!np) return NULL; return of_get_next_parent(np); diff --git a/include/linux/of_graph.h b/include/linux/of_graph.h index bb3a5a2..d9d6d9c 100644 --- a/include/linux/of_graph.h +++ b/include/linux/of_graph.h @@ -48,6 +48,8 @@ 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( const struct device_node *parent, int port_reg, int reg); +struct device_node *of_graph_get_remote_endpoint( + const struct device_node *node); struct device_node *of_graph_get_remote_port_parent( const struct device_node *node); struct device_node *of_graph_get_remote_port(const struct device_node *node); @@ -78,6 +80,12 @@ static inline struct device_node *of_graph_get_endpoint_by_regs( return NULL; } +static inline struct device_node *of_graph_get_remote_endpoint( + const struct device_node *node) +{ + return NULL; +} + static inline struct device_node *of_graph_get_remote_port_parent( const struct device_node *node) { -- 1.9.1