Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+7 −17
Original line number Diff line number Diff line
@@ -632,21 +632,11 @@ static void __init opal_dump_region_init(void)
			"rc = %d\n", rc);
}

static void opal_pdev_init(struct device_node *opal_node,
		const char *compatible)
static void opal_pdev_init(const char *compatible)
{
	struct device_node *np;

	for_each_child_of_node(opal_node, np)
		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")
	for_each_compatible_node(np, NULL, compatible)
		of_platform_device_create(np, NULL, NULL);
}

@@ -718,7 +708,7 @@ static int __init opal_init(void)
	opal_hmi_handler_init();

	/* Create i2c platform devices */
	opal_i2c_create_devs();
	opal_pdev_init("ibm,opal-i2c");

	/* Setup a heatbeat thread if requested by OPAL */
	opal_init_heartbeat();
@@ -753,12 +743,12 @@ static int __init opal_init(void)
	}

	/* Initialize platform devices: IPMI backend, PRD & flash interface */
	opal_pdev_init(opal_node, "ibm,opal-ipmi");
	opal_pdev_init(opal_node, "ibm,opal-flash");
	opal_pdev_init(opal_node, "ibm,opal-prd");
	opal_pdev_init("ibm,opal-ipmi");
	opal_pdev_init("ibm,opal-flash");
	opal_pdev_init("ibm,opal-prd");

	/* 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 */
	opal_kmsg_init();