2018-04-10 09:09:02

by Viresh Kumar

[permalink] [raw]
Subject: [PATCH] of: Don't create platform device for OPP tables

The OPP tables are present as separate nodes, whose phandle is used in
the "operating-points-v2" property of devices. Currently the OF core
creates a platform device for the OPP table unconditionally, which is
not used by any kernel code.

Skip creating OPP table platform devices.

Reported-by: Stephen Boyd <[email protected]>
Signed-off-by: Viresh Kumar <[email protected]>
---
drivers/of/platform.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/drivers/of/platform.c b/drivers/of/platform.c
index c00d81dfac0b..aaae5d90433d 100644
--- a/drivers/of/platform.c
+++ b/drivers/of/platform.c
@@ -356,6 +356,12 @@ static int of_platform_bus_create(struct device_node *bus,
return 0;
}

+ /* OPP tables have separate nodes, but we don't want devices for them */
+ if (unlikely(of_device_is_compatible(bus, "operating-points-v2"))) {
+ pr_debug("%s() - skipping OPP node %pOF\n", __func__, bus);
+ return 0;
+ }
+
if (of_node_check_flag(bus, OF_POPULATED_BUS)) {
pr_debug("%s() - skipping %pOF, already populated\n",
__func__, bus);
--
2.15.0.194.g9af6a3dea062



2018-04-10 18:26:56

by Stephen Boyd

[permalink] [raw]
Subject: Re: [PATCH] of: Don't create platform device for OPP tables

Quoting Viresh Kumar (2018-04-10 02:05:22)
> The OPP tables are present as separate nodes, whose phandle is used in
> the "operating-points-v2" property of devices. Currently the OF core
> creates a platform device for the OPP table unconditionally, which is
> not used by any kernel code.
>
> Skip creating OPP table platform devices.
>
> Reported-by: Stephen Boyd <[email protected]>
> Signed-off-by: Viresh Kumar <[email protected]>
> ---

Reviewed-by: Stephen Boyd <[email protected]>


2018-04-13 13:09:46

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH] of: Don't create platform device for OPP tables

On Tue, Apr 10, 2018 at 4:05 AM, Viresh Kumar <[email protected]> wrote:
> The OPP tables are present as separate nodes, whose phandle is used in
> the "operating-points-v2" property of devices. Currently the OF core
> creates a platform device for the OPP table unconditionally, which is
> not used by any kernel code.
>
> Skip creating OPP table platform devices.
>
> Reported-by: Stephen Boyd <[email protected]>
> Signed-off-by: Viresh Kumar <[email protected]>
> ---
> drivers/of/platform.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/of/platform.c b/drivers/of/platform.c
> index c00d81dfac0b..aaae5d90433d 100644
> --- a/drivers/of/platform.c
> +++ b/drivers/of/platform.c
> @@ -356,6 +356,12 @@ static int of_platform_bus_create(struct device_node *bus,
> return 0;
> }
>
> + /* OPP tables have separate nodes, but we don't want devices for them */
> + if (unlikely(of_device_is_compatible(bus, "operating-points-v2"))) {

Can you make this a match table instead. I could imagine we may have
some other cases to add.

> + pr_debug("%s() - skipping OPP node %pOF\n", __func__, bus);
> + return 0;
> + }
> +
> if (of_node_check_flag(bus, OF_POPULATED_BUS)) {
> pr_debug("%s() - skipping %pOF, already populated\n",
> __func__, bus);
> --
> 2.15.0.194.g9af6a3dea062
>