|
@@ -211,6 +211,17 @@ static int cpufreq_init(struct cpufreq_policy *policy)
|
|
|
/* OPPs might be populated at runtime, don't check for error here */
|
|
|
of_init_opp_table(cpu_dev);
|
|
|
|
|
|
+ /*
|
|
|
+ * But we need OPP table to function so if it is not there let's
|
|
|
+ * give platform code chance to provide it for us.
|
|
|
+ */
|
|
|
+ ret = dev_pm_opp_get_opp_count(cpu_dev);
|
|
|
+ if (ret <= 0) {
|
|
|
+ pr_debug("OPP table is not ready, deferring probe\n");
|
|
|
+ ret = -EPROBE_DEFER;
|
|
|
+ goto out_free_opp;
|
|
|
+ }
|
|
|
+
|
|
|
priv = kzalloc(sizeof(*priv), GFP_KERNEL);
|
|
|
if (!priv) {
|
|
|
ret = -ENOMEM;
|