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();

Reply via email to