Skip to content

Commit 765b7d4

Browse files
sorenb-xlnxMike Turquette
authored andcommitted
clk/zynq/clkc: Add CLK_SET_RATE_PARENT flag to ethernet muxes
Zynq's Ethernet clocks are created by the following hierarchy: mux0 ---> div0 ---> div1 ---> mux1 ---> gate Rate change requests on the gate have to propagate all the way up to div0 to properly leverage all dividers. Mux1 was missing the CLK_SET_RATE_PARENT flag, which is required to achieve this. This does not fix a specific regression but the clock driver was merged for 3.11-rc1, so best to fix the known bugs before the release. Signed-off-by: Soren Brinkmann <[email protected]> Signed-off-by: Michal Simek <[email protected]> Signed-off-by: Mike Turquette <[email protected]> [[email protected]: added to changelog]
1 parent 252957c commit 765b7d4

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

drivers/clk/zynq/clkc.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -365,8 +365,9 @@ static void __init zynq_clk_setup(struct device_node *np)
365365
CLK_SET_RATE_PARENT, SLCR_GEM0_CLK_CTRL, 20, 6,
366366
CLK_DIVIDER_ONE_BASED | CLK_DIVIDER_ALLOW_ZERO,
367367
&gem0clk_lock);
368-
clk = clk_register_mux(NULL, "gem0_emio_mux", gem0_mux_parents, 2, 0,
369-
SLCR_GEM0_CLK_CTRL, 6, 1, 0, &gem0clk_lock);
368+
clk = clk_register_mux(NULL, "gem0_emio_mux", gem0_mux_parents, 2,
369+
CLK_SET_RATE_PARENT, SLCR_GEM0_CLK_CTRL, 6, 1, 0,
370+
&gem0clk_lock);
370371
clks[gem0] = clk_register_gate(NULL, clk_output_name[gem0],
371372
"gem0_emio_mux", CLK_SET_RATE_PARENT,
372373
SLCR_GEM0_CLK_CTRL, 0, 0, &gem0clk_lock);
@@ -387,8 +388,9 @@ static void __init zynq_clk_setup(struct device_node *np)
387388
CLK_SET_RATE_PARENT, SLCR_GEM1_CLK_CTRL, 20, 6,
388389
CLK_DIVIDER_ONE_BASED | CLK_DIVIDER_ALLOW_ZERO,
389390
&gem1clk_lock);
390-
clk = clk_register_mux(NULL, "gem1_emio_mux", gem1_mux_parents, 2, 0,
391-
SLCR_GEM1_CLK_CTRL, 6, 1, 0, &gem1clk_lock);
391+
clk = clk_register_mux(NULL, "gem1_emio_mux", gem1_mux_parents, 2,
392+
CLK_SET_RATE_PARENT, SLCR_GEM1_CLK_CTRL, 6, 1, 0,
393+
&gem1clk_lock);
392394
clks[gem1] = clk_register_gate(NULL, clk_output_name[gem1],
393395
"gem1_emio_mux", CLK_SET_RATE_PARENT,
394396
SLCR_GEM1_CLK_CTRL, 0, 0, &gem1clk_lock);

0 commit comments

Comments
 (0)