[PATCH] driver core: platform: Add ability to find resource by name or index

From: Jon Mason
Date: Mon May 08 2017 - 18:00:01 EST


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 <f.fainelli@xxxxxxxxx>
Signed-off-by: Jon Mason <jon.mason@xxxxxxxxxxxx>
---
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