From patchwork Thu Nov 8 16:51:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heikki Krogerus X-Patchwork-Id: 995014 Return-Path: X-Original-To: incoming-dt@patchwork.ozlabs.org Delivered-To: patchwork-incoming-dt@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=devicetree-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=linux.intel.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 42rTpr13vXz9sBZ for ; Fri, 9 Nov 2018 03:52:20 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727244AbeKIC2d (ORCPT ); Thu, 8 Nov 2018 21:28:33 -0500 Received: from mga02.intel.com ([134.134.136.20]:6164 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726862AbeKIC2d (ORCPT ); Thu, 8 Nov 2018 21:28:33 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Nov 2018 08:52:11 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,480,1534834800"; d="scan'208";a="106431402" Received: from black.fi.intel.com (HELO black.fi.intel.com.) ([10.237.72.28]) by fmsmga001.fm.intel.com with ESMTP; 08 Nov 2018 08:52:09 -0800 From: Heikki Krogerus To: "Rafael J. Wysocki" Cc: Mika Westerberg , Andy Shevchenko , Rob Herring , linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH v2 4/4] device property: Drop get_named_child_node callback Date: Thu, 8 Nov 2018 19:51:56 +0300 Message-Id: <20181108165156.60073-5-heikki.krogerus@linux.intel.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181108165156.60073-1-heikki.krogerus@linux.intel.com> References: <20181108165156.60073-1-heikki.krogerus@linux.intel.com> MIME-Version: 1.0 Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org By using fwnode_get_name() in fwnode_get_named_child_node(), get_named_child_node implementations become boilerplate. Removing all of them. Signed-off-by: Heikki Krogerus --- drivers/acpi/property.c | 20 +------------------- drivers/base/property.c | 9 ++++++++- drivers/of/property.c | 15 --------------- include/linux/fwnode.h | 3 --- 4 files changed, 9 insertions(+), 38 deletions(-) diff --git a/drivers/acpi/property.c b/drivers/acpi/property.c index 5b4c659c95d4..03cb46018920 100644 --- a/drivers/acpi/property.c +++ b/drivers/acpi/property.c @@ -587,23 +587,6 @@ static int acpi_data_get_property_array(const struct acpi_device_data *data, return 0; } -static struct fwnode_handle * -acpi_fwnode_get_named_child_node(const struct fwnode_handle *fwnode, - const char *childname) -{ - struct fwnode_handle *child; - - /* - * Find first matching named child node of this fwnode. - * For ACPI this will be a data only sub-node. - */ - fwnode_for_each_child_node(fwnode, child) - if (acpi_data_node_match(child, childname)) - return child; - - return NULL; -} - /** * __acpi_node_get_property_reference - returns handle to the referenced object * @fwnode: Firmware node to get the property from @@ -712,7 +695,7 @@ int __acpi_node_get_property_reference(const struct fwnode_handle *fwnode, for (ref_fwnode = acpi_fwnode_handle(device); element < end && element->type == ACPI_TYPE_STRING; element++) { - ref_fwnode = acpi_fwnode_get_named_child_node( + ref_fwnode = fwnode_get_named_child_node( ref_fwnode, element->string.pointer); if (!ref_fwnode) return -EINVAL; @@ -1342,7 +1325,6 @@ acpi_fwnode_device_get_match_data(const struct fwnode_handle *fwnode, acpi_fwnode_property_read_string_array, \ .get_parent = acpi_node_get_parent, \ .get_next_child_node = acpi_get_next_subnode, \ - .get_named_child_node = acpi_fwnode_get_named_child_node, \ .get_reference_args = acpi_fwnode_get_reference_args, \ .graph_get_next_endpoint = \ acpi_graph_get_next_endpoint, \ diff --git a/drivers/base/property.c b/drivers/base/property.c index 4db710e2ce34..802f55f9fab9 100644 --- a/drivers/base/property.c +++ b/drivers/base/property.c @@ -1111,7 +1111,14 @@ struct fwnode_handle * fwnode_get_named_child_node(const struct fwnode_handle *fwnode, const char *childname) { - return fwnode_call_ptr_op(fwnode, get_named_child_node, childname); + char name[FWNODE_NAME_MAX_SIZE]; + struct fwnode_handle *child; + + fwnode_for_each_child_node(fwnode, child) + if (!fwnode_get_name(child, name) && + !strcmp(name, childname)) + return child; + return NULL; } EXPORT_SYMBOL_GPL(fwnode_get_named_child_node); diff --git a/drivers/of/property.c b/drivers/of/property.c index 9bc8fe136fa3..34b157921568 100644 --- a/drivers/of/property.c +++ b/drivers/of/property.c @@ -895,20 +895,6 @@ of_fwnode_get_next_child_node(const struct fwnode_handle *fwnode, to_of_node(child))); } -static struct fwnode_handle * -of_fwnode_get_named_child_node(const struct fwnode_handle *fwnode, - const char *childname) -{ - const struct device_node *node = to_of_node(fwnode); - struct device_node *child; - - for_each_available_child_of_node(node, child) - if (!of_node_cmp(child->name, childname)) - return of_fwnode_handle(child); - - return NULL; -} - static int of_fwnode_get_reference_args(const struct fwnode_handle *fwnode, const char *prop, const char *nargs_prop, @@ -1005,7 +991,6 @@ const struct fwnode_operations of_fwnode_ops = { .property_read_string_array = of_fwnode_property_read_string_array, .get_parent = of_fwnode_get_parent, .get_next_child_node = of_fwnode_get_next_child_node, - .get_named_child_node = of_fwnode_get_named_child_node, .get_reference_args = of_fwnode_get_reference_args, .graph_get_next_endpoint = of_fwnode_graph_get_next_endpoint, .graph_get_remote_endpoint = of_fwnode_graph_get_remote_endpoint, diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h index cc234f5d2b40..45df74f91603 100644 --- a/include/linux/fwnode.h +++ b/include/linux/fwnode.h @@ -92,9 +92,6 @@ struct fwnode_operations { struct fwnode_handle * (*get_next_child_node)(const struct fwnode_handle *fwnode, struct fwnode_handle *child); - struct fwnode_handle * - (*get_named_child_node)(const struct fwnode_handle *fwnode, - const char *name); int (*get_reference_args)(const struct fwnode_handle *fwnode, const char *prop, const char *nargs_prop, unsigned int nargs, unsigned int index,