From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751378AbdEHV77 (ORCPT ); Mon, 8 May 2017 17:59:59 -0400 Received: from mail-wm0-f45.google.com ([74.125.82.45]:33385 "EHLO mail-wm0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750808AbdEHV76 (ORCPT ); Mon, 8 May 2017 17:59:58 -0400 From: Jon Mason To: Greg Kroah-Hartman Cc: linux-kernel@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com Subject: [PATCH] driver core: platform: Add ability to find resource by name or index Date: Mon, 8 May 2017 17:59:48 -0400 Message-Id: <1494280788-9588-1-git-send-email-jon.mason@broadcom.com> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org It is not always possible to find a resource via the name. This may be due to using previous versions of device tree without the names or using ACPI. To allow for resources to be discovered by either the name or the index, a wrapper was created. It attempts to find the resource via name, and if unable to find the resource, will then attempt to find the resource via index. Suggested-by: Florian Fainelli Signed-off-by: Jon Mason --- include/linux/platform_device.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h index 98c2a7c7108e..0f42e9cf96de 100644 --- a/include/linux/platform_device.h +++ b/include/linux/platform_device.h @@ -59,6 +59,21 @@ extern struct resource *platform_get_resource_byname(struct platform_device *, extern int platform_get_irq_byname(struct platform_device *, const char *); extern int platform_add_devices(struct platform_device **, int); +static inline struct resource * +platform_get_resource_by_name_or_index(struct platform_device *dev, + unsigned int type, + const char *name, + unsigned int num) +{ + struct resource *r; + + r = platform_get_resource_byname(dev, type, name); + if (r) + return r; + + return platform_get_resource(dev, type, num); +} + struct platform_device_info { struct device *parent; struct fwnode_handle *fwnode; -- 2.7.4