diff --git a/arch/arm/mach-imx/clk.h b/arch/arm/mach-imx/clk.h index 072af55c4..54f04ed55 100644 --- a/arch/arm/mach-imx/clk.h +++ b/arch/arm/mach-imx/clk.h @@ -10,7 +10,7 @@ static inline struct clk *imx_clk_divider(const char *name, const char *parent, static inline struct clk *imx_clk_fixed_factor(const char *name, const char *parent, unsigned int mult, unsigned int div) { - return clk_fixed_factor(name, parent, mult, div); + return clk_fixed_factor(name, parent, mult, div, 0); } static inline struct clk *imx_clk_mux(const char *name, void __iomem *reg, diff --git a/drivers/clk/clk-fixed-factor.c b/drivers/clk/clk-fixed-factor.c index f0ecbd3e5..df0d2f345 100644 --- a/drivers/clk/clk-fixed-factor.c +++ b/drivers/clk/clk-fixed-factor.c @@ -40,7 +40,7 @@ static struct clk_ops clk_fixed_factor_ops = { }; struct clk *clk_fixed_factor(const char *name, - const char *parent, unsigned int mult, unsigned int div) + const char *parent, unsigned int mult, unsigned int div, unsigned flags) { struct clk_fixed_factor *f = xzalloc(sizeof(*f)); int ret; @@ -50,6 +50,7 @@ struct clk *clk_fixed_factor(const char *name, f->parent = parent; f->clk.ops = &clk_fixed_factor_ops; f->clk.name = name; + f->clk.flags = flags; f->clk.parent_names = &f->parent; f->clk.num_parents = 1; diff --git a/drivers/clk/mvebu/common.c b/drivers/clk/mvebu/common.c index aa1e8f697..658ce3e81 100644 --- a/drivers/clk/mvebu/common.c +++ b/drivers/clk/mvebu/common.c @@ -87,7 +87,7 @@ int mvebu_coreclk_probe(struct device_d *dev) 2+n, &rclk_name); desc->get_clk_ratio(base, desc->ratios[n].id, &mult, &div); clk_data.clks[2+n] = clk_fixed_factor(rclk_name, cpuclk_name, - mult, div); + mult, div, 0); WARN_ON(IS_ERR(clk_data.clks[2+n])); }; diff --git a/drivers/clk/mxs/clk.h b/drivers/clk/mxs/clk.h index 168fa5823..7bab7b5e6 100644 --- a/drivers/clk/mxs/clk.h +++ b/drivers/clk/mxs/clk.h @@ -46,7 +46,7 @@ static inline struct clk *mxs_clk_mux(const char *name, void __iomem *reg, static inline struct clk *mxs_clk_fixed_factor(const char *name, const char *parent_name, unsigned int mult, unsigned int div) { - return clk_fixed_factor(name, parent_name, mult, div); + return clk_fixed_factor(name, parent_name, mult, div, 0); } #endif /* __MXS_CLK_H */ diff --git a/drivers/clk/tegra/clk-tegra20.c b/drivers/clk/tegra/clk-tegra20.c index f68c811a8..cfb719f43 100644 --- a/drivers/clk/tegra/clk-tegra20.c +++ b/drivers/clk/tegra/clk-tegra20.c @@ -62,7 +62,7 @@ static void tegra20_osc_clk_init(void) clks[clk_32k] = clk_fixed("clk_32k", 32768); clks[pll_ref] = clk_fixed_factor("pll_ref", "clk_m", 1, - get_pll_ref_div()); + get_pll_ref_div(), 0); } /* PLL frequency tables */ diff --git a/include/linux/clk.h b/include/linux/clk.h index 21edfabd3..e65a62aa9 100644 --- a/include/linux/clk.h +++ b/include/linux/clk.h @@ -249,7 +249,8 @@ struct clk *clk_divider_table(const char *name, const char *parent, void __iomem *reg, u8 shift, u8 width, const struct clk_div_table *table); struct clk *clk_fixed_factor(const char *name, - const char *parent, unsigned int mult, unsigned int div); + const char *parent, unsigned int mult, unsigned int div, + unsigned flags); struct clk *clk_mux_alloc(const char *name, void __iomem *reg, u8 shift, u8 width, const char **parents, u8 num_parents,