On Wed, 3 Aug 2016 12:18:00 -0500 Jack Miller <j...@codezen.org> wrote:
> (rebased on powerpc/next) > > 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: Jack Miller <j...@codezen.org> Using a version of the related skiboot patch that may not be the final one: Tested-by: Cyril Bur <cyril...@gmail.com> > --- > arch/powerpc/platforms/powernv/opal.c | 24 +++++++----------------- > 1 file changed, 7 insertions(+), 17 deletions(-) > > diff --git a/arch/powerpc/platforms/powernv/opal.c > b/arch/powerpc/platforms/powernv/opal.c > index 8b4fc68..9db12ce 100644 > --- a/arch/powerpc/platforms/powernv/opal.c > +++ b/arch/powerpc/platforms/powernv/opal.c > @@ -631,21 +631,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); > } > > @@ -717,7 +707,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(); > @@ -752,12 +742,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();