From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752698AbcF2Ag1 (ORCPT ); Tue, 28 Jun 2016 20:36:27 -0400 Received: from relmlor1.renesas.com ([210.160.252.171]:39428 "EHLO relmlie4.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752466AbcF2AgW (ORCPT ); Tue, 28 Jun 2016 20:36:22 -0400 X-IronPort-AV: E=Sophos;i="5.22,559,1449500400"; d="scan'";a="214456123" Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; Message-ID: <87d1n0g7mo.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto Subject: [PATCH v2 5/7] of_graph: add of_graph_get_top_port() 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:36:17 +0000 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: TY1PR0201CA0012.apcprd02.prod.outlook.com (10.164.90.150) To PS1PR06MB1705.apcprd06.prod.outlook.com (10.167.53.15) X-MS-Office365-Filtering-Correlation-Id: d9dc5f40-4269-49e0-f69c-08d39fb5624e X-Microsoft-Exchange-Diagnostics: 1;PS1PR06MB1705;2:K0fAWNeiYrvs1o2aYM4tsJaQjDT5DuJrcc5Hh7K9VO5oBnjJ4U2uudQviWkf+N6iuqzPCWOjSh2WyS39gH2sRXUiPGK4v0TqXiKpKS6zY8WfjEeJW+UEMHOSk9ql1/XAoKsX2cuUtPJc5aStnDsBLREfYjOBkBgua+LtKQps8JvYx6i68bsZaqPEFWv87WE8;3:tu71kMGahskg9eT5lpgA/9WBmI09zTviB6NIvHRpsJhg1OL2D3fZ40prq20Nr4IBhZQXe3qslhxus8MdMrzl4IWNfhtGJKdSqzeqpcMkVF7+uR0jzgLHZzpQ90/L2vNN X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:PS1PR06MB1705; X-Microsoft-Exchange-Diagnostics: 1;PS1PR06MB1705;25:yP+1Wa5C9KEVXR0ldvA2tnPDuqePrR4ELfDgxuf1W5N4Qf6tgF2CtC433qFP/VFZXaNpr1TWO2C8l5Dy6+1Yfr/9P95tz6eu16GquzeN7Z+wUJQmTdvs0TkkpIsIgo437jiNLxDPy6drstiMDK0WWXAhvmEFXW76d+sVqlHybnW4iL5y68I4zquxDHod2VcgkZ8/syo1wWv8tS3cr561au3vZuhbKy/j8xte7Erp7ew8WYYrrO5RcWa6PrywMhOQ3FCUzeLzmofwO64DaVutsSolg6hnXkRkJeP1Sn5+tDdnABJEqabZ0FpSbpvlMuXS14JO5BB+8xCXMKAOa2qReIs/aHrFwDsEHooGEeV1u1UgFTMuWRN0iDx/KTjyyYXPCC8oOs7tgt2/XZu0JjN8w2irI5tdGvD3ekvTsQmvO/nP0MepDi41kkro3ptVv/FBW8od+tVPGKxpefX78XAjodYipZ2RyGLd6h+FUa+dovE8PcZR1jURQCIE+w4gI+PoJf9jSiorlxpvsdBwyUqcNuBcfbYmHDFuHG2qnjPEl2ga0J0OiRlgielYDnC2vHJ2WWeANfvHTP+NhZJ8qPkTq3600rkR5vL+yu2Udf6kjivdqd9ZFgjyQuDgFpTkNbOx/Mg9K/vWYww3u+aeTSSkPVN0XzkFlIs5dM3DRpr1mfspeqiZuRLxOlQkR2qxkv6bV7BtG7VIQGLkexaBQ0TPYg==;31:Tij0vxXKzO2O4DTUq8dK2vrIGHNC2pPA7us0G/N6N7pmv3zB7XC9tZHSTe8gswQPJvfxltinMnkmTMSAgfzDn08KBnoGSmhjquN5NNTh4MZGyB0jaFRR3teCy7kc/aN/cve0ZLubtXJIdY1bxikbM4HKbW0zbsk5hZ7PHOHObZ9urxmktwdnBx/lP1584o3SMMutpV2IJDIOfc+EFyJqyg== X-Microsoft-Exchange-Diagnostics: 1;PS1PR06MB1705;20:SwYVol5VqoQbTrzBaGKMiSqTaQDzVJD3LA+X6fr2jy9WN9KXuH+o5I5JlW5tSEdLEpu/8qVSGPgDqzhLPPt+q8AWQpM5+ZzQ4FZjJ2J+l82GgF/NwR0UtbvVbQ351WuPwlcvJiieEBR5R3fAunjHwlrSjvi6y9+A9ZVr7+QPGBzW8I8ddPXL27wZvOnPISTTl1aTnO7LXQQ7IwwR4z6xJUz4AWNylE7L/KauvLvXxpAq/r2kqWVUjGHtfZVUfxoWhZYSwoMmgTR9eu5tHi7cOxSCHjRv6uB8L5fa8xqdaF+J1Vx7Tn7Vxj2YPSI1A5milHDstLvRhvL6LKuiRl22//JEV3hci3A7+7ip4lx7vh+saXknTVXf6Bf9fD3exNaqGCjKMjHfs89Wkeyaph1skWwzsdhNLXBjVUcgENTOdG+QWZ49Jjtlb20eq12kerBe2nDbIhL+1HzbDDtWDyQXj2SoNu6Ols3JeakHGcUFKZtsHhuofZ7g+yTwFoa5KTZc;4:aU8guRUX26Cm74Zoa3SU2VppzGoxWDZ00y5phxfUGTtqcvJVhCUbIUE370+/tmgsPwockLW/SeIp2+EJsugVLK3KCiUCqF2bA/q+TeY15nbV6swbFB37585Q035zyfeBw9DNaltyyRSu88HmNTXES1pD0pF/l6Foap8dJLDF8eGHsnyXAfE5kU/Iu3z5UIHrdLjYpDcJ33apLlhYo8bErgAsNJfJRXQ6YLqJzN6VWO6HJmODCKZH9DIdcEF7YvmAQqqaujjsS/w5Gti0ap7V9ncdYTdwDR5BISpiyGToHLOUCbAVxzGoEnCgZu3TcDCRgrvMESzkw6UPnBpiru5C+orElVXNxlcsHbC/dP4iJ0I3s8bvgK/tlcoM0Sw9X+wpj0fMC6XZW9t1GqWsHsnOzw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026);SRVR:PS1PR06MB1705;BCL:0;PCL:0;RULEID:;SRVR:PS1PR06MB1705; X-Forefront-PRVS: 09888BC01D X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(7916002)(199003)(189002)(305945005)(76176999)(3846002)(6116002)(7736002)(54356999)(23726003)(50986999)(586003)(46406003)(81166006)(19580395003)(92566002)(8676002)(68736007)(4326007)(81156014)(2906002)(7846002)(19580405001)(83506001)(8666005)(101416001)(69596002)(105586002)(33646002)(189998001)(50466002)(229853001)(106356001)(47776003)(36756003)(66066001)(53416004)(86362001)(77096005)(42186005)(97736004)(2950100001)(4001350100001)(5001770100001)(7059030)(16060500001);DIR:OUT;SFP:1102;SCL:1;SRVR:PS1PR06MB1705;H:morimoto-PC.renesas.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;PS1PR06MB1705;23:wjx+8RoZfj7+UOQ7cp5dx0BwyeIVRPWs0Zfng5QiR?= =?us-ascii?Q?vPvMY4Mm6yBghuZ/63z3fr1xKD61y1GDksyAUcCW7d8wB3wIxjgHXHqyZD2Z?= =?us-ascii?Q?pnURYxltmCl3eBahUqX3ExH7NLmfd/fkWwBwndAU7GLdL1ZxhN8H3owjNBcL?= =?us-ascii?Q?ICd155Adm0jTs9PNL0yFP6/GMR8gt5k6E/Y0T7e7xp2RvfLn7cBnRpif64x9?= =?us-ascii?Q?c1VhDUxPq4b513S2CwPGQ9z3K8iiTmpBKPLF+ah20J7OTYJS30g0KWYcJhnV?= =?us-ascii?Q?6C7ePVMFo6vOwpRA8PaoKYj6tVkgkvhnFNvDdHFYXMWW2EeVA+yVIE4SPJRn?= =?us-ascii?Q?l754CMs5SyQ+dwkRYMSpYFrFbwbwANJckUEQvDYPlljKkis6JfjkycKKjKY/?= =?us-ascii?Q?1UJGhlgIRR31yjj1SSHblvf8snNBX2c9qKGZRe4ko9SbCmWoZBJ8xC20Ddv8?= =?us-ascii?Q?63+7TGl84ubONJE+HPNREde5V8ohi3+SBhn2hChQpQXkczPmBEWwJFAZraE3?= =?us-ascii?Q?w53P9/4vUwU6CLNB5Jz4WFVd6NQ7VuKOT5UWpPoNK5hWtDQXDq069eRQKoWB?= =?us-ascii?Q?6Mmxh8VYePSbiZxn9UQedPKX9iuwPHUTa+kGZroGqzjQqEmqMVVmDTDJajAt?= =?us-ascii?Q?NJbEq7uZrdonrGvyevjhsBOvgIuqZQlJfGPpjmuu2Vn3NNAHt85OW8ZbhSws?= =?us-ascii?Q?TR3kGfmIrmPyv4tV2PUmtD/7Q27C1mAm5wOhE0WGHMYoJyBrYXuAO74MA60U?= =?us-ascii?Q?pYabcxNK7rISudL5qnDr3bHBAnTheKvAS2gUj3qSCjHa/4QyoC2H+sToGc/b?= =?us-ascii?Q?ENwzw6nfw9j/apOaaB4pDYkSBkv/Z5cV7KlCm5ERA2w2TD+1EGe7JCqWE37O?= =?us-ascii?Q?GoXgvzuLwvBTUqLOFwXGIugiOk2ZIpdgI2OAB1Ga0hNK67y3MtMzKnHdBLdS?= =?us-ascii?Q?eSo70klEpvwrsZaLS/pNsoy2kzjsiLg4FQulsTX7hLc9Hdm3V90Razvba22X?= =?us-ascii?Q?VhsKwdt0qYimtzta+B33glvBMIXZR9XoAmzGcg4TaghSiiVsNCbDzoNT7T7Z?= =?us-ascii?Q?OLh75Ft+Yw916WHHq2VMSEJQUNqkaaY5lap6hlxuO8OompIUScR2g/0vdfPJ?= =?us-ascii?Q?pPyptNtZYbZuhIax+l/X4BsVWaK3gYvUNV65TnOt4/Ity8Re+jXkqw2PYrdi?= =?us-ascii?Q?5jp7tbdlNtTibu880YSkFtpx52V0KoRRD6d?= X-Microsoft-Exchange-Diagnostics: 1;PS1PR06MB1705;6:UkDvcfYzoJF6P7bu+wlZ9EidGk1ppWR/UGUFd+zUAY8mEYOLXwZXF7IQ/MNy2P15Sce7u9BRZ+cR9hLuu4adta8j24uxcZqZ9UdlE3hhKIF8CRmWtuCNX3Y4ahaHnQPCh3wSsChAlLFRZAh75Htig3y03+q/r+Hsf4rENccTyAYldn9qvlbcm6w2lV3lf2O0gRCeekctH/drIX/b1t8mZmJ/cvsQ1DFgwlOmZlY8XF7sj4lK8ekHFVYsMEq1ueoyYPMwoIdkkXIxFtYb8ul6GDr87xm3fjuRIBL49L2JhNWkI/Di0zXhQfgohtFuN047wO7t/yj17axf1CjIrpz77A==;5:UHtTHixlOJ32DgIP4HzueTtAIyYeHX4kSxvR/OvcakMd94Q1BQulBsSL6HUIMr9KnLz28GWecUBMbpHTnqlWVka9tD80tWF+CO9nRD8UytOm7SOV20VBQScLwuHYMw69NzgjoUkEeuRs0Yp9EkzNcg==;24:FYZnFgY1t3us5ypEN/KwLQk+tTYPXpBaSMju4tFUCZPMXx+gYHJwWmE9vciZqdrZLWgVbYceH/Z6OxE78D/8cKJDu+b8XuznaLjZr1nmahs=;7:cMr5mWYDcw2roowjpFxOgVIfmMMF5mIlG1Mv7/dqyYRLqU9PvEWPX1fGwJHN5qqUx1kCM0rM56BmMexVVENF2gGXw9QUnoR+Grg2E+I2yN+kQZuYUmyiyyOW65R6pkqUuQdpz0/sVTHbDmXnCf5uCD8IwspbwY3oqgcFaZhjz4s0hJ4WfZDr/2CabLkK4W6JcZDlt3+8DFSji3aowjFH0dgTU/Johpz4zs0hvM0PA18drEzR4+6vlaUKojWvnoSm SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;PS1PR06MB1705;20:ZK0RkDiWkuRTrvSNsW5Z88H7urHo5E6NVbxfICE5c5wCl/VXGptbvrVH43IDwK/75jbHcHVFdYzkPKIohH1KA7gMHoTS2BJ3uY3xiwHuhz9/Z+ohdtAShwme8ahzuqawhz7TKku/q/nfO+gbCdSHzWOyVM8KDMe/JGKc1MQqkUc= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jun 2016 00:36:17.0245 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: PS1PR06MB1705 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- v1 -> v2 - 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 a059d59..a085961 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -2225,6 +2225,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 0f362ed..35e9a6e 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 @@ -47,6 +48,7 @@ int of_graph_parse_endpoint(const struct device_node *node, struct of_endpoint *endpoint); bool of_graph_port_type_is(struct device_node *port, char *type); 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( -- 1.9.1