From: Bartosz Golaszewski <bgolaszew...@baylibre.com>

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 <bgolaszew...@baylibre.com>
---
 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

Reply via email to