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 <sb...@kernel.org>
Signed-off-by: Viresh Kumar <viresh.ku...@linaro.org>
---
 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

Reply via email to