diff --git a/arch/arm/mach-imx/clk-imx6.c b/arch/arm/mach-imx/clk-imx6.c index 5560fff7c..8d78a1832 100644 --- a/arch/arm/mach-imx/clk-imx6.c +++ b/arch/arm/mach-imx/clk-imx6.c @@ -214,7 +214,7 @@ static int imx6_ccm_probe(struct device_d *dev) clks[sata_ref_100m] = imx_clk_gate("sata_ref_100m", "sata_ref", base + 0xe0, 20); clks[pcie_ref_125m] = imx_clk_gate("pcie_ref_125m", "pcie_ref", base + 0xe0, 19); - clks[enet_ref] = clk_divider_table("enet_ref", "pll6_enet", base + 0xe0, 0, 2, clk_enet_ref_table); + clks[enet_ref] = clk_divider_table("enet_ref", "pll6_enet", base + 0xe0, 0, 2, clk_enet_ref_table, 0); /* name parent_name reg idx */ clks[pll2_pfd0_352m] = imx_clk_pfd("pll2_pfd0_352m", "pll2_bus", base + 0x100, 0); diff --git a/arch/arm/mach-imx/clk.h b/arch/arm/mach-imx/clk.h index 54f04ed55..cdafad1e9 100644 --- a/arch/arm/mach-imx/clk.h +++ b/arch/arm/mach-imx/clk.h @@ -4,7 +4,7 @@ static inline struct clk *imx_clk_divider(const char *name, const char *parent, void __iomem *reg, u8 shift, u8 width) { - return clk_divider(name, parent, reg, shift, width); + return clk_divider(name, parent, reg, shift, width, 0); } static inline struct clk *imx_clk_fixed_factor(const char *name, diff --git a/drivers/clk/clk-divider-table.c b/drivers/clk/clk-divider-table.c index fd2d3fc3c..0caf85d72 100644 --- a/drivers/clk/clk-divider-table.c +++ b/drivers/clk/clk-divider-table.c @@ -85,7 +85,7 @@ static struct clk_ops clk_divider_table_ops = { struct clk *clk_divider_table(const char *name, const char *parent, void __iomem *reg, u8 shift, u8 width, - const struct clk_div_table *table) + const struct clk_div_table *table, unsigned flags) { struct clk_divider_table *div = xzalloc(sizeof(*div)); const struct clk_div_table *clkt; @@ -98,6 +98,7 @@ struct clk *clk_divider_table(const char *name, div->clk.ops = &clk_divider_table_ops; div->clk.name = name; div->clk.parent_names = &div->parent; + div->clk.flags = flags; div->clk.num_parents = 1; div->table = table; diff --git a/drivers/clk/clk-divider.c b/drivers/clk/clk-divider.c index 3bf8105a8..bb8bcc126 100644 --- a/drivers/clk/clk-divider.c +++ b/drivers/clk/clk-divider.c @@ -78,7 +78,7 @@ struct clk_ops clk_divider_ops = { }; struct clk *clk_divider(const char *name, const char *parent, - void __iomem *reg, u8 shift, u8 width) + void __iomem *reg, u8 shift, u8 width, unsigned flags) { struct clk_divider *div = xzalloc(sizeof(*div)); int ret; @@ -89,6 +89,7 @@ struct clk *clk_divider(const char *name, const char *parent, div->parent = parent; div->clk.ops = &clk_divider_ops; div->clk.name = name; + div->clk.flags = flags; div->clk.parent_names = &div->parent; div->clk.num_parents = 1; @@ -102,12 +103,12 @@ struct clk *clk_divider(const char *name, const char *parent, } struct clk *clk_divider_one_based(const char *name, const char *parent, - void __iomem *reg, u8 shift, u8 width) + void __iomem *reg, u8 shift, u8 width, unsigned flags) { struct clk_divider *div; struct clk *clk; - clk = clk_divider(name, parent, reg, shift, width); + clk = clk_divider(name, parent, reg, shift, width, flags); if (IS_ERR(clk)) return clk; diff --git a/include/linux/clk.h b/include/linux/clk.h index e65a62aa9..7e5010ade 100644 --- a/include/linux/clk.h +++ b/include/linux/clk.h @@ -242,12 +242,12 @@ struct clk_divider { extern struct clk_ops clk_divider_ops; struct clk *clk_divider(const char *name, const char *parent, - void __iomem *reg, u8 shift, u8 width); + void __iomem *reg, u8 shift, u8 width, unsigned flags); struct clk *clk_divider_one_based(const char *name, const char *parent, - void __iomem *reg, u8 shift, u8 width); + void __iomem *reg, u8 shift, u8 width, unsigned flags); struct clk *clk_divider_table(const char *name, const char *parent, void __iomem *reg, u8 shift, u8 width, - const struct clk_div_table *table); + const struct clk_div_table *table, unsigned flags); struct clk *clk_fixed_factor(const char *name, const char *parent, unsigned int mult, unsigned int div, unsigned flags);