[PATCH v2] powernv: Simplify searching for compatible device nodes
Cyril Bur
cyrilbur at gmail.com
Wed Oct 19 16:58:15 AEDT 2016
On Wed, 2016-08-10 at 19:32 -0500, Jack Miller wrote:
> 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.
>
Hi Michael,
It seems this patch hasn't made it in. Without it linux cannot find the
flash on p9 as skiboot has moved the node to a more appropriate place.
Thanks,
Cyril
Cc: stable at vger.kernel.org # v4.6+
> Signed-off-by: Jack Miller <jack at codezen.org>
> ---
> 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();
More information about the Linuxppc-dev
mailing list