OSDN Git Service

ASoC: rcar: fixup of_clk_add_provider() usage for multi clkout
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Thu, 30 Mar 2017 01:49:06 +0000 (01:49 +0000)
committerMark Brown <broonie@kernel.org>
Thu, 30 Mar 2017 21:22:32 +0000 (22:22 +0100)
Current adg is calling of_clk_add_povider() multiple times,
but it is not correct usage. This patch fixup its parameter
and call it once.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sh/rcar/adg.c

index 85a33ac..5610745 100644 (file)
@@ -537,16 +537,14 @@ static void rsnd_adg_get_clkout(struct rsnd_priv *priv,
                        clk = clk_register_fixed_rate(dev, clkout_name[i],
                                                      parent_clk_name, 0,
                                                      req_rate);
-                       if (!IS_ERR(clk)) {
-                               adg->onecell.clks       = adg->clkout;
-                               adg->onecell.clk_num    = CLKOUTMAX;
-
+                       adg->clkout[i] = ERR_PTR(-ENOENT);
+                       if (!IS_ERR(clk))
                                adg->clkout[i] = clk;
-
-                               of_clk_add_provider(np, of_clk_src_onecell_get,
-                                                   &adg->onecell);
-                       }
                }
+               adg->onecell.clks       = adg->clkout;
+               adg->onecell.clk_num    = CLKOUTMAX;
+               of_clk_add_provider(np, of_clk_src_onecell_get,
+                                   &adg->onecell);
        }
 
        adg->ckr = ckr;