From patchwork Mon Nov 5 09:17:27 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heikki Krogerus X-Patchwork-Id: 10667655 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9FBCF13B5 for ; Mon, 5 Nov 2018 09:17:46 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8E2512957B for ; Mon, 5 Nov 2018 09:17:46 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8262229631; Mon, 5 Nov 2018 09:17:46 +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=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 159732957B for ; Mon, 5 Nov 2018 09:17:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726228AbeKESgX (ORCPT ); Mon, 5 Nov 2018 13:36:23 -0500 Received: from mga01.intel.com ([192.55.52.88]:34873 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726474AbeKESgW (ORCPT ); Mon, 5 Nov 2018 13:36:22 -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 fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Nov 2018 01:17:38 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,467,1534834800"; d="scan'208";a="105337708" Received: from black.fi.intel.com (HELO black.fi.intel.com.) ([10.237.72.28]) by fmsmga001.fm.intel.com with ESMTP; 05 Nov 2018 01:17:36 -0800 From: Heikki Krogerus To: "Rafael J. Wysocki" Cc: Mika Westerberg , Andy Shevchenko , linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org Subject: [PATCH 4/4] device property: Drop get_named_child_node callback Date: Mon, 5 Nov 2018 12:17:27 +0300 Message-Id: <20181105091727.25544-5-heikki.krogerus@linux.intel.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181105091727.25544-1-heikki.krogerus@linux.intel.com> References: <20181105091727.25544-1-heikki.krogerus@linux.intel.com> MIME-Version: 1.0 Sender: linux-acpi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP By using fwnode_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 | 10 +++++++++- drivers/of/property.c | 15 --------------- include/linux/fwnode.h | 3 --- 4 files changed, 10 insertions(+), 38 deletions(-) diff --git a/drivers/acpi/property.c b/drivers/acpi/property.c index 75854e07ed64..6c38cd73e4c0 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; @@ -1325,7 +1308,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 1e4eb7ab2b84..06ba83d73517 100644 --- a/drivers/base/property.c +++ b/drivers/base/property.c @@ -1111,7 +1111,15 @@ 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); + struct fwnode_handle *child; + const char *name; + + fwnode_for_each_child_node(fwnode, child) { + name = fwnode_name(child); + if (name && !strcasecmp(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 ac7b0b6c2d4d..60b590fc5b99 100644 --- a/drivers/of/property.c +++ b/drivers/of/property.c @@ -890,20 +890,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, @@ -1000,7 +986,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 2e445fed4df4..83f8ec3754d0 100644 --- a/include/linux/fwnode.h +++ b/include/linux/fwnode.h @@ -90,9 +90,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,