Commit 171a376d authored by Juha Yrjola's avatar Juha Yrjola

Merge branch 'master' of /home/git/linux-omap-2.6

parents 071a568a 107b95cb
...@@ -81,7 +81,7 @@ int clk_enable(struct clk *clk) ...@@ -81,7 +81,7 @@ int clk_enable(struct clk *clk)
int ret = 0; int ret = 0;
if (clk == NULL || IS_ERR(clk)) if (clk == NULL || IS_ERR(clk))
return -ENODEV; return -EINVAL;
spin_lock_irqsave(&clockfw_lock, flags); spin_lock_irqsave(&clockfw_lock, flags);
if (arch_clock->clk_enable) if (arch_clock->clk_enable)
...@@ -154,6 +154,9 @@ long clk_round_rate(struct clk *clk, unsigned long rate) ...@@ -154,6 +154,9 @@ long clk_round_rate(struct clk *clk, unsigned long rate)
unsigned long flags; unsigned long flags;
long ret = 0; long ret = 0;
if (clk == NULL || IS_ERR(clk))
return ret;
spin_lock_irqsave(&clockfw_lock, flags); spin_lock_irqsave(&clockfw_lock, flags);
if (arch_clock->clk_round_rate) if (arch_clock->clk_round_rate)
ret = arch_clock->clk_round_rate(clk, rate); ret = arch_clock->clk_round_rate(clk, rate);
...@@ -166,7 +169,10 @@ EXPORT_SYMBOL(clk_round_rate); ...@@ -166,7 +169,10 @@ EXPORT_SYMBOL(clk_round_rate);
int clk_set_rate(struct clk *clk, unsigned long rate) int clk_set_rate(struct clk *clk, unsigned long rate)
{ {
unsigned long flags; unsigned long flags;
int ret = 0; int ret = -EINVAL;
if (clk == NULL || IS_ERR(clk))
return ret;
spin_lock_irqsave(&clockfw_lock, flags); spin_lock_irqsave(&clockfw_lock, flags);
if (arch_clock->clk_set_rate) if (arch_clock->clk_set_rate)
...@@ -180,7 +186,10 @@ EXPORT_SYMBOL(clk_set_rate); ...@@ -180,7 +186,10 @@ EXPORT_SYMBOL(clk_set_rate);
int clk_set_parent(struct clk *clk, struct clk *parent) int clk_set_parent(struct clk *clk, struct clk *parent)
{ {
unsigned long flags; unsigned long flags;
int ret = 0; int ret = -EINVAL;
if (clk == NULL || IS_ERR(clk) || parent == NULL || IS_ERR(parent))
return ret;
spin_lock_irqsave(&clockfw_lock, flags); spin_lock_irqsave(&clockfw_lock, flags);
if (arch_clock->clk_set_parent) if (arch_clock->clk_set_parent)
...@@ -196,6 +205,9 @@ struct clk *clk_get_parent(struct clk *clk) ...@@ -196,6 +205,9 @@ struct clk *clk_get_parent(struct clk *clk)
unsigned long flags; unsigned long flags;
struct clk * ret = NULL; struct clk * ret = NULL;
if (clk == NULL || IS_ERR(clk))
return ret;
spin_lock_irqsave(&clockfw_lock, flags); spin_lock_irqsave(&clockfw_lock, flags);
if (arch_clock->clk_get_parent) if (arch_clock->clk_get_parent)
ret = arch_clock->clk_get_parent(clk); ret = arch_clock->clk_get_parent(clk);
...@@ -232,6 +244,9 @@ __setup("mpurate=", omap_clk_setup); ...@@ -232,6 +244,9 @@ __setup("mpurate=", omap_clk_setup);
/* Used for clocks that always have same value as the parent clock */ /* Used for clocks that always have same value as the parent clock */
void followparent_recalc(struct clk *clk) void followparent_recalc(struct clk *clk)
{ {
if (clk == NULL || IS_ERR(clk))
return;
clk->rate = clk->parent->rate; clk->rate = clk->parent->rate;
} }
...@@ -240,6 +255,9 @@ void propagate_rate(struct clk * tclk) ...@@ -240,6 +255,9 @@ void propagate_rate(struct clk * tclk)
{ {
struct clk *clkp; struct clk *clkp;
if (tclk == NULL || IS_ERR(tclk))
return;
list_for_each_entry(clkp, &clocks, node) { list_for_each_entry(clkp, &clocks, node) {
if (likely(clkp->parent != tclk)) if (likely(clkp->parent != tclk))
continue; continue;
...@@ -250,6 +268,9 @@ void propagate_rate(struct clk * tclk) ...@@ -250,6 +268,9 @@ void propagate_rate(struct clk * tclk)
int clk_register(struct clk *clk) int clk_register(struct clk *clk)
{ {
if (clk == NULL || IS_ERR(clk))
return -EINVAL;
mutex_lock(&clocks_mutex); mutex_lock(&clocks_mutex);
list_add(&clk->node, &clocks); list_add(&clk->node, &clocks);
if (clk->init) if (clk->init)
...@@ -262,6 +283,9 @@ EXPORT_SYMBOL(clk_register); ...@@ -262,6 +283,9 @@ EXPORT_SYMBOL(clk_register);
void clk_unregister(struct clk *clk) void clk_unregister(struct clk *clk)
{ {
if (clk == NULL || IS_ERR(clk))
return;
mutex_lock(&clocks_mutex); mutex_lock(&clocks_mutex);
list_del(&clk->node); list_del(&clk->node);
mutex_unlock(&clocks_mutex); mutex_unlock(&clocks_mutex);
...@@ -272,6 +296,9 @@ void clk_deny_idle(struct clk *clk) ...@@ -272,6 +296,9 @@ void clk_deny_idle(struct clk *clk)
{ {
unsigned long flags; unsigned long flags;
if (clk == NULL || IS_ERR(clk))
return;
spin_lock_irqsave(&clockfw_lock, flags); spin_lock_irqsave(&clockfw_lock, flags);
if (arch_clock->clk_deny_idle) if (arch_clock->clk_deny_idle)
arch_clock->clk_deny_idle(clk); arch_clock->clk_deny_idle(clk);
...@@ -283,6 +310,9 @@ void clk_allow_idle(struct clk *clk) ...@@ -283,6 +310,9 @@ void clk_allow_idle(struct clk *clk)
{ {
unsigned long flags; unsigned long flags;
if (clk == NULL || IS_ERR(clk))
return;
spin_lock_irqsave(&clockfw_lock, flags); spin_lock_irqsave(&clockfw_lock, flags);
if (arch_clock->clk_allow_idle) if (arch_clock->clk_allow_idle)
arch_clock->clk_allow_idle(clk); arch_clock->clk_allow_idle(clk);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment