cpufreq: scmi: Fix OPP addition failure with a dummy clock provider
authorSudeep Holla <sudeep.holla@arm.com>
Tue, 10 Nov 2020 11:10:40 +0000 (11:10 +0000)
committerViresh Kumar <viresh.kumar@linaro.org>
Tue, 17 Nov 2020 04:34:28 +0000 (10:04 +0530)
commit8410e7f3b31e53bfa7a34c282b4313e79ed7ff8d
tree6d4bef50b52f5b4227e50c07875f26ef7c740f7d
parente010d1d25e47642fb91023479a4965000cf934a8
cpufreq: scmi: Fix OPP addition failure with a dummy clock provider

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.

SCMI performance domain re-used clock bindings to keep it simple. However
with the above mentioned change, if clock property is present in a device
node, opps fails to get added with below errors until clk_get succeeds.

 cpu0: failed to add opp 450000000Hz
 cpu0: failed to add opps to the device
 ....(errors on cpu1-cpu4)
 cpu5: failed to add opp 450000000Hz
 cpu5: failed to add opps to the device

So, in order to fix the issue, we need to register dummy clock provider.
With the dummy clock provider, clk_get returns NULL(no errors!), then opp
core proceeds to add OPPs for the CPUs.

Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
Fixes: dd461cd9183f ("opp: Allow dev_pm_opp_get_opp_table() to return -EPROBE_DEFER")
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
drivers/cpufreq/scmi-cpufreq.c