* [PATCH v2] powernv: Simplify searching for compatible device nodes
2016-08-03 16:44 [PATCH] powernv: Search for new flash DT node location Jack Miller
@ 2016-08-03 17:18 ` Jack Miller
2016-08-04 7:27 ` Cyril Bur
0 siblings, 1 reply; 7+ messages in thread
From: Jack Miller @ 2016-08-03 17:18 UTC (permalink / raw)
To: mpe, linuxppc-dev; +Cc: jk, stewart, benh
(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 <jack@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();
--
2.9.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2] powernv: Simplify searching for compatible device nodes
2016-08-03 17:18 ` [PATCH v2] powernv: Simplify searching for compatible device nodes Jack Miller
@ 2016-08-04 7:27 ` Cyril Bur
2016-08-04 8:39 ` Michael Ellerman
0 siblings, 1 reply; 7+ messages in thread
From: Cyril Bur @ 2016-08-04 7:27 UTC (permalink / raw)
To: Jack Miller, linuxppc-dev; +Cc: mpe, stewart, jk
On Wed, 3 Aug 2016 12:18:00 -0500
Jack Miller <jack@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 <jack@codezen.org>
Using a version of the related skiboot patch that may not be the final one:
Tested-by: Cyril Bur <cyrilbur@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();
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] powernv: Simplify searching for compatible device nodes
2016-08-04 7:27 ` Cyril Bur
@ 2016-08-04 8:39 ` Michael Ellerman
2016-08-04 16:03 ` Jack Miller
0 siblings, 1 reply; 7+ messages in thread
From: Michael Ellerman @ 2016-08-04 8:39 UTC (permalink / raw)
To: Cyril Bur, Jack Miller, linuxppc-dev; +Cc: stewart, jk
Cyril Bur <cyrilbur@gmail.com> writes:
> On Wed, 3 Aug 2016 12:18:00 -0500
> Jack Miller <jack@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 <jack@codezen.org>
>
> Using a version of the related skiboot patch that may not be the final one:
> Tested-by: Cyril Bur <cyrilbur@gmail.com>
Thanks. The part I'm still not clear on is *why* we're moving them in
skiboot?
cheers
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] powernv: Simplify searching for compatible device nodes
2016-08-04 8:39 ` Michael Ellerman
@ 2016-08-04 16:03 ` Jack Miller
0 siblings, 0 replies; 7+ messages in thread
From: Jack Miller @ 2016-08-04 16:03 UTC (permalink / raw)
To: Michael Ellerman; +Cc: Cyril Bur, linuxppc-dev, stewart, jk
On Thu, Aug 04, 2016 at 06:39:24PM +1000, Michael Ellerman wrote:
> Cyril Bur <cyrilbur@gmail.com> writes:
>
> > On Wed, 3 Aug 2016 12:18:00 -0500
> > Jack Miller <jack@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 <jack@codezen.org>
> >
> > Using a version of the related skiboot patch that may not be the final one:
> > Tested-by: Cyril Bur <cyrilbur@gmail.com>
>
> Thanks. The part I'm still not clear on is *why* we're moving them in
> skiboot?
Ostensibly so the actual flash device nodes can inherit the #size-cells /
#address-cells properties properly set in the flash parent node instead of
the ibm,opal node (which has them set to 0). This would be more correct if
anything actually started to honor these settings.
The only concrete effect though is stopping dtc (and thus fwts) from whinging
when you run skiboot's output DT through it.
- Jack
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2] powernv: Simplify searching for compatible device nodes
@ 2016-08-11 0:32 Jack Miller
2016-10-19 5:58 ` Cyril Bur
2016-11-14 12:17 ` [v2] " Michael Ellerman
0 siblings, 2 replies; 7+ messages in thread
From: Jack Miller @ 2016-08-11 0:32 UTC (permalink / raw)
To: stewart, linuxppc-dev
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 <jack@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();
--
2.9.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2] powernv: Simplify searching for compatible device nodes
2016-08-11 0:32 [PATCH v2] powernv: Simplify searching for compatible device nodes Jack Miller
@ 2016-10-19 5:58 ` Cyril Bur
2016-11-14 12:17 ` [v2] " Michael Ellerman
1 sibling, 0 replies; 7+ messages in thread
From: Cyril Bur @ 2016-10-19 5:58 UTC (permalink / raw)
To: Michael Ellerman; +Cc: stable, Jack Miller, stewart, linuxppc-dev
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@vger.kernel.org # v4.6+
> Signed-off-by: Jack Miller <jack@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();
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [v2] powernv: Simplify searching for compatible device nodes
2016-08-11 0:32 [PATCH v2] powernv: Simplify searching for compatible device nodes Jack Miller
2016-10-19 5:58 ` Cyril Bur
@ 2016-11-14 12:17 ` Michael Ellerman
1 sibling, 0 replies; 7+ messages in thread
From: Michael Ellerman @ 2016-11-14 12:17 UTC (permalink / raw)
To: Jack Miller, stewart, linuxppc-dev
On Thu, 2016-11-08 at 00:32:40 UTC, 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.
>
> Signed-off-by: Jack Miller <jack@codezen.org>
Applied to powerpc next, thanks.
https://git.kernel.org/powerpc/c/9e4f51bdaf880208869aa001ee94a4
cheers
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2016-11-14 12:17 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-11 0:32 [PATCH v2] powernv: Simplify searching for compatible device nodes Jack Miller
2016-10-19 5:58 ` Cyril Bur
2016-11-14 12:17 ` [v2] " Michael Ellerman
-- strict thread matches above, loose matches on Subject: below --
2016-08-03 16:44 [PATCH] powernv: Search for new flash DT node location Jack Miller
2016-08-03 17:18 ` [PATCH v2] powernv: Simplify searching for compatible device nodes Jack Miller
2016-08-04 7:27 ` Cyril Bur
2016-08-04 8:39 ` Michael Ellerman
2016-08-04 16:03 ` Jack Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).