[PATCH 08/12] of/platform: provide a separate routine for device initialization

From: Bartosz Golaszewski
Date: Fri May 11 2018 - 12:21:52 EST


From: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx>

The early platform device framework will need to initialize the
platform device objects without them being allocated in
of_device_alloc(). Provide a routine that allows it.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx>
---
drivers/of/platform.c | 22 ++++++++++++++--------
1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/drivers/of/platform.c b/drivers/of/platform.c
index 24791e558ec5..0e554fe1f325 100644
--- a/drivers/of/platform.c
+++ b/drivers/of/platform.c
@@ -132,6 +132,19 @@ int of_device_init_resources(struct platform_device *pdev,
return 0;
}

+static void of_device_init(struct platform_device *pdev, struct device_node *np,
+ const char *bus_id, struct device *parent)
+{
+ pdev->dev.of_node = of_node_get(np);
+ pdev->dev.fwnode = &np->fwnode;
+ pdev->dev.parent = parent ? : &platform_bus;
+
+ if (bus_id)
+ dev_set_name(&pdev->dev, "%s", bus_id);
+ else
+ of_device_make_bus_id(&pdev->dev);
+}
+
/**
* of_device_alloc - Allocate and initialize an of_device
* @np: device node to assign to device
@@ -155,14 +168,7 @@ struct platform_device *of_device_alloc(struct device_node *np,
return NULL;
}

- dev->dev.of_node = of_node_get(np);
- dev->dev.fwnode = &np->fwnode;
- dev->dev.parent = parent ? : &platform_bus;
-
- if (bus_id)
- dev_set_name(&dev->dev, "%s", bus_id);
- else
- of_device_make_bus_id(&dev->dev);
+ of_device_init(dev, np, bus_id, parent);

return dev;
}
--
2.17.0