opal_ipmi_init and opal_flash_init are equivalent, except for the
compatbile string. Merge these two into a common opal_pdev_init
function.

Signed-off-by: Jeremy Kerr <j...@ozlabs.org>

---
 arch/powerpc/platforms/powernv/opal.c |   21 ++++++---------------
 1 file changed, 6 insertions(+), 15 deletions(-)

diff --git a/arch/powerpc/platforms/powernv/opal.c 
b/arch/powerpc/platforms/powernv/opal.c
index 2241565..b03ac9e 100644
--- a/arch/powerpc/platforms/powernv/opal.c
+++ b/arch/powerpc/platforms/powernv/opal.c
@@ -693,21 +693,13 @@ static void __init opal_dump_region_init(void)
                        "rc = %d\n", rc);
 }
 
-static void opal_flash_init(struct device_node *opal_node)
+static void opal_pdev_init(struct device_node *opal_node,
+               const char *compatible)
 {
        struct device_node *np;
 
        for_each_child_of_node(opal_node, np)
-               if (of_device_is_compatible(np, "ibm,opal-flash"))
-                       of_platform_device_create(np, NULL, NULL);
-}
-
-static void opal_ipmi_init(struct device_node *opal_node)
-{
-       struct device_node *np;
-
-       for_each_child_of_node(opal_node, np)
-               if (of_device_is_compatible(np, "ibm,opal-ipmi"))
+               if (of_device_is_compatible(np, compatible))
                        of_platform_device_create(np, NULL, NULL);
 }
 
@@ -835,10 +827,9 @@ static int __init opal_init(void)
                opal_msglog_init();
        }
 
-       /* Initialize OPAL IPMI backend */
-       opal_ipmi_init(opal_node);
-
-       opal_flash_init(opal_node);
+       /* Initialize platform devices: IPMI backend & flash interface */
+       opal_pdev_init(opal_node, "ibm,opal-ipmi");
+       opal_pdev_init(opal_node, "ibm,opal-flash");
 
        return 0;
 }
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to