|
@@ -2929,6 +2929,17 @@ static int __clk_core_init(struct clk_core *core)
|
|
core->orphan = true;
|
|
core->orphan = true;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
+ * optional platform-specific magic
|
|
|
|
+ *
|
|
|
|
+ * The .init callback is not used by any of the basic clock types, but
|
|
|
|
+ * exists for weird hardware that must perform initialization magic.
|
|
|
|
+ * Please consider other ways of solving initialization problems before
|
|
|
|
+ * using this callback, as its use is discouraged.
|
|
|
|
+ */
|
|
|
|
+ if (core->ops->init)
|
|
|
|
+ core->ops->init(core->hw);
|
|
|
|
+
|
|
/*
|
|
/*
|
|
* Set clk's accuracy. The preferred method is to use
|
|
* Set clk's accuracy. The preferred method is to use
|
|
* .recalc_accuracy. For simple clocks and lazy developers the default
|
|
* .recalc_accuracy. For simple clocks and lazy developers the default
|
|
@@ -3006,17 +3017,6 @@ static int __clk_core_init(struct clk_core *core)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- /*
|
|
|
|
- * optional platform-specific magic
|
|
|
|
- *
|
|
|
|
- * The .init callback is not used by any of the basic clock types, but
|
|
|
|
- * exists for weird hardware that must perform initialization magic.
|
|
|
|
- * Please consider other ways of solving initialization problems before
|
|
|
|
- * using this callback, as its use is discouraged.
|
|
|
|
- */
|
|
|
|
- if (core->ops->init)
|
|
|
|
- core->ops->init(core->hw);
|
|
|
|
-
|
|
|
|
kref_init(&core->ref);
|
|
kref_init(&core->ref);
|
|
out:
|
|
out:
|
|
clk_pm_runtime_put(core);
|
|
clk_pm_runtime_put(core);
|