From d95bb6f81f4d827734477332bcffea3431d37cbc Mon Sep 17 00:00:00 2001 From: Lucas Stach Date: Tue, 3 Jun 2014 22:35:10 +0200 Subject: [PATCH] clk: tegra: allow variable sized muxes Tegra124 extended the mux by 1bit to allow for more PLL sources. Signed-off-by: Lucas Stach Signed-off-by: Sascha Hauer --- drivers/clk/tegra/clk-periph.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/clk/tegra/clk-periph.c b/drivers/clk/tegra/clk-periph.c index e4e5412b0..fd1e2ed2c 100644 --- a/drivers/clk/tegra/clk-periph.c +++ b/drivers/clk/tegra/clk-periph.c @@ -21,6 +21,7 @@ #include #include #include +#include #include "clk.h" @@ -113,6 +114,7 @@ static struct clk *_tegra_clk_register_periph(const char *name, { struct tegra_clk_periph *periph; int ret, gate_offs, rst_offs; + u8 mux_size = order_base_2(num_parents); periph = kzalloc(sizeof(*periph), GFP_KERNEL); if (!periph) { @@ -121,8 +123,8 @@ static struct clk *_tegra_clk_register_periph(const char *name, goto out_periph; } - periph->mux = clk_mux_alloc(NULL, clk_base + reg_offset, 30, 2, - parent_names, num_parents, 0); + periph->mux = clk_mux_alloc(NULL, clk_base + reg_offset, 32 - mux_size, + mux_size, parent_names, num_parents, 0); if (!periph->mux) goto out_mux;