The variable init (struct clk_init_data) is allocated on the stack. We weren't initializing the .flags field, so it contains random junk, which can cause all kinds of interesting issues when the flags are parsed by clk_register.
The best solution seems to just pass on the flags passed in to our clk_register wrappers. Signed-off-by: Ricky Liang <jcli...@chromium.org> --- drivers/clk/mediatek/clk-pll.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/clk/mediatek/clk-pll.c b/drivers/clk/mediatek/clk-pll.c index 66154ca..72fe307 100644 --- a/drivers/clk/mediatek/clk-pll.c +++ b/drivers/clk/mediatek/clk-pll.c @@ -289,6 +289,7 @@ static struct clk *mtk_clk_register_pll(const struct mtk_pll_data *data, init.ops = &mtk_pll_ops; init.parent_names = &parent_name; init.num_parents = 1; + init.flags = data->flags; clk = clk_register(NULL, &pll->hw); -- 2.1.2 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/