Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp5085423pxu; Thu, 10 Dec 2020 12:32:36 -0800 (PST) X-Google-Smtp-Source: ABdhPJzqL486oe+JgMpOzXk1BRHRt8kBFxwduh5q6NFjMMV/gbXqE2rAzMigDecmwzMRGw1vGjZ3 X-Received: by 2002:a17:906:4e52:: with SMTP id g18mr8288984ejw.385.1607632356394; Thu, 10 Dec 2020 12:32:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1607632356; cv=none; d=google.com; s=arc-20160816; b=gZ15624hRlEI/RG9ft1+gsNY/cK771/ZZG/wuJYCxvVP5Q3s6KjrKI/PwxKsjV6XOY F38NVpO4ybJvMUWNgT666VuHTJeOytQY097BFMYCoQcBpW+SzJCk7hoqbvZoWMi4aZb/ Icw60LbovYtu6nJ9DLKDHLxuabVLek0sdZL2KyK1HjVzw/20P4P1NegpIxLZ9NY8iJ3Z Lj65CHDyGDq44PBfWTR7l7ydjbWVSu+E+jMjwo40u0nyrG6TCB9RXvCkIQZBwiln4sIe CHklon4Z9QMwbfBG2rhhBYEVvRRwHAXhuFViMG68YceqkcAce4A7ogbjr3yprOYLCdug 8OUQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=v13PsshndG89LyYYoye/My4vJgfzMpm5itJIsCaIY+4=; b=YoMqE1MSsIKITkDEhCwmruEW0K+ZH7DF0jIGzNxnvRgHirVA0gQzig9+ixUua28gY/ fyUZrpRaHc/scPCOst8DtMVrVl3IbmA4UVaPDgwCnvQcL9brDR1x2v5QRlp0112xX32H 08OH22LCw9Fndg+wnqJlkO0bYj6PVjdEO2vFqsBele4GAVMoNxEpSnm331Am/8zy4x0H 0LhtFxbVbKPQvqD9KyWSYu/nnewv62gncxSlVmBgJUaVfnBiULxSBVEwYCH44WrgFlRp 3dZFI4n09xeI+E4vIAYGO8sZGuw+e19+qYeSneyDlC48UlL2gQujukrC8Itb2PvAE+B0 EJgQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=o9eCZIRt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k10si3184101eji.9.2020.12.10.12.32.12; Thu, 10 Dec 2020 12:32:36 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=o9eCZIRt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2393782AbgLJU3V (ORCPT + 99 others); Thu, 10 Dec 2020 15:29:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60360 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2393381AbgLJU3V (ORCPT ); Thu, 10 Dec 2020 15:29:21 -0500 Received: from mail-lj1-x244.google.com (mail-lj1-x244.google.com [IPv6:2a00:1450:4864:20::244]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EDDB2C0613CF for ; Thu, 10 Dec 2020 12:28:40 -0800 (PST) Received: by mail-lj1-x244.google.com with SMTP id b10so5893195ljp.6 for ; Thu, 10 Dec 2020 12:28:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=v13PsshndG89LyYYoye/My4vJgfzMpm5itJIsCaIY+4=; b=o9eCZIRtMIAzbD3JXvX274VC1v8XOtAaVhbTr9trkQA/RdRV7zEkOyEdTGCqfuZ/pW 3ilL2vi9dkXoE+iyJoeuKhclSLMfSSKwvf6YZ0I9n1M0ZEuCb6ztnCWsK/GS8XQBjSIg 5DRhucD5Iz304agF7eKe1Zkg/xw7KsC8xJUjoMKHjPy1/QUiGA89Ov6vdt6umEPtEOLW G80ofo8xZU51laIyrY/coiuN/MlzHPp2He7hrpiNte6fvwgOj/9jlAbyBmxWm4yLM+as yVtQ1vn3IxjcCr1IJTizmRjSphQEaksYvLxJFfPoQp7yD85xbk54fzf7fP9wJYMzGqAj 501w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=v13PsshndG89LyYYoye/My4vJgfzMpm5itJIsCaIY+4=; b=k9sGrCrICWUxvu1jwMb1dMBwJaP/uaNLLoDzl6D7pqlcApP+mJOdDuS/BcoZIVQQID 3IR8n1/HkCZ67/IKavXq9orCT/ZPwH7jzhhFmo3LsB84o58mu6V/leV1StE2KCXCW2zX FHnQfI1n5z9i2QtDZ4Dfml01AB9XBd7/D4UsTHTfg1XhUSTojt6QZq7UpjeUbSq0sp34 w74I415/K+T74bsJ2DlqKTRr7qwkVF4Ye1yyMxJ2wgdYRLzjevH/8PcQREtpjcWhBu65 /1AN3hTcROx0Da+we8QBFCphxmeBltw63IzIX49bo376R5cjguZGcnMWzwxMPPh0/A8n qPnA== X-Gm-Message-State: AOAM530GktLW20s06Ssf39gZW4m42RNGDSFH02uQEen8hLDjwl3xqylY CdIkK+EKaaRdjnihUq2YucBkjQ== X-Received: by 2002:a2e:8113:: with SMTP id d19mr1909725ljg.303.1607632119436; Thu, 10 Dec 2020 12:28:39 -0800 (PST) Received: from localhost ([31.134.121.151]) by smtp.gmail.com with ESMTPSA id r4sm364279lfc.247.2020.12.10.12.28.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Dec 2020 12:28:38 -0800 (PST) From: Sam Protsenko To: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Rob Herring , Frank Rowand , John Stultz , Andy Shevchenko , Sam Ravnborg , Dmitry Osipenko , Laurent Pinchart Subject: [PATCH 1/2] of: property: Get rid of code duplication in port getting Date: Thu, 10 Dec 2020 22:29:44 +0200 Message-Id: <20201210202944.6747-1-semen.protsenko@linaro.org> X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Both of_graph_is_present() and of_graph_get_next_endpoint() functions share common piece of code for obtaining the graph port. Extract it into separate static function to get rid of code duplication and avoid possible coding errors in future. Fixes: 4ec0a44ba8d7 ("of_graph: add of_graph_is_present()") Signed-off-by: Sam Protsenko --- drivers/of/property.c | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/drivers/of/property.c b/drivers/of/property.c index 408a7b5f06a9..da111fcf37ac 100644 --- a/drivers/of/property.c +++ b/drivers/of/property.c @@ -30,13 +30,13 @@ #include "of_private.h" /** - * of_graph_is_present() - check graph's presence + * of_graph_get_port - find the "port" node in a given node * @node: pointer to device_node containing graph port * - * Return: True if @node has a port or ports (with a port) sub-node, - * false otherwise. + * Return: A 'port' node pointer with refcount incremented if found or NULL + * otherwise. The caller has to use of_node_put() on it when done. */ -bool of_graph_is_present(const struct device_node *node) +static struct device_node *of_graph_get_port(const struct device_node *node) { struct device_node *ports, *port; @@ -46,8 +46,22 @@ bool of_graph_is_present(const struct device_node *node) port = of_get_child_by_name(node, "port"); of_node_put(ports); - of_node_put(port); + return port; +} + +/** + * of_graph_is_present() - check graph's presence + * @node: pointer to device_node containing graph port + * + * Return: True if @node has a port or ports (with a port) sub-node, + * false otherwise. + */ +bool of_graph_is_present(const struct device_node *node) +{ + struct device_node *port = of_graph_get_port(node); + + of_node_put(port); return !!port; } EXPORT_SYMBOL(of_graph_is_present); @@ -631,15 +645,7 @@ struct device_node *of_graph_get_next_endpoint(const struct device_node *parent, * parent port node. */ if (!prev) { - struct device_node *node; - - node = of_get_child_by_name(parent, "ports"); - if (node) - parent = node; - - port = of_get_child_by_name(parent, "port"); - of_node_put(node); - + port = of_graph_get_port(parent); if (!port) { pr_err("graph: no port node found in %pOF\n", parent); return NULL; -- 2.27.0