Skip to content

Commit

Permalink
Merge branch 'common/clkfwk' into sh-fixes-for-linus
Browse files Browse the repository at this point in the history
  • Loading branch information
pmundt committed Nov 16, 2010
2 parents 6800e4c + 549015c commit 8496533
Show file tree
Hide file tree
Showing 7 changed files with 11 additions and 85 deletions.
4 changes: 0 additions & 4 deletions Documentation/DocBook/sh.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,6 @@
</sect2>
</sect1>
</chapter>
<chapter id="clk">
<title>Clock Framework Extensions</title>
!Iinclude/linux/sh_clk.h
</chapter>
<chapter id="mach">
<title>Machine Specific Interfaces</title>
<sect1 id="dreamcast">
Expand Down
32 changes: 0 additions & 32 deletions Documentation/sh/clk.txt

This file was deleted.

6 changes: 2 additions & 4 deletions arch/arm/mach-shmobile/clock-sh7372.c
Original file line number Diff line number Diff line change
Expand Up @@ -220,8 +220,7 @@ static void pllc2_disable(struct clk *clk)
__raw_writel(__raw_readl(PLLC2CR) & ~0x80000000, PLLC2CR);
}

static int pllc2_set_rate(struct clk *clk,
unsigned long rate, int algo_id)
static int pllc2_set_rate(struct clk *clk, unsigned long rate)
{
unsigned long value;
int idx;
Expand Down Expand Up @@ -463,8 +462,7 @@ static int fsidiv_enable(struct clk *clk)
return 0;
}

static int fsidiv_set_rate(struct clk *clk,
unsigned long rate, int algo_id)
static int fsidiv_set_rate(struct clk *clk, unsigned long rate)
{
int idx;

Expand Down
2 changes: 1 addition & 1 deletion arch/sh/kernel/cpu/sh4/clock-sh4-202.c
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ static int shoc_clk_verify_rate(struct clk *clk, unsigned long rate)
return 0;
}

static int shoc_clk_set_rate(struct clk *clk, unsigned long rate, int algo_id)
static int shoc_clk_set_rate(struct clk *clk, unsigned long rate)
{
unsigned long frqcr3;
unsigned int tmp;
Expand Down
13 changes: 3 additions & 10 deletions drivers/sh/clk/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -454,20 +454,14 @@ unsigned long clk_get_rate(struct clk *clk)
EXPORT_SYMBOL_GPL(clk_get_rate);

int clk_set_rate(struct clk *clk, unsigned long rate)
{
return clk_set_rate_ex(clk, rate, 0);
}
EXPORT_SYMBOL_GPL(clk_set_rate);

int clk_set_rate_ex(struct clk *clk, unsigned long rate, int algo_id)
{
int ret = -EOPNOTSUPP;
unsigned long flags;

spin_lock_irqsave(&clock_lock, flags);

if (likely(clk->ops && clk->ops->set_rate)) {
ret = clk->ops->set_rate(clk, rate, algo_id);
ret = clk->ops->set_rate(clk, rate);
if (ret != 0)
goto out_unlock;
} else {
Expand All @@ -485,7 +479,7 @@ int clk_set_rate_ex(struct clk *clk, unsigned long rate, int algo_id)

return ret;
}
EXPORT_SYMBOL_GPL(clk_set_rate_ex);
EXPORT_SYMBOL_GPL(clk_set_rate);

int clk_set_parent(struct clk *clk, struct clk *parent)
{
Expand Down Expand Up @@ -653,8 +647,7 @@ static int clks_sysdev_suspend(struct sys_device *dev, pm_message_t state)
clkp->ops->set_parent(clkp,
clkp->parent);
if (likely(clkp->ops->set_rate))
clkp->ops->set_rate(clkp,
rate, NO_CHANGE);
clkp->ops->set_rate(clkp, rate);
else if (likely(clkp->ops->recalc))
clkp->rate = clkp->ops->recalc(clkp);
}
Expand Down
5 changes: 2 additions & 3 deletions drivers/sh/clk/cpg.c
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,7 @@ static int sh_clk_div6_set_parent(struct clk *clk, struct clk *parent)
return 0;
}

static int sh_clk_div6_set_rate(struct clk *clk,
unsigned long rate, int algo_id)
static int sh_clk_div6_set_rate(struct clk *clk, unsigned long rate)
{
unsigned long value;
int idx;
Expand Down Expand Up @@ -253,7 +252,7 @@ static int sh_clk_div4_set_parent(struct clk *clk, struct clk *parent)
return 0;
}

static int sh_clk_div4_set_rate(struct clk *clk, unsigned long rate, int algo_id)
static int sh_clk_div4_set_rate(struct clk *clk, unsigned long rate)
{
struct clk_div4_table *d4t = clk->priv;
unsigned long value;
Expand Down
34 changes: 3 additions & 31 deletions include/linux/sh_clk.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,13 @@ struct clk_mapping {
};

struct clk_ops {
#ifdef CONFIG_SH_CLK_CPG_LEGACY
void (*init)(struct clk *clk);
#endif
int (*enable)(struct clk *clk);
void (*disable)(struct clk *clk);
unsigned long (*recalc)(struct clk *clk);
int (*set_rate)(struct clk *clk, unsigned long rate, int algo_id);
int (*set_rate)(struct clk *clk, unsigned long rate);
int (*set_parent)(struct clk *clk, struct clk *parent);
long (*round_rate)(struct clk *clk, unsigned long rate);
};
Expand Down Expand Up @@ -67,36 +69,6 @@ int clk_register(struct clk *);
void clk_unregister(struct clk *);
void clk_enable_init_clocks(void);

/**
* clk_set_rate_ex - set the clock rate for a clock source, with additional parameter
* @clk: clock source
* @rate: desired clock rate in Hz
* @algo_id: algorithm id to be passed down to ops->set_rate
*
* Returns success (0) or negative errno.
*/
int clk_set_rate_ex(struct clk *clk, unsigned long rate, int algo_id);

enum clk_sh_algo_id {
NO_CHANGE = 0,

IUS_N1_N1,
IUS_322,
IUS_522,
IUS_N11,

SB_N1,

SB3_N1,
SB3_32,
SB3_43,
SB3_54,

BP_N1,

IP_N1,
};

struct clk_div_mult_table {
unsigned int *divisors;
unsigned int nr_divisors;
Expand Down

0 comments on commit 8496533

Please sign in to comment.