clk: meson: g12: use devm variant to register notifiers
Until now, nothing was done to unregister the dvfs clock notifiers of the Amlogic g12 SoC family. This is not great but this driver was not really expected to be unloaded. With the ongoing effort to build everything as module for this platform, this needs to be cleanly handled. Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> Link: https://lore.kernel.org/r/20201021163847.595189-3-jbrunet@baylibre.com Signed-off-by: Stephen Boyd <sboyd@kernel.org>
This commit is contained in:
parent
6d30d50d03
commit
e6fb7aee48
|
@ -5171,8 +5171,8 @@ static int meson_g12a_dvfs_setup_common(struct device *dev,
|
||||||
g12a_cpu_clk_postmux0_nb_data.xtal = xtal;
|
g12a_cpu_clk_postmux0_nb_data.xtal = xtal;
|
||||||
notifier_clk = devm_clk_hw_get_clk(dev, &g12a_cpu_clk_postmux0.hw,
|
notifier_clk = devm_clk_hw_get_clk(dev, &g12a_cpu_clk_postmux0.hw,
|
||||||
DVFS_CON_ID);
|
DVFS_CON_ID);
|
||||||
ret = clk_notifier_register(notifier_clk,
|
ret = devm_clk_notifier_register(dev, notifier_clk,
|
||||||
&g12a_cpu_clk_postmux0_nb_data.nb);
|
&g12a_cpu_clk_postmux0_nb_data.nb);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev, "failed to register the cpu_clk_postmux0 notifier\n");
|
dev_err(dev, "failed to register the cpu_clk_postmux0 notifier\n");
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -5181,7 +5181,8 @@ static int meson_g12a_dvfs_setup_common(struct device *dev,
|
||||||
/* Setup clock notifier for cpu_clk_dyn mux */
|
/* Setup clock notifier for cpu_clk_dyn mux */
|
||||||
notifier_clk = devm_clk_hw_get_clk(dev, &g12a_cpu_clk_dyn.hw,
|
notifier_clk = devm_clk_hw_get_clk(dev, &g12a_cpu_clk_dyn.hw,
|
||||||
DVFS_CON_ID);
|
DVFS_CON_ID);
|
||||||
ret = clk_notifier_register(notifier_clk, &g12a_cpu_clk_mux_nb);
|
ret = devm_clk_notifier_register(dev, notifier_clk,
|
||||||
|
&g12a_cpu_clk_mux_nb);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev, "failed to register the cpu_clk_dyn notifier\n");
|
dev_err(dev, "failed to register the cpu_clk_dyn notifier\n");
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -5207,7 +5208,8 @@ static int meson_g12b_dvfs_setup(struct platform_device *pdev)
|
||||||
/* Setup clock notifier for cpu_clk mux */
|
/* Setup clock notifier for cpu_clk mux */
|
||||||
notifier_clk = devm_clk_hw_get_clk(dev, &g12b_cpu_clk.hw,
|
notifier_clk = devm_clk_hw_get_clk(dev, &g12b_cpu_clk.hw,
|
||||||
DVFS_CON_ID);
|
DVFS_CON_ID);
|
||||||
ret = clk_notifier_register(notifier_clk, &g12a_cpu_clk_mux_nb);
|
ret = devm_clk_notifier_register(dev, notifier_clk,
|
||||||
|
&g12a_cpu_clk_mux_nb);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev, "failed to register the cpu_clk notifier\n");
|
dev_err(dev, "failed to register the cpu_clk notifier\n");
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -5216,8 +5218,8 @@ static int meson_g12b_dvfs_setup(struct platform_device *pdev)
|
||||||
/* Setup clock notifier for sys1_pll */
|
/* Setup clock notifier for sys1_pll */
|
||||||
notifier_clk = devm_clk_hw_get_clk(dev, &g12b_sys1_pll.hw,
|
notifier_clk = devm_clk_hw_get_clk(dev, &g12b_sys1_pll.hw,
|
||||||
DVFS_CON_ID);
|
DVFS_CON_ID);
|
||||||
ret = clk_notifier_register(notifier_clk,
|
ret = devm_clk_notifier_register(dev, notifier_clk,
|
||||||
&g12b_cpu_clk_sys1_pll_nb_data.nb);
|
&g12b_cpu_clk_sys1_pll_nb_data.nb);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev, "failed to register the sys1_pll notifier\n");
|
dev_err(dev, "failed to register the sys1_pll notifier\n");
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -5229,8 +5231,8 @@ static int meson_g12b_dvfs_setup(struct platform_device *pdev)
|
||||||
g12b_cpub_clk_postmux0_nb_data.xtal = xtal;
|
g12b_cpub_clk_postmux0_nb_data.xtal = xtal;
|
||||||
notifier_clk = devm_clk_hw_get_clk(dev, &g12b_cpub_clk_postmux0.hw,
|
notifier_clk = devm_clk_hw_get_clk(dev, &g12b_cpub_clk_postmux0.hw,
|
||||||
DVFS_CON_ID);
|
DVFS_CON_ID);
|
||||||
ret = clk_notifier_register(notifier_clk,
|
ret = devm_clk_notifier_register(dev, notifier_clk,
|
||||||
&g12b_cpub_clk_postmux0_nb_data.nb);
|
&g12b_cpub_clk_postmux0_nb_data.nb);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev, "failed to register the cpub_clk_postmux0 notifier\n");
|
dev_err(dev, "failed to register the cpub_clk_postmux0 notifier\n");
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -5238,7 +5240,8 @@ static int meson_g12b_dvfs_setup(struct platform_device *pdev)
|
||||||
|
|
||||||
/* Setup clock notifier for cpub_clk_dyn mux */
|
/* Setup clock notifier for cpub_clk_dyn mux */
|
||||||
notifier_clk = devm_clk_hw_get_clk(dev, &g12b_cpub_clk_dyn.hw, "dvfs");
|
notifier_clk = devm_clk_hw_get_clk(dev, &g12b_cpub_clk_dyn.hw, "dvfs");
|
||||||
ret = clk_notifier_register(notifier_clk, &g12a_cpu_clk_mux_nb);
|
ret = devm_clk_notifier_register(dev, notifier_clk,
|
||||||
|
&g12a_cpu_clk_mux_nb);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev, "failed to register the cpub_clk_dyn notifier\n");
|
dev_err(dev, "failed to register the cpub_clk_dyn notifier\n");
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -5246,7 +5249,8 @@ static int meson_g12b_dvfs_setup(struct platform_device *pdev)
|
||||||
|
|
||||||
/* Setup clock notifier for cpub_clk mux */
|
/* Setup clock notifier for cpub_clk mux */
|
||||||
notifier_clk = devm_clk_hw_get_clk(dev, &g12b_cpub_clk.hw, DVFS_CON_ID);
|
notifier_clk = devm_clk_hw_get_clk(dev, &g12b_cpub_clk.hw, DVFS_CON_ID);
|
||||||
ret = clk_notifier_register(notifier_clk, &g12a_cpu_clk_mux_nb);
|
ret = devm_clk_notifier_register(dev, notifier_clk,
|
||||||
|
&g12a_cpu_clk_mux_nb);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev, "failed to register the cpub_clk notifier\n");
|
dev_err(dev, "failed to register the cpub_clk notifier\n");
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -5254,8 +5258,8 @@ static int meson_g12b_dvfs_setup(struct platform_device *pdev)
|
||||||
|
|
||||||
/* Setup clock notifier for sys_pll */
|
/* Setup clock notifier for sys_pll */
|
||||||
notifier_clk = devm_clk_hw_get_clk(dev, &g12a_sys_pll.hw, DVFS_CON_ID);
|
notifier_clk = devm_clk_hw_get_clk(dev, &g12a_sys_pll.hw, DVFS_CON_ID);
|
||||||
ret = clk_notifier_register(notifier_clk,
|
ret = devm_clk_notifier_register(dev, notifier_clk,
|
||||||
&g12b_cpub_clk_sys_pll_nb_data.nb);
|
&g12b_cpub_clk_sys_pll_nb_data.nb);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev, "failed to register the sys_pll notifier\n");
|
dev_err(dev, "failed to register the sys_pll notifier\n");
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -5277,7 +5281,8 @@ static int meson_g12a_dvfs_setup(struct platform_device *pdev)
|
||||||
|
|
||||||
/* Setup clock notifier for cpu_clk mux */
|
/* Setup clock notifier for cpu_clk mux */
|
||||||
notifier_clk = devm_clk_hw_get_clk(dev, &g12a_cpu_clk.hw, DVFS_CON_ID);
|
notifier_clk = devm_clk_hw_get_clk(dev, &g12a_cpu_clk.hw, DVFS_CON_ID);
|
||||||
ret = clk_notifier_register(notifier_clk, &g12a_cpu_clk_mux_nb);
|
ret = devm_clk_notifier_register(dev, notifier_clk,
|
||||||
|
&g12a_cpu_clk_mux_nb);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev, "failed to register the cpu_clk notifier\n");
|
dev_err(dev, "failed to register the cpu_clk notifier\n");
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -5285,7 +5290,8 @@ static int meson_g12a_dvfs_setup(struct platform_device *pdev)
|
||||||
|
|
||||||
/* Setup clock notifier for sys_pll */
|
/* Setup clock notifier for sys_pll */
|
||||||
notifier_clk = devm_clk_hw_get_clk(dev, &g12a_sys_pll.hw, DVFS_CON_ID);
|
notifier_clk = devm_clk_hw_get_clk(dev, &g12a_sys_pll.hw, DVFS_CON_ID);
|
||||||
ret = clk_notifier_register(notifier_clk, &g12a_sys_pll_nb_data.nb);
|
ret = devm_clk_notifier_register(dev, notifier_clk,
|
||||||
|
&g12a_sys_pll_nb_data.nb);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev, "failed to register the sys_pll notifier\n");
|
dev_err(dev, "failed to register the sys_pll notifier\n");
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -117,7 +117,8 @@ int clk_notifier_unregister(struct clk *clk, struct notifier_block *nb);
|
||||||
*
|
*
|
||||||
* Returns 0 on success, -EERROR otherwise
|
* Returns 0 on success, -EERROR otherwise
|
||||||
*/
|
*/
|
||||||
int devm_clk_notifier_register(struct device *dev, struct clk *clk, struct notifier_block *nb);
|
int devm_clk_notifier_register(struct device *dev, struct clk *clk,
|
||||||
|
struct notifier_block *nb);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* clk_get_accuracy - obtain the clock accuracy in ppb (parts per billion)
|
* clk_get_accuracy - obtain the clock accuracy in ppb (parts per billion)
|
||||||
|
@ -196,6 +197,13 @@ static inline int clk_notifier_unregister(struct clk *clk,
|
||||||
return -ENOTSUPP;
|
return -ENOTSUPP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int devm_clk_notifier_register(struct device *dev,
|
||||||
|
struct clk *clk,
|
||||||
|
struct notifier_block *nb)
|
||||||
|
{
|
||||||
|
return -ENOTSUPP;
|
||||||
|
}
|
||||||
|
|
||||||
static inline long clk_get_accuracy(struct clk *clk)
|
static inline long clk_get_accuracy(struct clk *clk)
|
||||||
{
|
{
|
||||||
return -ENOTSUPP;
|
return -ENOTSUPP;
|
||||||
|
|
Loading…
Reference in New Issue