Commit 9e4f51bd authored by Jack Miller's avatar Jack Miller Committed by Michael Ellerman

powerpc/powernv: Simplify searching for compatible device nodes

This condenses the opal node searching into a single function that finds
all compatible nodes, instead of just searching the ibm,opal children,
for ipmi, flash, and prd similar to how opal-i2c nodes are found.
Signed-off-by: default avatarJack Miller <jack@codezen.org>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 29a969b7
...@@ -632,21 +632,11 @@ static void __init opal_dump_region_init(void) ...@@ -632,21 +632,11 @@ static void __init opal_dump_region_init(void)
"rc = %d\n", rc); "rc = %d\n", rc);
} }
static void opal_pdev_init(struct device_node *opal_node, static void opal_pdev_init(const char *compatible)
const char *compatible)
{ {
struct device_node *np; struct device_node *np;
for_each_child_of_node(opal_node, np) for_each_compatible_node(np, NULL, compatible)
if (of_device_is_compatible(np, compatible))
of_platform_device_create(np, NULL, NULL);
}
static void opal_i2c_create_devs(void)
{
struct device_node *np;
for_each_compatible_node(np, NULL, "ibm,opal-i2c")
of_platform_device_create(np, NULL, NULL); of_platform_device_create(np, NULL, NULL);
} }
...@@ -718,7 +708,7 @@ static int __init opal_init(void) ...@@ -718,7 +708,7 @@ static int __init opal_init(void)
opal_hmi_handler_init(); opal_hmi_handler_init();
/* Create i2c platform devices */ /* Create i2c platform devices */
opal_i2c_create_devs(); opal_pdev_init("ibm,opal-i2c");
/* Setup a heatbeat thread if requested by OPAL */ /* Setup a heatbeat thread if requested by OPAL */
opal_init_heartbeat(); opal_init_heartbeat();
...@@ -753,12 +743,12 @@ static int __init opal_init(void) ...@@ -753,12 +743,12 @@ static int __init opal_init(void)
} }
/* Initialize platform devices: IPMI backend, PRD & flash interface */ /* Initialize platform devices: IPMI backend, PRD & flash interface */
opal_pdev_init(opal_node, "ibm,opal-ipmi"); opal_pdev_init("ibm,opal-ipmi");
opal_pdev_init(opal_node, "ibm,opal-flash"); opal_pdev_init("ibm,opal-flash");
opal_pdev_init(opal_node, "ibm,opal-prd"); opal_pdev_init("ibm,opal-prd");
/* Initialise platform device: oppanel interface */ /* Initialise platform device: oppanel interface */
opal_pdev_init(opal_node, "ibm,opal-oppanel"); opal_pdev_init("ibm,opal-oppanel");
/* Initialise OPAL kmsg dumper for flushing console on panic */ /* Initialise OPAL kmsg dumper for flushing console on panic */
opal_kmsg_init(); opal_kmsg_init();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment