[PATCH v2 2/2] firmware: arm_scmi: Move away from clock devicetree bindings

From: Sudeep Holla
Date: Wed Oct 21 2020 - 14:31:22 EST


Commit dd461cd9183f ("opp: Allow dev_pm_opp_get_opp_table() to return
-EPROBE_DEFER") handles -EPROBE_DEFER for the clock/interconnects within
_allocate_opp_table() which is called from dev_pm_opp_add and it
now propagates the error back to the caller.

This breaks SCMI performance domains as we will never succeed to add any
OPPs. A quick fix would be to register dummy clocks which is completely
ugly and bigger fix which may break with some other change in future.

It is better to add separate binding for the same and use it. A separate
SCMI performance domain binding is introduced and let us use it here.

Signed-off-by: Sudeep Holla <sudeep.holla@xxxxxxx>
---
drivers/firmware/arm_scmi/perf.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/firmware/arm_scmi/perf.c b/drivers/firmware/arm_scmi/perf.c
index 3e1e87012c95..a79c095662a7 100644
--- a/drivers/firmware/arm_scmi/perf.c
+++ b/drivers/firmware/arm_scmi/perf.c
@@ -629,13 +629,13 @@ static void scmi_perf_domain_init_fc(const struct scmi_handle *handle,
/* Device specific ops */
static int scmi_dev_domain_id(struct device *dev)
{
- struct of_phandle_args clkspec;
+ struct of_phandle_args spec;

- if (of_parse_phandle_with_args(dev->of_node, "clocks", "#clock-cells",
- 0, &clkspec))
+ if (of_parse_phandle_with_args(dev->of_node, "arm,scmi-perf-domain",
+ "#arm,scmi-perf-domain-cells", 0, &spec))
return -EINVAL;

- return clkspec.args[0];
+ return spec.args[0];
}

static int scmi_dvfs_device_opps_add(const struct scmi_handle *handle,
--
2.17.1