diff options
Diffstat (limited to 'drivers/acpi/property.c')
| -rw-r--r-- | drivers/acpi/property.c | 14 | 
1 files changed, 5 insertions, 9 deletions
| diff --git a/drivers/acpi/property.c b/drivers/acpi/property.c index e312ebaed8db..2366f54d8e9c 100644 --- a/drivers/acpi/property.c +++ b/drivers/acpi/property.c @@ -1084,21 +1084,17 @@ struct fwnode_handle *acpi_get_next_subnode(const struct fwnode_handle *fwnode,   * Returns parent node of an ACPI device or data firmware node or %NULL if   * not available.   */ -struct fwnode_handle *acpi_node_get_parent(const struct fwnode_handle *fwnode) +static struct fwnode_handle * +acpi_node_get_parent(const struct fwnode_handle *fwnode)  {  	if (is_acpi_data_node(fwnode)) {  		/* All data nodes have parent pointer so just return that */  		return to_acpi_data_node(fwnode)->parent;  	} else if (is_acpi_device_node(fwnode)) { -		acpi_handle handle, parent_handle; - -		handle = to_acpi_device_node(fwnode)->handle; -		if (ACPI_SUCCESS(acpi_get_parent(handle, &parent_handle))) { -			struct acpi_device *adev; +		struct device *dev = to_acpi_device_node(fwnode)->dev.parent; -			if (!acpi_bus_get_device(parent_handle, &adev)) -				return acpi_fwnode_handle(adev); -		} +		if (dev) +			return acpi_fwnode_handle(to_acpi_device(dev));  	}  	return NULL; |