Skip to content

Commit

Permalink
sh: clkfwk: remove bogus set_bus_parent() from SH7709.
Browse files Browse the repository at this point in the history
This fixes up broken clock re-parenting undertaken by the SH7709 clock
framework code, which is currently in conflict with the legacy CPG
framework. With this change in place, the legacy CPG ancestry is used,
and we manage to avoid contending on the clock_list_sem mutex, which is
already held under the legacy registration path, resulting in livelock.

In order for SH7709 to fully support the varying clock modes, it needs to
implement a more complete clock framework. After this change it is in
sync with legacy CPG mode, which ends up being the default configuration
for this CPU anyways.

Signed-off-by: Rafael Ignacio Zurita <rizurita@yahoo.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
  • Loading branch information
Rafael Ignacio Zurita authored and Paul Mundt committed Sep 14, 2009
1 parent 6a78ec1 commit 2fd5a02
Showing 1 changed file with 0 additions and 11 deletions.
11 changes: 0 additions & 11 deletions arch/sh/kernel/cpu/sh3/clock-sh7709.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,6 @@ static int stc_multipliers[] = { 1, 2, 4, 8, 3, 6, 1, 1 };
static int ifc_divisors[] = { 1, 2, 4, 1, 3, 1, 1, 1 };
static int pfc_divisors[] = { 1, 2, 4, 1, 3, 6, 1, 1 };

static void set_bus_parent(struct clk *clk)
{
struct clk *bus_clk = clk_get(NULL, "bus_clk");
clk->parent = bus_clk;
clk_put(bus_clk);
}

static void master_clk_init(struct clk *clk)
{
int frqcr = ctrl_inw(FRQCR);
Expand All @@ -50,9 +43,6 @@ static unsigned long module_clk_recalc(struct clk *clk)
}

static struct clk_ops sh7709_module_clk_ops = {
#ifdef CLOCK_MODE_0_1_2_7
.init = set_bus_parent,
#endif
.recalc = module_clk_recalc,
};

Expand All @@ -78,7 +68,6 @@ static unsigned long cpu_clk_recalc(struct clk *clk)
}

static struct clk_ops sh7709_cpu_clk_ops = {
.init = set_bus_parent,
.recalc = cpu_clk_recalc,
};

Expand Down

0 comments on commit 2fd5a02

Please sign in to comment.